< Summary

Information
Class: Services.DataServices.OrderRollback.OrderRollbackFieldChange
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/DataServices/OrderRollback/OrderRollbackModels.cs
Line coverage
100%
Covered lines: 6
Uncovered lines: 0
Coverable lines: 6
Total lines: 46
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Column()100%11100%
get_DisplayName()100%11100%
get_CurrentDisplay()100%11100%
get_TargetDisplay()100%11100%
get_Applicable()100%11100%
get_Warning()100%11100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/DataServices/OrderRollback/OrderRollbackModels.cs

#LineLine coverage
 1namespace Services.DataServices.OrderRollback;
 2
 3/// <summary>Одно изменяемое поле в превью восстановления.</summary>
 4public sealed class OrderRollbackFieldChange
 5{
 266    public string Column { get; init; } = string.Empty;
 207    public string DisplayName { get; init; } = string.Empty;
 8
 9    /// <summary>Текущее значение (для отображения).</summary>
 2210    public string CurrentDisplay { get; init; } = "—";
 11
 12    /// <summary>Целевое значение после восстановления (для отображения).</summary>
 2213    public string TargetDisplay { get; init; } = "—";
 14
 15    /// <summary>Можно ли реально применить (FK-имя разрешилось, значение распарсилось).</summary>
 3116    public bool Applicable { get; init; } = true;
 17
 18    /// <summary>Причина, по которой поле не будет восстановлено (если <see cref="Applicable"/> = false).</summary>
 519    public string? Warning { get; init; }
 20}
 21
 22/// <summary>Результат построения превью восстановления заказа к точке.</summary>
 23public sealed class OrderRollbackPreview
 24{
 25    public int OrderId { get; init; }
 26    public DateTime PointInTime { get; init; }
 27
 28    /// <summary>Список полей, которые отличаются от текущего состояния (применимые и неприменимые).</summary>
 29    public List<OrderRollbackFieldChange> Changes { get; init; } = new();
 30
 31    /// <summary>Найден ли заказ.</summary>
 32    public bool OrderFound { get; init; } = true;
 33
 34    public int ApplicableCount => Changes.Count(c => c.Applicable);
 35    public bool HasChanges => ApplicableCount > 0;
 36}
 37
 38/// <summary>Результат применения восстановления.</summary>
 39public sealed class OrderRollbackResult
 40{
 41    public bool Success { get; init; }
 42    public int AppliedCount { get; init; }
 43    public string Message { get; init; } = string.Empty;
 44
 45    public static OrderRollbackResult Fail(string message) => new() { Success = false, Message = message };
 46}