< Summary

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

File(s)

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

#LineLine coverage
 1using System.ComponentModel.DataAnnotations;
 2using Microsoft.EntityFrameworkCore;
 3
 4namespace OzonDomains.Models;
 5
 6/// <summary>
 7/// Пользовательские настройки бокового меню навигации: избранное, порядок пунктов и групп,
 8/// свёрнутые группы, закрепление панели. Пара (UserId, Key) уникальна, значение — JSON,
 9/// форму которого понимает клиент (<c>wwwroot/js/layout/sidebar-navigation.js</c>).
 10/// Устройство то же, что у <see cref="OrdersGridUserSetting"/>: версия клиента защищает
 11/// от записи устаревшего значения поверх нового.
 12/// </summary>
 13[Index(nameof(UserId), nameof(Key), IsUnique = true)]
 14public class UserSidebarSetting
 15{
 16    [Key]
 017    public int Id { get; set; }
 18
 19    /// <summary>Идентификатор пользователя Identity (AspNetUsers.Id).</summary>
 20    [Required, MaxLength(255)]
 021    public string UserId { get; set; } = string.Empty;
 22
 23    /// <summary>Ключ настройки: favorites | order | collapsed | prefs.</summary>
 24    [Required, MaxLength(64)]
 025    public string Key { get; set; } = string.Empty;
 26
 27    /// <summary>JSON-значение; пустая строка — надгробие удалённой настройки (строка остаётся ради <see cref="Version"/
 28    [Required(AllowEmptyStrings = true)]
 029    public string Value { get; set; } = "{}";
 30
 031    public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
 32
 33    /// <summary>Версия значения от клиента (миллисекунды его часов); сохранение с меньшей версией отклоняется.</summary
 034    public long Version { get; set; }
 35}