моделс делаем

This commit is contained in:
Максим Куклев 2024-04-30 19:30:41 +04:00
parent f0d1ca8b08
commit 0989b27c5f
3 changed files with 82 additions and 4 deletions

View File

@ -6,10 +6,6 @@
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<Folder Include="Models\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.0">

View File

@ -0,0 +1,50 @@
using CarCenterContracts.BindingModels;
using CarCenterContracts.Extensions;
using CarCenterContracts.ViewModels;
using CarCenterDataModels;
using System.ComponentModel.DataAnnotations;
namespace CarCenterDatabaseImplement.Models
{
public class Client : IClientModel
{
[Required]
public int DirectorId { get; private set; }
[Required]
public string Name { get; private set; } = string.Empty;
[Required]
public double Price { get; private set; }
[Required]
public int Course { get; private set; }
public int Id { get; private set; }
[Required]
public Director? Director { get; private set; }
[Required]
public List<ClientByCar> Cars { get; private set; } = new();
public static Client Create(ClientBindingModel model) => model.CastWithCommonProperties<Client, ClientBindingModel>();
public static implicit operator ClientViewModel?(Client? model)
{
if (model == null)
{
return null;
}
var res = model.CastWithCommonProperties<ClientViewModel, Client>();
res.DirectorLogin = model.Director?.Login ?? string.Empty;
res.Cars = model.Cars.Select(x => (CarViewModel)x.Car).ToList();
return res;
}
public void Update(ClientBindingModel model)
{
Price = model.Price;
Course = model.Course;
}
public ClientViewModel GetViewModel() => this.CastWithCommonProperties<ClientViewModel, Client>();
}
}

View File

@ -0,0 +1,32 @@
using CarCenterContracts.BindingModels;
using CarCenterContracts.ViewModels;
using CarCenterDataModels;
using System.ComponentModel.DataAnnotations;
using CarCenterContracts.Extensions;
namespace CarCenterDatabaseImplement.Models
{
public class Director : IDirectorModel
{
public int Id { get; private set; }
[Required]
public string FirstName { get; private set; } = string.Empty;
[Required]
public string LastName { get; private set; } = string.Empty;
[Required]
public string Login { get; private set; } = string.Empty;
[Required]
public string Password { get; private set; } = string.Empty;
public string PhoneNumber { get; set; } = string.Empty;
[Required]
public List<Client>? Clients { get; private set; }
[Required]
public List<Requirement>? Requirements { get; private set; }
public static Director Create(DirectorBindingModel model) => model.CastWithCommonProperties<Director, DirectorBindingModel>();
public static implicit operator DirectorViewModel?(Director? model) => model?.CastWithCommonProperties<DirectorViewModel, Director>();
}
}