< Summary

Information
Class: Services.AiAssistant.AiOrderFilterCriteriaCopy
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/AiAssistant/AiOrderFilterCriteriaCopy.cs
Line coverage
100%
Covered lines: 47
Uncovered lines: 0
Coverable lines: 47
Total lines: 70
Line coverage: 100%
Branch coverage
100%
Covered branches: 18
Total branches: 18
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
From(...)100%1818100%
WithoutLastMonths(...)100%11100%
WithoutDateLimits(...)100%11100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/AiAssistant/AiOrderFilterCriteriaCopy.cs

#LineLine coverage
 1namespace Services.AiAssistant;
 2
 3/// <summary>Копирование <see cref="AiOrderFilterCriteria"/> с изменением отдельных полей.</summary>
 4internal static class AiOrderFilterCriteriaCopy
 5{
 6    public static AiOrderFilterCriteria From(
 7        AiOrderFilterCriteria source,
 8        int? lastMonthsOverride = -1,
 9        DateTime? shippingDateFromOverride = null,
 10        bool clearShippingDateFrom = false,
 11        DateTime? shippingDateToOverride = null,
 12        bool clearShippingDateTo = false,
 13        DateTime? processingDateFromOverride = null,
 14        bool clearProcessingDateFrom = false,
 15        DateTime? processingDateToOverride = null,
 16        bool clearProcessingDateTo = false)
 17    {
 3218        return new AiOrderFilterCriteria
 3219        {
 3220            ActionableOnly         = source.ActionableOnly,
 3221            OverdueOnly            = source.OverdueOnly,
 3222            EmptyPrice             = source.EmptyPrice,
 3223            IncludeArchived        = source.IncludeArchived,
 3224            OzonClientName         = source.OzonClientName,
 3225            SupplierName           = source.SupplierName,
 3226            TransactionConductedBy = source.TransactionConductedBy,
 3227            ChangedByUser          = source.ChangedByUser,
 3228            AppStatusName          = source.AppStatusName,
 3229            ClientStatusName       = source.ClientStatusName,
 3230            OnlyWithReturns        = source.OnlyWithReturns,
 3231            Article                = source.Article,
 3232            ProductName            = source.ProductName,
 3233            ManufacturerName       = source.ManufacturerName,
 3234            NewCategory            = source.NewCategory,
 3235            MinQuantity            = source.MinQuantity,
 3236            MaxQuantity            = source.MaxQuantity,
 3237            PriceMin               = source.PriceMin,
 3238            PriceMax               = source.PriceMax,
 3239            ProfitMin              = source.ProfitMin,
 3240            ProfitMax              = source.ProfitMax,
 3241            OnlyNegativeProfit     = source.OnlyNegativeProfit,
 3242            PurchasePriceMax       = source.PurchasePriceMax,
 3243            ShipmentWarehouseName  = source.ShipmentWarehouseName,
 3244            DeliveryProviderName   = source.DeliveryProviderName,
 3245            DeliveryName           = source.DeliveryName,
 3246            DeliveryCity           = source.DeliveryCity,
 3247            OnlyWithTrackingNumber = source.OnlyWithTrackingNumber,
 3248            ShippingDateFrom       = clearShippingDateFrom ? null : shippingDateFromOverride ?? source.ShippingDateFrom,
 3249            ShippingDateTo         = clearShippingDateTo ? null : shippingDateToOverride ?? source.ShippingDateTo,
 3250            ProcessingDateFrom     = clearProcessingDateFrom ? null : processingDateFromOverride ?? source.ProcessingDat
 3251            ProcessingDateTo       = clearProcessingDateTo ? null : processingDateToOverride ?? source.ProcessingDateTo,
 3252            LastMonths             = lastMonthsOverride == -1 ? source.LastMonths : lastMonthsOverride,
 3253            ChangedFrom            = source.ChangedFrom,
 3254            ChangedTo              = source.ChangedTo,
 3255            FieldChangedName       = source.FieldChangedName,
 3256            FieldChangedToValue    = source.FieldChangedToValue,
 3257        };
 58    }
 59
 60    public static AiOrderFilterCriteria WithoutLastMonths(AiOrderFilterCriteria source) =>
 361        From(source, lastMonthsOverride: null);
 62
 63    public static AiOrderFilterCriteria WithoutDateLimits(AiOrderFilterCriteria source) =>
 364        From(source,
 365            lastMonthsOverride: null,
 366            clearShippingDateFrom: true,
 367            clearShippingDateTo: true,
 368            clearProcessingDateFrom: true,
 369            clearProcessingDateTo: true);
 70}