@@ -2,31 +2,32 @@
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Folders;
|
||||
|
||||
/// <summary>
|
||||
/// Grouped folder information for the menu for given account.
|
||||
/// </summary>
|
||||
public class AccountFolderTree
|
||||
namespace Wino.Core.Domain.Models.Folders
|
||||
{
|
||||
public MailAccount Account { get; }
|
||||
public List<IMailItemFolder> Folders { get; set; } = new List<IMailItemFolder>();
|
||||
|
||||
public AccountFolderTree(MailAccount account)
|
||||
/// <summary>
|
||||
/// Grouped folder information for the menu for given account.
|
||||
/// </summary>
|
||||
public class AccountFolderTree
|
||||
{
|
||||
Account = account;
|
||||
}
|
||||
public MailAccount Account { get; }
|
||||
public List<IMailItemFolder> Folders { get; set; } = new List<IMailItemFolder>();
|
||||
|
||||
public bool HasSpecialTypeFolder(SpecialFolderType type)
|
||||
{
|
||||
foreach (var folderStructure in Folders)
|
||||
public AccountFolderTree(MailAccount account)
|
||||
{
|
||||
bool hasSpecialFolder = folderStructure.ContainsSpecialFolderType(type);
|
||||
|
||||
if (hasSpecialFolder)
|
||||
return true;
|
||||
Account = account;
|
||||
}
|
||||
|
||||
return false;
|
||||
public bool HasSpecialTypeFolder(SpecialFolderType type)
|
||||
{
|
||||
foreach (var folderStructure in Folders)
|
||||
{
|
||||
bool hasSpecialFolder = folderStructure.ContainsSpecialFolderType(type);
|
||||
|
||||
if (hasSpecialFolder)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,13 @@
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Domain.Models.Menus;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Folders;
|
||||
|
||||
public class FolderOperationMenuItem : MenuOperationItemBase<FolderOperation>, IMenuOperation
|
||||
namespace Wino.Core.Domain.Models.Folders
|
||||
{
|
||||
protected FolderOperationMenuItem(FolderOperation operation, bool isEnabled) : base(operation, isEnabled) { }
|
||||
public class FolderOperationMenuItem : MenuOperationItemBase<FolderOperation>, IMenuOperation
|
||||
{
|
||||
protected FolderOperationMenuItem(FolderOperation operation, bool isEnabled) : base(operation, isEnabled) { }
|
||||
|
||||
public static FolderOperationMenuItem Create(FolderOperation operation, bool isEnabled = true)
|
||||
=> new FolderOperationMenuItem(operation, isEnabled);
|
||||
public static FolderOperationMenuItem Create(FolderOperation operation, bool isEnabled = true)
|
||||
=> new FolderOperationMenuItem(operation, isEnabled);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Folders;
|
||||
|
||||
/// <summary>
|
||||
/// Encapsulates a request to prepare a folder operation like Rename, Delete, etc.
|
||||
/// </summary>
|
||||
/// <param name="Action">Folder operation.</param>
|
||||
/// <param name="Folder">Target folder.</param>
|
||||
public record FolderOperationPreperationRequest(FolderOperation Action, MailItemFolder Folder) { }
|
||||
namespace Wino.Core.Domain.Models.Folders
|
||||
{
|
||||
/// <summary>
|
||||
/// Encapsulates a request to prepare a folder operation like Rename, Delete, etc.
|
||||
/// </summary>
|
||||
/// <param name="Action">Folder operation.</param>
|
||||
/// <param name="Folder">Target folder.</param>
|
||||
public record FolderOperationPreperationRequest(FolderOperation Action, MailItemFolder Folder) { }
|
||||
}
|
||||
|
||||
@@ -2,29 +2,30 @@
|
||||
using System.Collections.Generic;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Folders;
|
||||
|
||||
public interface IMailItemFolder
|
||||
namespace Wino.Core.Domain.Models.Folders
|
||||
{
|
||||
string BackgroundColorHex { get; set; }
|
||||
string DeltaToken { get; set; }
|
||||
string FolderName { get; set; }
|
||||
long HighestModeSeq { get; set; }
|
||||
Guid Id { get; set; }
|
||||
bool IsHidden { get; set; }
|
||||
bool IsSticky { get; set; }
|
||||
bool IsSynchronizationEnabled { get; set; }
|
||||
bool IsSystemFolder { get; set; }
|
||||
DateTime? LastSynchronizedDate { get; set; }
|
||||
Guid MailAccountId { get; set; }
|
||||
string ParentRemoteFolderId { get; set; }
|
||||
string RemoteFolderId { get; set; }
|
||||
SpecialFolderType SpecialFolderType { get; set; }
|
||||
string TextColorHex { get; set; }
|
||||
uint UidValidity { get; set; }
|
||||
List<IMailItemFolder> ChildFolders { get; set; }
|
||||
bool IsMoveTarget { get; }
|
||||
bool ShowUnreadCount { get; set; }
|
||||
public interface IMailItemFolder
|
||||
{
|
||||
string BackgroundColorHex { get; set; }
|
||||
string DeltaToken { get; set; }
|
||||
string FolderName { get; set; }
|
||||
long HighestModeSeq { get; set; }
|
||||
Guid Id { get; set; }
|
||||
bool IsHidden { get; set; }
|
||||
bool IsSticky { get; set; }
|
||||
bool IsSynchronizationEnabled { get; set; }
|
||||
bool IsSystemFolder { get; set; }
|
||||
DateTime? LastSynchronizedDate { get; set; }
|
||||
Guid MailAccountId { get; set; }
|
||||
string ParentRemoteFolderId { get; set; }
|
||||
string RemoteFolderId { get; set; }
|
||||
SpecialFolderType SpecialFolderType { get; set; }
|
||||
string TextColorHex { get; set; }
|
||||
uint UidValidity { get; set; }
|
||||
List<IMailItemFolder> ChildFolders { get; set; }
|
||||
bool IsMoveTarget { get; }
|
||||
bool ShowUnreadCount { get; set; }
|
||||
|
||||
bool ContainsSpecialFolderType(SpecialFolderType type);
|
||||
bool ContainsSpecialFolderType(SpecialFolderType type);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Folders;
|
||||
|
||||
public record SystemFolderConfiguration(MailItemFolder SentFolder,
|
||||
MailItemFolder DraftFolder,
|
||||
MailItemFolder ArchiveFolder,
|
||||
MailItemFolder TrashFolder,
|
||||
MailItemFolder JunkFolder);
|
||||
namespace Wino.Core.Domain.Models.Folders
|
||||
{
|
||||
public record SystemFolderConfiguration(MailItemFolder SentFolder,
|
||||
MailItemFolder DraftFolder,
|
||||
MailItemFolder ArchiveFolder,
|
||||
MailItemFolder TrashFolder,
|
||||
MailItemFolder JunkFolder);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user