Files
myoffice/MyOffice.Web/Models/Item/ItemCategoryViewModel.cs
T
2023-07-20 21:38:05 +03:00

47 lines
1.1 KiB
C#

namespace MyOffice.Web.Models.Item
{
using System.ComponentModel.DataAnnotations;
using MyOffice.Core.Extensions;
using MyOffice.Data.Models.Items;
using MyOffice.Migrations.Postgres.Migrations;
public class ItemCategoryViewModel
{
public string? Id { get; set; }
[Required]
public string Name { get; set; } = null!;
public bool AllowDelete { get; set; }
public int SortOrder { get; set; }
public bool IsInternal { get; set; }
}
public static class ItemCategoryViewModelExtensions
{
public static ItemCategoryViewModel ToModel(this ItemCategory input)
{
return new ItemCategoryViewModel
{
Id = input.Id.ToShort(),
Name = input.Name,
AllowDelete = !input.Items.Any() && input.Id != input.UserId,
IsInternal = input.IsInternal,
SortOrder = input.Id == input.UserId ? 1 : 0
};
}
public static ItemCategory FromModel(this ItemCategoryViewModel input)
{
if (input == null)
throw new ArgumentNullException(nameof(input));
return new ItemCategory
{
Name = input.Name,
IsInternal = input.IsInternal,
};
}
}
}