Files
Wino-Mail/Wino.Core.Domain/Models/Connectivity/ImapConnectivityTestResults.cs
T

45 lines
1.5 KiB
C#
Raw Normal View History

2024-09-14 21:51:43 +02:00
using System;
using System.Linq;
using System.Text.Json.Serialization;
using Wino.Core.Domain.Extensions;
2025-02-16 11:54:23 +01:00
namespace Wino.Core.Domain.Models.Connectivity;
/// <summary>
/// Contains validation of the IMAP server connectivity during account setup.
/// </summary>
public class ImapConnectivityTestResults
2024-09-14 21:51:43 +02:00
{
2025-02-16 11:54:23 +01:00
[JsonConstructor]
protected ImapConnectivityTestResults() { }
2024-09-14 21:51:43 +02:00
2025-02-16 11:54:23 +01:00
public bool IsSuccess { get; set; }
2024-09-14 21:51:43 +02:00
2025-02-16 11:54:23 +01:00
public bool IsCertificateUIRequired { get; set; }
2024-09-14 21:51:43 +02:00
2025-02-16 11:54:23 +01:00
public string FailedReason { get; set; }
public static ImapConnectivityTestResults Success() => new ImapConnectivityTestResults() { IsSuccess = true };
2026-04-05 13:18:50 +02:00
public static ImapConnectivityTestResults Failure(Exception ex) => new ImapConnectivityTestResults()
2025-02-16 11:54:23 +01:00
{
2026-04-05 13:18:50 +02:00
FailedReason = string.Join(Environment.NewLine, ex.GetInnerExceptions().Select(e => e.Message))
2025-02-16 11:54:23 +01:00
};
2025-02-16 11:35:43 +01:00
2025-02-16 11:54:23 +01:00
public static ImapConnectivityTestResults CertificateUIRequired(string issuer,
string expirationString,
string validFromString)
{
return new ImapConnectivityTestResults()
2025-02-16 11:43:30 +01:00
{
2025-02-16 11:54:23 +01:00
IsSuccess = false,
IsCertificateUIRequired = true,
CertificateIssuer = issuer,
CertificateExpirationDateString = expirationString,
CertificateValidFromDateString = validFromString
};
2025-02-16 11:43:30 +01:00
}
2025-02-16 11:54:23 +01:00
public string CertificateIssuer { get; set; }
public string CertificateValidFromDateString { get; set; }
public string CertificateExpirationDateString { get; set; }
2024-09-14 21:51:43 +02:00
}