< Summary

Information
Class: OzonOrdersWeb.Filters.SupplierQuotationResultReader
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Filters/SupplierQuotationResultReader.cs
Line coverage
57%
Covered lines: 4
Uncovered lines: 3
Coverable lines: 7
Total lines: 21
Line coverage: 57.1%
Branch coverage
35%
Covered branches: 5
Total branches: 14
Branch coverage: 35.7%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ExtractOffers(...)62.5%88100%
ExtractError(...)0%4260%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Filters/SupplierQuotationResultReader.cs

#LineLine coverage
 1using System.Reflection;
 2using Services.ApiServices.TradesoftApi.Models.Response;
 3
 4namespace OzonOrdersWeb.Filters;
 5
 6/// <summary>Достаёт предложения из результата действия проценки. Контроллеры отдают либо голый
 7/// список <see cref="PreOrderItem"/>, либо обёртку вида <c>new { items, warning, settingsUrl }</c>.</summary>
 8internal static class SupplierQuotationResultReader
 9{
 10    public static IReadOnlyList<PreOrderItem> ExtractOffers(object? value)
 11    {
 912        if (value is IEnumerable<PreOrderItem> collection)
 813            return collection.ToList();
 114        var items = value?.GetType().GetProperty("Items", BindingFlags.Instance | BindingFlags.Public | BindingFlags.Ign
 115        return items is IEnumerable<PreOrderItem> wrapped ? wrapped.ToList() : [];
 16    }
 17
 018    public static string? ExtractError(object? value) => value?.GetType()
 019        .GetProperty("error", BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase)
 020        ?.GetValue(value)?.ToString();
 21}