ISEbd-21_Melnikov_I.O._CarS.../CarService/CarServiceDatabase/Models/ItemForRepair.cs

64 lines
1.7 KiB
C#

using CarServiceContracts.BindingModels;
using CarServiceContracts.Models;
using CarServiceContracts.ViewModels;
using System.ComponentModel.DataAnnotations;
namespace CarServiceDatabase.Models
{
public class ItemForRepair : IItemForRepairModel
{
public int Id { get; private set; }
[Required]
public int Count { get; private set; }
[Required]
public int ItemId { get; private set; }
[Required]
public int RepairRequestId { get; private set; }
public virtual Item Item { get; set; } = new();
public virtual RepairRequest RepairRequest { get; set; } = new();
public static ItemForRepair? Create(CarServiceDbContext context, ItemForRepairBindingModel? model)
{
if (model == null)
{
return null;
}
return new()
{
Id = model.Id,
Count = model.Count,
Item = context.Items.First(x => x.Id == model.ItemId),
RepairRequest = context.RepairRequests.First(x => x.Id == model.RepairRequestId)
};
}
public static ItemForRepair Create(CarServiceDbContext context, ItemForRepairViewModel model)
{
return new()
{
Id = model.Id,
Count = model.Count,
Item = context.Items.First(x => x.Id == model.ItemId),
RepairRequest = context.RepairRequests.First(x => x.Id == model.RepairRequestId)
};
}
public void Update(CarServiceDbContext context, ItemForRepairBindingModel? model)
{
if (model == null)
{
return;
}
Id = model.Id;
Count = model.Count;
ItemId = model.ItemId;
RepairRequestId = model.RepairRequestId;
}
public ItemForRepairViewModel GetViewModel => new()
{
Id = Id,
Count = Count,
ItemId = ItemId,
RepairRequestId = RepairRequestId,
ItemName = Item.Name
};
}
}