using System.Threading.Tasks; using Wino.Core.Domain.Models.Folders; using Wino.Core.Domain.Models.MailItem; namespace Wino.Core.Domain.Interfaces { public interface IWinoRequestDelegator { /// /// Prepares requires IRequest collection for mail actions and executes them via proper synchronizers. /// /// Preperation model that encapsulates action and mail items. Task ExecuteAsync(MailOperationPreperationRequest prerperationRequest); /// /// Queues new draft creation request for synchronizer. /// /// A class that holds the parameters for creating a draft. Task ExecuteAsync(DraftPreparationRequest draftPreperationRequest); /// /// Queues a new request for synchronizer to send a draft. /// /// Draft sending request. Task ExecuteAsync(SendDraftPreparationRequest sendDraftPreperationRequest); /// /// Prepares requires IRequest collection for folder actions and executes them via proper synchronizers. /// /// Folder prep request. Task ExecuteAsync(FolderOperationPreperationRequest folderOperationPreperationRequest); } }