< Summary

Information
Class: OzonDomains.Models.OrderProblem
Assembly: OzonDomains
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonDomains/Models/OrderProblem.cs
Line coverage
100%
Covered lines: 5
Uncovered lines: 0
Coverable lines: 5
Total lines: 31
Line coverage: 100%
Branch coverage
100%
Covered branches: 8
Total branches: 8
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Severity()100%11100%
NormalizeSeverity(...)100%44100%
SeverityRank(...)100%44100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonDomains/Models/OrderProblem.cs

#LineLine coverage
 1namespace OzonDomains.Models;
 2
 3/// <summary>
 4/// Проблема заказа для значка и подсказки в сетках: активный алерт, непроведённый документ 1С или упавшая транзакция.
 5/// Не хранится в БД, собирается пакетом на страницу заказов.
 6/// </summary>
 7/// <param name="Severity">danger | warning | info (информация показывается синим, как в чипах алертов).</param>
 8/// <param name="Kind">alert | onec | transaction.</param>
 9/// <param name="Text">Короткое пояснение (без секретов), показывается во всплывающей подсказке.</param>
 4610public sealed record OrderProblem(string Severity, string Kind, string Text)
 11{
 12    public const string Danger = "danger";
 13    public const string Warning = "warning";
 14    public const string Info = "info";
 15
 16    /// <summary>Любая серьёзность, кроме danger и info, считается предупреждением.</summary>
 17    public static string NormalizeSeverity(string? severity) =>
 2018        string.Equals(severity, Danger, StringComparison.OrdinalIgnoreCase) ? Danger
 2019        : string.Equals(severity, Info, StringComparison.OrdinalIgnoreCase) ? Info
 2020        : Warning;
 21
 22    /// <summary>Порядок показа: сначала критичные, затем предупреждения, затем информация.</summary>
 1423    public static int SeverityRank(string? severity) => NormalizeSeverity(severity) switch { Danger => 0, Warning => 1, 
 24}
 25
 26public static class OrderProblemKind
 27{
 28    public const string Alert = "alert";
 29    public const string OneC = "onec";
 30    public const string Transaction = "transaction";
 31}