< Summary

Information
Class: OzonOrdersWeb.Areas.Studio2.ViewModels.TransactionTimeTracking.TransactionTimeTrackingDayTypeCountDto
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/ViewModels/TransactionTimeTracking/TransactionTimeTrackingChartsViewModel.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 2
Coverable lines: 2
Total lines: 62
Line coverage: 0%
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_DateKey()100%210%
get_ByType()100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/ViewModels/TransactionTimeTracking/TransactionTimeTrackingChartsViewModel.cs

#LineLine coverage
 1namespace OzonOrdersWeb.Areas.Studio2.ViewModels.TransactionTimeTracking;
 2
 3/// <summary>
 4/// Данные для графиков на странице отчёта (считаются на сервере из отфильтрованной выборки).
 5/// Время суток и даты — по московскому времени (UTC+3), ось X по часам — момент завершения проведения.
 6/// </summary>
 7public class TransactionTimeTrackingChartsViewModel
 8{
 9    public List<string> TransactionTypes { get; set; } = new();
 10
 11    /// <summary>Ключ типа (как в БД) → русское имя как в таблице.</summary>
 12    public Dictionary<string, string> TypeDisplayNames { get; set; } = new();
 13
 14    /// <summary>Ключ типа → цвет линии/столбца (как у бейджа в таблице).</summary>
 15    public Dictionary<string, string> TypeChartColors { get; set; } = new();
 16
 17    /// <summary>Ключ даты yyyy-MM-dd → подпись для списков (рус.).</summary>
 18    public Dictionary<string, string> DateDisplayLabels { get; set; } = new();
 19
 20    /// <summary>Максимум календарных дней в выпадающих списках графиков (остальные отбрасываются).</summary>
 21    public int CalendarDaysLimit { get; set; }
 22
 23    /// <summary>Сколько дней реально попало в графики после ограничения.</summary>
 24    public int CalendarDaysShown { get; set; }
 25
 26    /// <summary>Сколько различных календарных дней (МСК) в полной выборке до обрезки списков.</summary>
 27    public int CalendarDaysTotalInFilter { get; set; }
 28
 29    /// <summary>Подписи 0..23 для оси X (час завершения, МСК).</summary>
 30    public List<string> HourLabels { get; set; } = new();
 31
 32    public List<string> WeekdayLabels { get; set; } = new() { "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс" };
 33
 34    /// <summary>Сумма по всем типам за весь период фильтра, по часу суток (0–23).</summary>
 35    public List<int> HourlyTotalAllTypes { get; set; } = new();
 36
 37    /// <summary>По типу: те же 24 часа, сумма за весь период.</summary>
 38    public Dictionary<string, List<int>> HourlyByTypeAggregate { get; set; } = new();
 39
 40    /// <summary>По календарным дням (МСК): для каждого дня — по типу массив из 24 часов.</summary>
 41    public List<TransactionTimeTrackingHourlyDayDto> HourlyByCalendarDay { get; set; } = new();
 42
 43    /// <summary>Сумма по всем типам за период, по дню недели (Пн=0 … Вс=6).</summary>
 44    public List<int> WeekdayTotalAllTypes { get; set; } = new();
 45
 46    public Dictionary<string, List<int>> WeekdayByType { get; set; } = new();
 47
 48    /// <summary>Для режима «одна дата»: число проведений по типу за этот календарный день (МСК).</summary>
 49    public List<TransactionTimeTrackingDayTypeCountDto> CountsByCalendarDay { get; set; } = new();
 50}
 51
 52public class TransactionTimeTrackingHourlyDayDto
 53{
 54    public string DateKey { get; set; } = string.Empty;
 55    public Dictionary<string, List<int>> ByTypeHours { get; set; } = new();
 56}
 57
 58public class TransactionTimeTrackingDayTypeCountDto
 59{
 060    public string DateKey { get; set; } = string.Empty;
 061    public Dictionary<string, int> ByType { get; set; } = new();
 62}

Methods/Properties

get_DateKey()
get_ByType()