Files
Wino-Mail/Wino.Core.Domain/Models/Synchronization/MailSynchronizationOptions.cs

39 lines
1.4 KiB
C#
Raw Normal View History

2024-04-18 01:44:37 +02:00
using System;
using System.Collections.Generic;
using Wino.Core.Domain.Enums;
namespace Wino.Core.Domain.Models.Synchronization
{
2024-12-24 18:30:25 +01:00
public class MailSynchronizationOptions
2024-04-18 01:44:37 +02:00
{
/// <summary>
/// Unique id of synchronization.
/// </summary>
public Guid Id { get; } = Guid.NewGuid();
/// <summary>
/// Account to execute synchronization for.
/// </summary>
public Guid AccountId { get; set; }
/// <summary>
/// Type of the synchronization to be performed.
/// </summary>
2024-12-24 18:30:25 +01:00
public MailSynchronizationType Type { get; set; }
2024-04-18 01:44:37 +02:00
/// <summary>
/// Collection of FolderId to perform SynchronizationType.Custom type sync.
/// </summary>
public List<Guid> SynchronizationFolderIds { get; set; }
/// <summary>
/// When doing a linked inbox synchronization, we must ignore reporting completion to the caller for each folder.
/// This Id will help tracking that. Id is unique, but this one can be the same for all sync requests
/// inside the same linked inbox sync.
/// </summary>
public Guid? GroupedSynchronizationTrackingId { get; set; }
2024-12-24 18:30:25 +01:00
public override string ToString() => $"Type: {Type}, Folders: {(SynchronizationFolderIds == null ? "All" : string.Join(",", SynchronizationFolderIds))}";
2024-04-18 01:44:37 +02:00
}
}