< Summary

Information
Class: Services.BitrixStockServices.BitrixStockPushFilterTemplate
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/BitrixStockServices/BitrixStockPushFilterTemplate.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 20
Coverable lines: 20
Total lines: 39
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%210%
BuildQueryString(...)100%210%
BuildFilter(...)0%2040%

File(s)

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

#LineLine coverage
 1using OzonOrdersWeb.Areas.Studio2.ViewModels.Bitrix;
 2
 3namespace Services.BitrixStockServices;
 4
 5/// <summary>Фильтр наката — как на /BitrixStock: OnlyActive, DiffOzonWarehouses, Ozon ≥ 1, склады B1, B2, M1, M2, M3.</
 6public static class BitrixStockPushFilterTemplate
 7{
 08    public static readonly string[] StoreTitles = BitrixStockClearFilterTemplate.StoreTitles;
 9
 10    public static string BuildQueryString(int ozonClientId) =>
 011        "SelectedStoreTitles=B1&SelectedStoreTitles=B2&SelectedStoreTitles=M1&SelectedStoreTitles=M2&SelectedStoreTitles
 012        "&LoadOzonWarehouses=true&DiffOzonWarehouses=true&OnlyActive=true&OzonAmountFrom=1" +
 013        "&StoresFilterApplied=1" +
 014        $"&SelectedClientId={ozonClientId}";
 15
 16    public static RemainingStockFilter BuildFilter(int ozonClientId, IReadOnlyList<string>? storeTitles = null)
 17    {
 018        var filter = BitrixStockFilterQueryParser.FromQueryString(BuildQueryString(ozonClientId));
 19
 020        if (storeTitles is { Count: > 0 })
 21        {
 022            filter.SelectedStoreTitles = storeTitles
 023                .Where(s => !string.IsNullOrWhiteSpace(s))
 024                .Select(s => s.Trim())
 025                .Distinct(StringComparer.OrdinalIgnoreCase)
 026                .ToList();
 27        }
 28
 029        BitrixStockIndexFilterRules.ApplyLikeStocksPage(filter, new BitrixStockIndexFilterContext
 030        {
 031            HasLoadOzonWarehousesInQuery = true,
 032            HasOnlyActiveInQuery = true,
 033            HasSelectedStoreTitlesInQuery = true,
 034            StoresFilterApplied = true
 035        });
 36
 037        return filter;
 38    }
 39}