< Summary

Information
Class: Services.BitrixStockServices.BitrixStockClearFilterTemplate
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/BitrixStockServices/BitrixStockClearFilterTemplate.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 19
Coverable lines: 19
Total lines: 38
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/BitrixStockClearFilterTemplate.cs

#LineLine coverage
 1using OzonOrdersWeb.Areas.Studio2.ViewModels.Bitrix;
 2
 3namespace Services.BitrixStockServices;
 4
 5/// <summary>Фильтр обнуления — как на /BitrixStock с OnlyInactive и складами B1, B2, M1, M2, M3.</summary>
 6public static class BitrixStockClearFilterTemplate
 7{
 08    public static readonly string[] StoreTitles = { "B1", "B2", "M1", "M2", "M3" };
 9
 10    public static string BuildQueryString(int ozonClientId) =>
 011        "SelectedStoreTitles=B1&SelectedStoreTitles=B2&SelectedStoreTitles=M1&SelectedStoreTitles=M2&SelectedStoreTitles
 012        "&LoadOzonWarehouses=true&OnlyInactive=true&StoresFilterApplied=1" +
 013        $"&SelectedClientId={ozonClientId}";
 14
 15    public static RemainingStockFilter BuildFilter(int ozonClientId, IReadOnlyList<string>? storeTitles = null)
 16    {
 017        var filter = BitrixStockFilterQueryParser.FromQueryString(BuildQueryString(ozonClientId));
 18
 019        if (storeTitles is { Count: > 0 })
 20        {
 021            filter.SelectedStoreTitles = storeTitles
 022                .Where(s => !string.IsNullOrWhiteSpace(s))
 023                .Select(s => s.Trim())
 024                .Distinct(StringComparer.OrdinalIgnoreCase)
 025                .ToList();
 26        }
 27
 028        BitrixStockIndexFilterRules.ApplyLikeStocksPage(filter, new BitrixStockIndexFilterContext
 029        {
 030            HasLoadOzonWarehousesInQuery = true,
 031            HasOnlyInactiveInQuery = true,
 032            HasSelectedStoreTitlesInQuery = true,
 033            StoresFilterApplied = true
 034        });
 35
 036        return filter;
 37    }
 38}