2024-04-18 01:44:37 +02:00
|
|
|
|
using System.Collections.Generic;
|
2024-11-10 23:28:25 +01:00
|
|
|
|
using Wino.Core.Domain.Entities.Mail;
|
2024-04-18 01:44:37 +02:00
|
|
|
|
using Wino.Core.Domain.Enums;
|
|
|
|
|
|
using Wino.Core.Domain.Interfaces;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Wino.Core.Domain.Models.Requests
|
|
|
|
|
|
{
|
|
|
|
|
|
public abstract record RequestBase<TBatchRequestType>(MailCopy Item, MailSynchronizerOperation Operation) : IRequest
|
|
|
|
|
|
where TBatchRequestType : IBatchChangeRequest
|
|
|
|
|
|
{
|
|
|
|
|
|
public abstract IBatchChangeRequest CreateBatch(IEnumerable<IRequest> requests);
|
|
|
|
|
|
public abstract void ApplyUIChanges();
|
|
|
|
|
|
public abstract void RevertUIChanges();
|
2024-07-09 01:05:16 +02:00
|
|
|
|
|
2024-08-21 13:15:50 +02:00
|
|
|
|
public virtual int ResynchronizationDelay => 0;
|
2024-04-18 01:44:37 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public abstract record FolderRequestBase(MailItemFolder Folder, MailSynchronizerOperation Operation) : IFolderRequest
|
|
|
|
|
|
{
|
|
|
|
|
|
public abstract void ApplyUIChanges();
|
|
|
|
|
|
public abstract void RevertUIChanges();
|
2024-07-09 01:05:16 +02:00
|
|
|
|
|
2024-08-21 13:15:50 +02:00
|
|
|
|
public virtual int ResynchronizationDelay => 0;
|
2024-04-18 01:44:37 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public abstract record BatchRequestBase(IEnumerable<IRequest> Items, MailSynchronizerOperation Operation) : IBatchChangeRequest
|
|
|
|
|
|
{
|
|
|
|
|
|
public abstract void ApplyUIChanges();
|
|
|
|
|
|
public abstract void RevertUIChanges();
|
2024-07-09 01:05:16 +02:00
|
|
|
|
|
2024-08-21 13:15:50 +02:00
|
|
|
|
public virtual int ResynchronizationDelay => 0;
|
|
|
|
|
|
public virtual bool ExecuteSerialBatch => false;
|
2024-04-18 01:44:37 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|