< Summary

Information
Class: Services.FiltersServices.DataFilterManagers.SupplierDataFilterManager
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/FiltersServices/DataFilterManagers/SupplierDataFilterManager.cs
Line coverage
100%
Covered lines: 19
Uncovered lines: 0
Coverable lines: 19
Total lines: 49
Line coverage: 100%
Branch coverage
100%
Covered branches: 12
Total branches: 12
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
FilterByFilterData(...)100%1212100%
FilterByRadioButton(...)100%11100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/FiltersServices/DataFilterManagers/SupplierDataFilterManager.cs

#LineLine coverage
 1using OzonDomains.Models;
 2using Services.FiltersServices.FilterModels;
 3
 4namespace Services.FiltersServices.DataFilterManagers
 5{
 6    public class SupplierDataFilterManager : IFilterManager<Supplier, SupplierFilterModel>
 7    {
 8        private readonly DataFilter<Supplier> _filter;
 9
 2310        public SupplierDataFilterManager(DataFilter<Supplier> filter)
 11        {
 2312            _filter = filter;
 2313        }
 14
 15        public List<Supplier> FilterByFilterData(List<Supplier> suppliers, SupplierFilterModel filterData)
 16        {
 2317            if (suppliers == null || filterData == null)
 218                return suppliers ?? [];
 19
 4520            suppliers = _filter.FilterByString(suppliers, pr => pr.Name, filterData.Name).ToList();
 2921            suppliers = _filter.FilterByDecimal(suppliers, pr => pr.CostFactor, filterData.CostFactor).ToList();
 2522            suppliers = _filter.FilterByDecimal(suppliers, pr => pr.WeightFactor, filterData.WeightFactor).ToList();
 3123            suppliers = _filter.FilterByEnum(suppliers, pr => pr.CurrencyCode, filterData.CurrencyCode).ToList();
 2924            suppliers = _filter.FilterByEnum(suppliers, pr => pr.WeightFactorCurrencyCode, filterData.WeightFactorCurren
 2525            suppliers = _filter.FilterByString(suppliers, pr => pr.CsvUrl, filterData.CsvUrl).ToList();
 2526            suppliers = _filter.FilterByString(suppliers, pr => pr.Site, filterData.Site).ToList();
 2527            suppliers = _filter.FilterByString(suppliers, pr => pr.INNCode, filterData.INNCode).ToList();
 28
 29            // Безопасная фильтрация по nullable int
 2130            if (filterData.AdditionalTerm.HasValue)
 31            {
 1232                suppliers = suppliers.Where(pr => pr.AdditionalTerm.HasValue && pr.AdditionalTerm.Value == filterData.Ad
 33            }
 34
 35            // Фильтрация по nullable bool
 2136            if (filterData.IsVatApplicable.HasValue)
 37            {
 1238                suppliers = suppliers.Where(pr => pr.IsVatApplicable == filterData.IsVatApplicable.Value).ToList();
 39            }
 40
 2141            return suppliers;
 42        }
 43
 44        public List<Supplier> FilterByRadioButton(List<Supplier> filterModel, string buttonState)
 45        {
 146            throw new NotImplementedException();
 47        }
 48    }
 49}