namespace MyOffice.Web.Models.Motion { using System.ComponentModel.DataAnnotations; using Core.Extensions; using Data.Models.Accounts; using MyOffice.Data.Models.Motions; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; public class MotionCategoryViewModel { public string? Id { get; set; } [Required] public string? Name { get; set; } public bool AllowDelete { get; set; } public int SortOrder { get; set; } } public static class MotionCategoryViewModelExtensions { public static MotionCategoryViewModel ToModel(this MotionCategory input) { return new MotionCategoryViewModel { Id = input.Id.ToShort(), Name = input.Name, AllowDelete = !input.Motions.Any() && input.Id != input.UserId, SortOrder = input.Id == input.UserId ? 1 : 0 }; } } }