namespace MyOffice.Web.Models.Item { using System.ComponentModel.DataAnnotations; using Data.Models.Accounts; using MyOffice.Core.Extensions; using MyOffice.Data.Models.Items; public class ItemViewModel { public string? Id { get; set; } public string CategoryId { get; set; } = null!; public string? Category { get; set; } = null!; [Required] public string? Name { get; set; } public bool AllowDelete { get; set; } public string? AccountId { get; set; } } public static class ItemViewModelExtensions { public static ItemViewModel ToModel(this Item input, Account? account = null) { return new ItemViewModel { Id = input.ItemGlobal.Id.ToShort(), CategoryId = input.CategoryId.ToShort(), Category = input.Category?.Name, Name = input.ItemGlobal.Name, AllowDelete = input.Motions != null && !input.Motions.Any(), AccountId = account?.Id.ToShort(), }; } } }