2024-06-02 21:35:03 +02:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Threading.Tasks;
|
2024-05-25 17:00:52 +02:00
|
|
|
|
using Wino.Core.Domain.Interfaces;
|
2024-11-30 23:05:07 +01:00
|
|
|
|
using Wino.Services;
|
2024-05-25 17:00:52 +02:00
|
|
|
|
|
|
|
|
|
|
namespace Wino.Core.Integration.Processors
|
|
|
|
|
|
{
|
|
|
|
|
|
public class OutlookChangeProcessor(IDatabaseService databaseService,
|
|
|
|
|
|
IFolderService folderService,
|
2024-12-27 00:18:46 +01:00
|
|
|
|
ICalendarService calendarService,
|
2024-05-25 17:00:52 +02:00
|
|
|
|
IMailService mailService,
|
|
|
|
|
|
IAccountService accountService,
|
2024-12-27 00:18:46 +01:00
|
|
|
|
IMimeFileService mimeFileService) : DefaultChangeProcessor(databaseService, folderService, mailService, calendarService, accountService, mimeFileService)
|
2024-08-05 00:36:26 +02:00
|
|
|
|
, IOutlookChangeProcessor
|
2024-05-25 17:00:52 +02:00
|
|
|
|
{
|
|
|
|
|
|
public Task<bool> IsMailExistsAsync(string messageId)
|
|
|
|
|
|
=> MailService.IsMailExistsAsync(messageId);
|
2024-06-02 21:35:03 +02:00
|
|
|
|
|
2024-08-05 00:36:26 +02:00
|
|
|
|
public Task<bool> IsMailExistsInFolderAsync(string messageId, Guid folderId)
|
|
|
|
|
|
=> MailService.IsMailExistsAsync(messageId, folderId);
|
|
|
|
|
|
|
|
|
|
|
|
public Task<string> ResetAccountDeltaTokenAsync(Guid accountId)
|
|
|
|
|
|
=> AccountService.UpdateSynchronizationIdentifierAsync(accountId, null);
|
|
|
|
|
|
|
|
|
|
|
|
public async Task<string> ResetFolderDeltaTokenAsync(Guid folderId)
|
|
|
|
|
|
{
|
|
|
|
|
|
var folder = await FolderService.GetFolderAsync(folderId);
|
|
|
|
|
|
|
|
|
|
|
|
folder.DeltaToken = null;
|
|
|
|
|
|
|
|
|
|
|
|
await FolderService.UpdateFolderAsync(folder);
|
|
|
|
|
|
|
|
|
|
|
|
return string.Empty;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-02 21:35:03 +02:00
|
|
|
|
public Task UpdateFolderDeltaSynchronizationIdentifierAsync(Guid folderId, string synchronizationIdentifier)
|
|
|
|
|
|
=> Connection.ExecuteAsync("UPDATE MailItemFolder SET DeltaToken = ? WHERE Id = ?", synchronizationIdentifier, folderId);
|
2024-05-25 17:00:52 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|