Модели этап2. Связи один-ко-многим
This commit is contained in:
parent
a6d0252745
commit
55990af493
@ -11,6 +11,7 @@ namespace CarCenterContracts.BindingModels
|
||||
public class CarBindingModel : ICarModel
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int StorekeeperId { get; set; }
|
||||
public CarBrand CarBrand { get; set; } = CarBrand.Неизвестно;
|
||||
public string Model { get; set; } = string.Empty;
|
||||
public CarClass CarClass { get; set; } = CarClass.Неизвестно;
|
||||
|
@ -12,6 +12,12 @@ namespace CarCenterContracts.ViewModels
|
||||
public class CarViewModel : ICarModel
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int? FeatureId { get; set; }
|
||||
[DisplayName("Цена особенности")]
|
||||
public double FeaturePrice { get; set; }
|
||||
public int? StorekeeperId { get; set; }
|
||||
[DisplayName("Имя работника")]
|
||||
public string StorekeeperName { get; set; } = string.Empty;
|
||||
[DisplayName("Марка")]
|
||||
public CarBrand CarBrand { get; set; }
|
||||
[DisplayName("Модель")]
|
||||
|
@ -15,6 +15,8 @@ namespace CarCenterDatabaseImplement.Models
|
||||
public class Car : ICarModel
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public int? StorekeeperId { get; set; }
|
||||
public int? FeatureId { get; set; }
|
||||
[Required]
|
||||
public CarBrand CarBrand { get; set; } = CarBrand.Неизвестно;
|
||||
[Required]
|
||||
@ -30,6 +32,8 @@ namespace CarCenterDatabaseImplement.Models
|
||||
[Required]
|
||||
public int FeatureID { get; set; }
|
||||
public Dictionary<int, IBundlingModel> CarBundlings { get; set; } = new();
|
||||
public virtual Storekeeper Storekeeper { get; set; }
|
||||
public virtual Feature Feature { get; set; }
|
||||
|
||||
public static Car? Create(CarBindingModel model)
|
||||
{
|
||||
@ -40,21 +44,8 @@ namespace CarCenterDatabaseImplement.Models
|
||||
return new Car()
|
||||
{
|
||||
Id = model.Id,
|
||||
CarBrand = model.CarBrand,
|
||||
Model = model.Model,
|
||||
CarClass = model.CarClass,
|
||||
Year = model.Year,
|
||||
Price = model.Price,
|
||||
VINnumber = model.VINnumber,
|
||||
FeatureID = model.FeatureID,
|
||||
|
||||
};
|
||||
}
|
||||
public static Car Create(CarViewModel model)
|
||||
{
|
||||
return new Car
|
||||
{
|
||||
Id = model.Id,
|
||||
StorekeeperId = model.StorekeeperId,
|
||||
FeatureId = model.FeatureID,
|
||||
CarBrand = model.CarBrand,
|
||||
Model = model.Model,
|
||||
CarClass = model.CarClass,
|
||||
@ -70,6 +61,8 @@ namespace CarCenterDatabaseImplement.Models
|
||||
{
|
||||
return;
|
||||
}
|
||||
StorekeeperId = model.StorekeeperId;
|
||||
FeatureId = model.FeatureID;
|
||||
CarBrand = model.CarBrand;
|
||||
Model = model.Model;
|
||||
CarClass = model.CarClass;
|
||||
@ -81,6 +74,10 @@ namespace CarCenterDatabaseImplement.Models
|
||||
public CarViewModel GetViewModel => new()
|
||||
{
|
||||
Id = Id,
|
||||
StorekeeperId = StorekeeperId,
|
||||
StorekeeperName = Storekeeper?.Name ?? string.Empty,
|
||||
FeatureId = FeatureId,
|
||||
FeaturePrice = Feature?.Price ?? 0,
|
||||
CarBrand = CarBrand,
|
||||
Model = Model,
|
||||
CarClass = CarClass,
|
||||
|
@ -6,6 +6,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@ -23,6 +24,8 @@ namespace CarCenterDatabaseImplement.Models
|
||||
public DriveTypes DriveType { get; set; } = DriveTypes.Неизвестно;
|
||||
[Required]
|
||||
public double Price { get; set; }
|
||||
[ForeignKey("FeatureId")]
|
||||
public virtual List<Car> Cars { get; set; } = new();
|
||||
|
||||
public static Feature? Create(FeatureBindingModel model)
|
||||
{
|
||||
|
@ -1,12 +1,71 @@
|
||||
using System;
|
||||
using CarCenterContracts.BindingModels;
|
||||
using CarCenterContracts.ViewModels;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using CarCenterDataModels.Models;
|
||||
|
||||
namespace CarCenterDatabaseImplement.Models
|
||||
{
|
||||
public class Storekeeper
|
||||
public class Storekeeper : IStorekeeperModel
|
||||
{
|
||||
public int Id { get; set; }
|
||||
[Required]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
[Required]
|
||||
public string Surname { get; set; } = string.Empty;
|
||||
public string? Patronymic { get; set; }
|
||||
[Required]
|
||||
public string Password { get; set; } = string.Empty;
|
||||
[Required]
|
||||
public string Email { get; set; } = string.Empty;
|
||||
[Required]
|
||||
public long PhoneNumber { get; set; }
|
||||
[ForeignKey("StorekeeperId")]
|
||||
public virtual List<Car> Cars { get; set; } = new();
|
||||
|
||||
public static Storekeeper? Create(StorekeeperBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new Storekeeper()
|
||||
{
|
||||
Id = model.Id,
|
||||
Name = model.Name,
|
||||
Surname = model.Surname,
|
||||
Patronymic = model.Patronymic,
|
||||
Password = model.Password,
|
||||
Email = model.Email,
|
||||
PhoneNumber = model.PhoneNumber,
|
||||
};
|
||||
}
|
||||
|
||||
public void Update(StorekeeperBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Password = model.Password;
|
||||
Email = model.Email;
|
||||
PhoneNumber = model.PhoneNumber;
|
||||
}
|
||||
|
||||
public StorekeeperViewModel GetViewModel => new()
|
||||
{
|
||||
Id = Id,
|
||||
Name = Name,
|
||||
Surname = Surname,
|
||||
Patronymic = Patronymic,
|
||||
Password = Password,
|
||||
Email = Email,
|
||||
PhoneNumber = PhoneNumber,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user