< Summary

Information
Class: OzonOrdersWeb.TransactionServices.SupplierOrderLookupResult
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Services/Transactions/SupplierOrderLookup.cs
Line coverage
100%
Covered lines: 2
Uncovered lines: 0
Coverable lines: 2
Total lines: 33
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Status()100%11100%
Unavailable(...)100%11100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Services/Transactions/SupplierOrderLookup.cs

#LineLine coverage
 1namespace OzonOrdersWeb.TransactionServices;
 2
 3public enum SupplierOrderLookupStatus
 4{
 5    /// <summary>Заказ с меткой Studio2 найден у поставщика.</summary>
 6    Found,
 7
 8    /// <summary>Поставщик ответил, и заказа с меткой в нём нет — повтор безопасен.</summary>
 9    NotFound,
 10
 11    /// <summary>Сверка невозможна (нет read-API, ошибка, метка не читается) — нужна ручная проверка.</summary>
 12    Unavailable
 13}
 14
 15/// <summary>Что искать у поставщика: заказ Studio2 и момент, когда была начата отправка.</summary>
 16public sealed record SupplierOrderLookupRequest(string ProviderKey, int StudioOrderId, DateTime IntentCreatedUtc);
 17
 7218public sealed record SupplierOrderLookupResult(SupplierOrderLookupStatus Status, string? ExternalOrderNumber = null, str
 19{
 1720    public static SupplierOrderLookupResult Unavailable(string details) => new(SupplierOrderLookupStatus.Unavailable, nu
 21}
 22
 23/// <summary>
 24/// Сверка с поставщиком перед повтором оформления: ищет уже созданный заказ по метке Studio2
 25/// (<see cref="Services.SupplierStatusServices.StudioOrderCommentLink"/>). Только чтение — реализации не создают,
 26/// не меняют и не отменяют заказы. Провайдеры без реализации считаются «сверка недоступна».
 27/// </summary>
 28public interface ISupplierOrderLookup
 29{
 30    IReadOnlyCollection<string> ProviderKeys { get; }
 31
 32    Task<SupplierOrderLookupResult> FindAsync(SupplierOrderLookupRequest request, CancellationToken ct);
 33}