fix Db models
This commit is contained in:
parent
d50c9f7f85
commit
7f9720200f
@ -14,8 +14,6 @@ namespace ElectronicsShopContracts.BindingModels
|
||||
|
||||
public int ClientID { get; set; }
|
||||
|
||||
public int? EmployeeID { get; set; }
|
||||
|
||||
public DateTime DateCreate { get; set; } = DateTime.Now;
|
||||
|
||||
public double Sum { get; set; }
|
||||
|
@ -12,7 +12,6 @@ namespace ElectronicsShopContracts.SearchModels
|
||||
{
|
||||
public int? ID { get; set; }
|
||||
public int? ClientID { get; set; }
|
||||
public int? EmployeeID { get; set; }
|
||||
public DateTime? DateFrom { get; set; }
|
||||
public DateTime? DateTo { get; set;}
|
||||
}
|
||||
|
@ -15,15 +15,13 @@ namespace ElectronicsShopContracts.ViewModels
|
||||
|
||||
public int ClientID { get; set; }
|
||||
|
||||
public int? EmployeeID { get; set; }
|
||||
|
||||
[DisplayName("Дата заказа")]
|
||||
public DateTime DateCreate { get; set; } = DateTime.Now;
|
||||
|
||||
[DisplayName("Сумма заказа")]
|
||||
public double Sum { get; set; }
|
||||
|
||||
[DisplayName("Список продуктов")]
|
||||
[DisplayName("Список товаров")]
|
||||
public Dictionary<int, (IProductModel, int)> ProductList { get; set; } = new();
|
||||
}
|
||||
}
|
||||
|
@ -11,18 +11,23 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace ElectronicsShopDataBaseImplement.Models
|
||||
{
|
||||
public class Client : IClientModel
|
||||
{
|
||||
public class Client : IClientModel {
|
||||
public int ID { get; set; }
|
||||
|
||||
[Required]
|
||||
public string ClientFIO { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public string Password { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public string Email { get; set; } = string.Empty;
|
||||
|
||||
//незаконная магия ленивой загрузки
|
||||
[ForeignKey("ClientID")]
|
||||
public virtual List<Order> Orders { get; set; } = new();
|
||||
|
||||
public static Client? Create(ClientBindingModel model)
|
||||
public static Client? Create(ClientBindingModel? model)
|
||||
{
|
||||
if(model == null)
|
||||
{
|
||||
@ -37,8 +42,7 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
public void Update(ClientBindingModel model)
|
||||
public void Update(ClientBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
|
@ -17,8 +17,10 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
|
||||
[ForeignKey("EmployeeID")]
|
||||
public int EmployeeID { get; set; }
|
||||
|
||||
[Required]
|
||||
public string Name { get; set; }= string.Empty;
|
||||
|
||||
[Required]
|
||||
public double Price { get; set; }
|
||||
|
||||
@ -36,7 +38,7 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
Price = model.Price,
|
||||
};
|
||||
}
|
||||
public void Update(CostItemBindingModel model)
|
||||
public void Update(CostItemBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
|
@ -15,10 +15,13 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
public class Employee : IEmployeeModel
|
||||
{
|
||||
public int ID { get; set; }
|
||||
|
||||
[Required]
|
||||
public string EmployeeFIO { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public string Login { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public string Password { get; set; } = string.Empty;
|
||||
|
||||
@ -36,7 +39,7 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
Password = model.Password,
|
||||
};
|
||||
}
|
||||
public void Update(EmployeeBindingModel model)
|
||||
public void Update(EmployeeBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
|
@ -2,6 +2,7 @@
|
||||
using ElectronicsShopContracts.ViewModels;
|
||||
using ElectronicsShopDataModels.Enums;
|
||||
using ElectronicsShopDataModels.Models;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
@ -16,12 +17,13 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
public class Order : IOrderModel
|
||||
{
|
||||
public int ID { get; set; }
|
||||
|
||||
[Required]
|
||||
public double Sum { get; set; }
|
||||
|
||||
[ForeignKey("ClientID")]
|
||||
public int ClientID { get; set; }
|
||||
[ForeignKey("EmployeeID")]
|
||||
public int? EmployeeID { get; set; }
|
||||
|
||||
[Required]
|
||||
public DateTime DateCreate { get; set; } = DateTime.Now;
|
||||
|
||||
@ -38,8 +40,12 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
}
|
||||
}
|
||||
|
||||
[ForeignKey("ProductID")]
|
||||
public virtual List<OrderProduct> Products { get; set; } = new();
|
||||
|
||||
[ForeignKey("PaymentID")]
|
||||
public virtual List<Payment> Payments { get; set; } = new();
|
||||
|
||||
public static Order? Create(Database context ,OrderBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
@ -51,7 +57,6 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
ID = model.ID,
|
||||
ClientID=model.ClientID,
|
||||
Sum = model.Sum,
|
||||
EmployeeID=model.EmployeeID,
|
||||
DateCreate = model.DateCreate,
|
||||
Products = model.ProductList.Select(x => new OrderProduct
|
||||
{
|
||||
@ -60,38 +65,36 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
}).ToList()
|
||||
};
|
||||
}
|
||||
public void Update(Database context,OrderBindingModel model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
ClientID = model.ClientID;
|
||||
Sum = model.Sum;
|
||||
EmployeeID = model.EmployeeID;
|
||||
DateCreate = model.DateCreate;
|
||||
Products = model.ProductList.Select(x => new OrderProduct
|
||||
{
|
||||
_product = context.Products.First(y => y.ID == x.Key),
|
||||
Count = x.Value.Item2
|
||||
}).ToList();
|
||||
//todo ProductList
|
||||
}
|
||||
|
||||
public OrderViewModel GetViewModel => new()
|
||||
{
|
||||
ID = ID,
|
||||
ClientID = ClientID,
|
||||
Sum = Sum,
|
||||
EmployeeID = EmployeeID,
|
||||
DateCreate = DateCreate,
|
||||
/*
|
||||
ProductList = ProductList.Select(x => new OrderProducts
|
||||
{
|
||||
/_product = context.Products.First(y => y.ID == x.Key)
|
||||
Count = x.Value.Item2
|
||||
}).ToList()
|
||||
*/
|
||||
};
|
||||
|
||||
public void UpdateProducts(Database context,OrderBindingModel model) {
|
||||
var orderProducts = context.OrderProducts.Where(rec => rec.ProductID == model.ID).ToList();
|
||||
if (orderProducts != null && orderProducts.Count > 0) {
|
||||
context.OrderProducts.RemoveRange(orderProducts.Where(rec => !model.ProductList.ContainsKey(rec.ProductID)));
|
||||
context.SaveChanges();
|
||||
foreach (var updateProducts in orderProducts) {
|
||||
updateProducts.Count = model.ProductList[updateProducts.ProductID].Item2;
|
||||
model.ProductList.Remove(updateProducts.ProductID);
|
||||
}
|
||||
context.SaveChanges();
|
||||
}
|
||||
var order = context.Orders.First(x => x.ID == ID);
|
||||
foreach (var op in model.ProductList) {
|
||||
context.OrderProducts.Add(new OrderProduct {
|
||||
_order = order,
|
||||
_product = context.Products.First(x => x.ID == op.Key),
|
||||
Count = op.Value.Item2
|
||||
});
|
||||
context.SaveChanges();
|
||||
}
|
||||
_productList = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,10 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
[Required]
|
||||
public int Count { get; set; }
|
||||
|
||||
[ForeignKey("OrderID")]
|
||||
public virtual Order _order { get; set; } = new();
|
||||
|
||||
[ForeignKey("ProductID")]
|
||||
public virtual Product _product { get; set; } = new();
|
||||
}
|
||||
}
|
||||
|
@ -16,14 +16,19 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
public class Payment : IPaymentModel
|
||||
{
|
||||
public int ID { get; set; }
|
||||
|
||||
[ForeignKey("ProductID")]
|
||||
public int ProductID { get; set; }
|
||||
|
||||
[ForeignKey("OrderID")]
|
||||
public int OrderID { get; set; }
|
||||
|
||||
[Required]
|
||||
public double SumPayment { get; set; }
|
||||
|
||||
[Required]
|
||||
public PaymeantOption PayOption { get; set; } = PaymeantOption.Неоплачено;
|
||||
|
||||
public static Payment? Create(PaymentBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
@ -39,7 +44,7 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
PayOption = model.PayOption,
|
||||
};
|
||||
}
|
||||
public void Update(PaymentBindingModel model)
|
||||
public void Update(PaymentBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
|
@ -15,10 +15,13 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
public class Product : IProductModel
|
||||
{
|
||||
public int ID { get; set; }
|
||||
|
||||
[Required]
|
||||
public string ProductName { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public double Price { get; set; }
|
||||
|
||||
[ForeignKey("CostItemID")]
|
||||
public int CostItemID { get; set; }
|
||||
|
||||
@ -28,15 +31,14 @@ namespace ElectronicsShopDataBaseImplement.Models
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new Product()
|
||||
{
|
||||
return new Product() {
|
||||
ID = model.ID,
|
||||
ProductName = model.ProductName,
|
||||
Price = model.Price,
|
||||
CostItemID = model.CostItemID,
|
||||
};
|
||||
}
|
||||
public void Update(ProductBindingModel model)
|
||||
public void Update(ProductBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
|
@ -10,7 +10,6 @@ namespace ElectronicsShopDataModels.Models
|
||||
public interface IOrderModel : IID
|
||||
{
|
||||
int ClientID { get; }
|
||||
int? EmployeeID { get; }
|
||||
DateTime DateCreate { get; }
|
||||
double Sum { get; }
|
||||
|
||||
|
@ -14,6 +14,5 @@ namespace ElectronicsShopDataModels.Models
|
||||
int OrderID { get; }
|
||||
double SumPayment { get; }
|
||||
PaymeantOption PayOption { get; }
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user