37 lines
924 B
C#
37 lines
924 B
C#
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(),
|
|
};
|
|
}
|
|
}
|
|
}
|