68 lines
1.9 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using TransportCompanyContracts.BindingModels;
using TransportCompanyContracts.ViewModels;
using TransportCompanyDataModels.Models;
namespace TransportCompanyDatabaseImplement.Models
{
public class Transport : ITransportModel
{
public int Id { get; private set; }
[Required]
public string Model { get; private set; } = string.Empty;
[Required]
public int LoadCapacity { get; private set; }
[Required]
public string StateNumber { get; private set; } = string.Empty;
[ForeignKey("TransportId")]
public virtual List<Transportation> Transportations { get; set; } = new();
public static Transport? Create(TransportBindingModel model)
{
if (model == null)
{
return null;
}
return new Transport()
{
Id = model.Id,
Model = model.Model,
LoadCapacity = model.LoadCapacity,
StateNumber = model.StateNumber
};
}
public static Transport Create(TransportViewModel model)
{
return new Transport()
{
Id = model.Id,
Model = model.Model,
LoadCapacity = model.LoadCapacity,
StateNumber = model.StateNumber
};
}
public void Update(TransportBindingModel model)
{
if (model == null)
{
return;
}
Model = model.Model;
LoadCapacity = model.LoadCapacity;
StateNumber = model.StateNumber;
}
public TransportViewModel GetViewModel => new()
{
Id = Id,
Model = Model,
LoadCapacity = LoadCapacity,
StateNumber = StateNumber
};
}
}