40 lines
2.4 KiB
C#
40 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Wino.Core.Domain.Entities.Mail;
|
|
using Wino.Core.Domain.Enums;
|
|
using Wino.Core.Domain.Models.Folders;
|
|
|
|
namespace Wino.Core.Domain.Models.MailItem
|
|
{
|
|
/// <summary>
|
|
/// Encapsulates the options for preparing requests to execute mail operations for mail items like Move, Delete, MarkAsRead, etc.
|
|
/// </summary>
|
|
/// <param name="Action"> Action to execute. </param>
|
|
/// <param name="MailItems"> Mail copies execute the action on. </param>
|
|
/// <param name="ToggleExecution"> Whether the operation can be reverted if needed.
|
|
/// eg. MarkAsRead on already read item will set the action to MarkAsUnread.
|
|
/// This is used in hover actions for example. </param>
|
|
/// <param name="IgnoreHardDeleteProtection"> Whether hard delete protection should be ignored.
|
|
/// Discard draft requests for example should ignore hard delete protection. </param>
|
|
/// <param name="MoveTargetFolder"> Moving folder for the Move operation.
|
|
/// If null and the action is Move, the user will be prompted to select a folder. </param>
|
|
public record MailOperationPreperationRequest(MailOperation Action, IEnumerable<MailCopy> MailItems, bool ToggleExecution, bool IgnoreHardDeleteProtection, IMailItemFolder MoveTargetFolder)
|
|
{
|
|
public MailOperationPreperationRequest(MailOperation action,
|
|
IEnumerable<MailCopy> mailItems,
|
|
bool toggleExecution = false,
|
|
IMailItemFolder moveTargetFolder = null,
|
|
bool ignoreHardDeleteProtection = false) : this(action, mailItems ?? throw new ArgumentNullException(nameof(mailItems)), toggleExecution, ignoreHardDeleteProtection, moveTargetFolder)
|
|
{
|
|
}
|
|
|
|
public MailOperationPreperationRequest(MailOperation action,
|
|
MailCopy singleMailItem,
|
|
bool toggleExecution = false,
|
|
IMailItemFolder moveTargetFolder = null,
|
|
bool ignoreHardDeleteProtection = false) : this(action, new List<MailCopy>() { singleMailItem }, toggleExecution, ignoreHardDeleteProtection, moveTargetFolder)
|
|
{
|
|
}
|
|
}
|
|
}
|