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

45 lines
1.7 KiB
C#

using AyCode.Services.Nav;
namespace AyCode.Services.Nav.Ekaer.Models;
// Az EKÁER generált modellekre (XSD-ből, EKAER/1.0 namespace) ráhúzzuk a Nav base réteg interfészeit.
// Nem invazív: a generált fájlok érintetlenek maradnak (re-generálható), itt csak partial-bővítés.
// A legtöbb mező neve már egyezik az interfésszel → implicit teljesül; ahol eltér (TaxNumber↔VatNumber),
// ott explicit interfész-implementáció map-el.
/// <summary>requestId + timestamp — már megvannak a generált típusban, csak az interfész-deklaráció kell.</summary>
public partial class BasicHeaderType : INavRequestHeader
{
}
/// <summary>user / passwordHash / requestSignature neve egyezik; az adószám az EKÁER-ben <c>VATNumber</c>.</summary>
public partial class UserHeaderType : INavUserHeader
{
string INavUserHeader.TaxNumber
{
get => VatNumber;
set => VatNumber = value;
}
}
/// <summary>A base-headerhez (Header) és auth-headerhez (User) ad interfész-nézetet.</summary>
public partial class BasicRequestType : INavRequest
{
INavRequestHeader INavRequest.RequestHeader => Header;
INavUserHeader INavRequest.UserHeader => User;
}
/// <summary>funcCode/reasonCode/msg → a sikeresség-szerződés.</summary>
public partial class BaseResultType : INavResult
{
bool INavResult.IsSuccess => FuncCode == FunctionCodeType.Ok;
string? INavResult.ReasonCode => ReasonCode.ToString();
string? INavResult.Message => Msg;
}
/// <summary>A válasz top-level (header-szintű) result-jának interfész-nézete.</summary>
public partial class BasicResponseType : INavResponse
{
INavResult INavResponse.Result => Result;
}