< Summary

Information
Class: Services.BitrixStockServices.BitrixOzonStockSyncSummary
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/BitrixStockServices/IBitrixOzonLinkedStockApiSyncService.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 7
Coverable lines: 7
Total lines: 43
Line coverage: 0%
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_Attempted()100%210%
get_Succeeded()100%210%
get_Failed()100%210%
get_Skipped()100%210%
get_LimitReached()100%210%
get_Entries()100%210%
AddEntry(...)100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/BitrixStockServices/IBitrixOzonLinkedStockApiSyncService.cs

#LineLine coverage
 1using OzonDomains.Models;
 2using OzonDomains.Models.BitrixModels;
 3
 4namespace Services.BitrixStockServices;
 5
 6public sealed class BitrixOzonStockSyncDetailEntry
 7{
 8    public string? Article { get; init; }
 9    public string OfferId { get; init; } = string.Empty;
 10    public string OzonClient { get; init; } = string.Empty;
 11    public string WarehouseName { get; init; } = string.Empty;
 12    public long WarehouseId { get; init; }
 13    public string? BitrixStores { get; init; }
 14    public int? PreviousOzonStock { get; init; }
 15    public int NewStock { get; init; }
 16    public long? ProductId { get; init; }
 17    public bool Success { get; init; }
 18    public string? ErrorMessage { get; init; }
 19}
 20
 21public sealed class BitrixOzonStockSyncSummary
 22{
 023    public int Attempted { get; set; }
 024    public int Succeeded { get; set; }
 025    public int Failed { get; set; }
 026    public int Skipped { get; set; }
 027    public bool LimitReached { get; set; }
 028    public List<BitrixOzonStockSyncDetailEntry> Entries { get; } = new();
 29
 030    public void AddEntry(BitrixOzonStockSyncDetailEntry entry) => Entries.Add(entry);
 31}
 32
 33public interface IBitrixOzonLinkedStockApiSyncService
 34{
 35    /// <summary>
 36    /// Отправляет на Ozon остатки по связкам (аналог кнопки refreshOzonMain).
 37    /// Клиенты — только из <paramref name="ozonClients"/> (уже с учётом SelectedClientId).
 38    /// </summary>
 39    Task<BitrixOzonStockSyncSummary> SyncPendingLinkedStocksAsync(
 40        IReadOnlyList<RemainingStockBitrix> items,
 41        IReadOnlyList<OzonClient> ozonClients,
 42        CancellationToken cancellationToken = default);
 43}