AyCode.Core/AyCode.Services/Nav/Ekaer/EkaerSubmitResult.cs

34 lines
1.5 KiB
C#

using System.ComponentModel.DataAnnotations;
using AyCode.Services.Nav.Ekaer.Models;
namespace AyCode.Services.Nav.Ekaer;
/// <summary>
/// Egy EKÁER beküldési kísérlet eredménye: vagy validációs hibák (ekkor NEM ment ki kérés a NAV-nak),
/// vagy a NAV-válasz (sikeres beküldés).
/// </summary>
public sealed class EkaerSubmitResult
{
private EkaerSubmitResult(bool isValid, IReadOnlyList<ValidationResult> validationErrors, ManageTradeCardsResponse? response)
{
IsValid = isValid;
ValidationErrors = validationErrors;
Response = response;
}
/// <summary>Igaz, ha a validáció hibátlan volt (és így a beküldés megtörtént).</summary>
public bool IsValid { get; }
/// <summary>A validációs hibák (üres, ha érvényes volt). Ha nem üres, a bejelentés NEM lett elküldve.</summary>
public IReadOnlyList<ValidationResult> ValidationErrors { get; }
/// <summary>A NAV-válasz, ha a beküldés megtörtént; egyébként <c>null</c>.</summary>
public ManageTradeCardsResponse? Response { get; }
/// <summary>Validációs hibák miatt elutasított beküldés (nem ment ki kérés a NAV-nak).</summary>
public static EkaerSubmitResult Invalid(IReadOnlyList<ValidationResult> validationErrors) => new(false, validationErrors, null);
/// <summary>Sikeresen elküldött beküldés, a NAV-válasszal.</summary>
public static EkaerSubmitResult Sent(ManageTradeCardsResponse response) => new(true, [], response);
}