< Summary

Information
Class: OzonDomains.Models.OrdersGridUserSetting
Assembly: OzonDomains
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonDomains/Models/OrdersGridUserSetting.cs
Line coverage
83%
Covered lines: 5
Uncovered lines: 1
Coverable lines: 6
Total lines: 36
Line coverage: 83.3%
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_Id()100%210%
get_UserId()100%11100%
get_Key()100%11100%
get_Value()100%11100%
get_UpdatedAt()100%11100%
get_Version()100%11100%

File(s)

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

#LineLine coverage
 1using System.ComponentModel.DataAnnotations;
 2using Microsoft.EntityFrameworkCore;
 3
 4namespace OzonDomains.Models;
 5
 6/// <summary>
 7/// Пользовательские настройки страницы заказов на AG Grid (/Studio2/OrdersGrid): раскладка колонок,
 8/// плотность/шрифт, последний набор фильтров, сохранённые представления. Пара (UserId, Key) уникальна,
 9/// значение — JSON произвольной формы, которую понимает клиент.
 10/// </summary>
 11[Index(nameof(UserId), nameof(Key), IsUnique = true)]
 12public class OrdersGridUserSetting
 13{
 14    [Key]
 015    public int Id { get; set; }
 16
 17    /// <summary>Идентификатор пользователя Identity (AspNetUsers.Id).</summary>
 18    [Required, MaxLength(255)]
 1519    public string UserId { get; set; } = string.Empty;
 20
 21    /// <summary>Ключ настройки: columnState | viewPrefs | lastView | presets.</summary>
 22    [Required, MaxLength(64)]
 2023    public string Key { get; set; } = string.Empty;
 24
 25    /// <summary>JSON-значение; пустая строка — надгробие удалённой настройки (строка остаётся ради <see cref="Version"/
 26    [Required(AllowEmptyStrings = true)]
 2427    public string Value { get; set; } = "{}";
 28
 1929    public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
 30
 31    /// <summary>
 32    /// Версия значения от клиента (миллисекунды его часов). Сохранение с меньшей версией отклоняется —
 33    /// так два запроса на один ключ, пришедшие не по порядку, не затирают новую раскладку старой.
 34    /// </summary>
 1835    public long Version { get; set; }
 36}