Improved online search performance when doing local operations (#584)
* Improved online search performance when doing local operations * Retruning an empty list on no item searches. * Fixed an issue with batch imap downloads. --------- Co-authored-by: Burak Kaan Köse <bkaankose@outlook.com>
This commit is contained in:
@@ -17,16 +17,24 @@ public interface IImapSynchronizerStrategy
|
||||
/// <param name="synchronizer">Imap synchronizer that downloads messages.</param>
|
||||
/// <param name="cancellationToken">Cancellation token.</param>
|
||||
/// <returns>List of new downloaded message ids that don't exist locally.</returns>
|
||||
Task<List<string>> HandleSynchronizationAsync(IImapClient client, MailItemFolder folder, IImapSynchronizer synchronizer, CancellationToken cancellationToken = default);
|
||||
Task<List<string>> HandleSynchronizationAsync(IImapClient client,
|
||||
MailItemFolder folder,
|
||||
IImapSynchronizer synchronizer,
|
||||
CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Downloads given set of messages from the folder.
|
||||
/// Folder is expected to be opened and synchronizer is connected.
|
||||
/// </summary>
|
||||
/// <param name="synchronizer">Synchronizer that performs the action.</param>
|
||||
/// <param name="folder">Remote folder to download messages from.</param>
|
||||
/// <param name="remoteFolder">Remote folder to download messages from.</param>
|
||||
/// <param name="localFolder">Local folder to assign mails to.</param>
|
||||
/// <param name="uniqueIdSet">Set of message uniqueids.</param>
|
||||
/// <param name="cancellationToken">Cancellation token.</param>
|
||||
Task DownloadMessagesAsync(IImapSynchronizer synchronizer, IMailFolder folder, UniqueIdSet uniqueIdSet, CancellationToken cancellationToken = default);
|
||||
Task DownloadMessagesAsync(IImapSynchronizer synchronizer,
|
||||
IMailFolder remoteFolder,
|
||||
MailItemFolder localFolder,
|
||||
UniqueIdSet uniqueIdSet,
|
||||
CancellationToken cancellationToken = default);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,9 +18,13 @@ public interface IMailService
|
||||
/// Returns the single mail item with the given mail copy id.
|
||||
/// Caution: This method is not safe. Use other overrides.
|
||||
/// </summary>
|
||||
/// <param name="mailCopyId"></param>
|
||||
/// <returns></returns>
|
||||
Task<MailCopy> GetSingleMailItemAsync(string mailCopyId);
|
||||
|
||||
/// <summary>
|
||||
/// Returns the multiple mail item with the given mail copy ids.
|
||||
/// Caution: This method is not safe. Use other overrides.
|
||||
/// </summary>
|
||||
Task<List<MailCopy>> GetMailItemsAsync(IEnumerable<string> mailCopyIds);
|
||||
Task<List<IMailItem>> FetchMailsAsync(MailListInitializationOptions options, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
@@ -88,6 +92,15 @@ public interface IMailService
|
||||
/// <param name="mailCopyId">Native mail id of the message.</param>
|
||||
Task<bool> IsMailExistsAsync(string mailCopyId);
|
||||
|
||||
/// <summary>
|
||||
/// Checks whether the given mail copy ids exists in the database.
|
||||
/// Safely used for Outlook to prevent downloading the same mail twice.
|
||||
/// For Gmail, it should be avoided since one mail may belong to multiple folders.
|
||||
/// </summary>
|
||||
/// <param name="mailCopyIds">Native mail id of the messages.</param>
|
||||
/// <returns>List of Mail ids that already exists in the database.</returns>
|
||||
Task<List<string>> AreMailsExistsAsync(IEnumerable<string> mailCopyIds);
|
||||
|
||||
/// <summary>
|
||||
/// Returns all mails for given folder id.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user