diff --git a/CarRepairShop/CarRepairShopDatabaseImplement/Implements/OrderStorage.cs b/CarRepairShop/CarRepairShopDatabaseImplement/Implements/OrderStorage.cs index e4fdbf1..15d2e6a 100644 --- a/CarRepairShop/CarRepairShopDatabaseImplement/Implements/OrderStorage.cs +++ b/CarRepairShop/CarRepairShopDatabaseImplement/Implements/OrderStorage.cs @@ -12,7 +12,7 @@ namespace CarRepairShopDatabaseImplement.Implements { using var context = new RepairsShopDatabase(); return context.Orders - .Select(x => AccessRepairsStorage(x.GetViewModel)) + .Select(x => x.GetViewModel) .ToList(); } public List GetFilteredList(OrderSearchModel model) @@ -24,7 +24,7 @@ namespace CarRepairShopDatabaseImplement.Implements using var context = new RepairsShopDatabase(); return context.Orders .Where(x => x.Id == model.Id) - .Select(x => AccessRepairsStorage(x.GetViewModel)) + .Select(x => x.GetViewModel) .ToList(); } public OrderViewModel? GetElement(OrderSearchModel model) @@ -34,19 +34,19 @@ namespace CarRepairShopDatabaseImplement.Implements return null; } using var context = new RepairsShopDatabase(); - return AccessRepairsStorage(context.Orders.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel); + return context.Orders.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel; } public OrderViewModel? Insert(OrderBindingModel model) { - var newOrder = Order.Create(model); + using var context = new RepairsShopDatabase(); + var newOrder = Order.Create(context, model); if (newOrder == null) { return null; } - using var context = new RepairsShopDatabase(); context.Orders.Add(newOrder); context.SaveChanges(); - return AccessRepairsStorage(newOrder.GetViewModel); + return newOrder.GetViewModel; } public OrderViewModel? Update(OrderBindingModel model) { @@ -59,7 +59,7 @@ namespace CarRepairShopDatabaseImplement.Implements } order.Update(model); context.SaveChanges(); - return AccessRepairsStorage(order.GetViewModel); + return order.GetViewModel; } public OrderViewModel? Delete(OrderBindingModel model) { @@ -70,25 +70,9 @@ namespace CarRepairShopDatabaseImplement.Implements { context.Orders.Remove(element); context.SaveChanges(); - return AccessRepairsStorage(element.GetViewModel); + return element.GetViewModel; } return null; } - - public static OrderViewModel AccessRepairsStorage(OrderViewModel model) - { - if (model == null) - return null; - using var context = new RepairsShopDatabase(); - foreach (var Repairs in context.Repairs) - { - if (Repairs.Id == model.RepairId) - { - model.RepairName = Repairs.RepairName; - break; - } - } - return model; - } } } diff --git a/CarRepairShop/CarRepairShopDatabaseImplement/Migrations/RepairsShopDatabaseModelSnapshot.cs b/CarRepairShop/CarRepairShopDatabaseImplement/Migrations/RepairsShopDatabaseModelSnapshot.cs index 6b0390e..f0531b6 100644 --- a/CarRepairShop/CarRepairShopDatabaseImplement/Migrations/RepairsShopDatabaseModelSnapshot.cs +++ b/CarRepairShop/CarRepairShopDatabaseImplement/Migrations/RepairsShopDatabaseModelSnapshot.cs @@ -119,11 +119,12 @@ namespace CarRepairShopDatabaseImplement.Migrations modelBuilder.Entity("CarRepairShopDatabaseImplement.Models.Order", b => { - b.HasOne("CarRepairShopDatabaseImplement.Models.Repair", null) + b.HasOne("CarRepairShopDatabaseImplement.Models.Repair", "Repair") .WithMany("Orders") .HasForeignKey("RepairId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); + b.Navigation("Repair"); }); modelBuilder.Entity("CarRepairShopDatabaseImplement.Models.RepairComponent", b => diff --git a/CarRepairShop/CarRepairShopDatabaseImplement/Models/Order.cs b/CarRepairShop/CarRepairShopDatabaseImplement/Models/Order.cs index 361f0d4..6fca62a 100644 --- a/CarRepairShop/CarRepairShopDatabaseImplement/Models/Order.cs +++ b/CarRepairShop/CarRepairShopDatabaseImplement/Models/Order.cs @@ -19,13 +19,10 @@ namespace CarRepairShopDatabaseImplement.Models public DateTime? DateImplement { get; private set; } [Required] public int RepairId { get; private set; } + public virtual Repair Repair { get; set; } = new(); - public static Order? Create(OrderBindingModel model) + public static Order? Create(RepairsShopDatabase context, OrderBindingModel model) { - if (model == null) - { - return null; - } return new Order() { Id = model.Id, @@ -35,6 +32,7 @@ namespace CarRepairShopDatabaseImplement.Models DateCreate = model.DateCreate, DateImplement = model.DateImplement, RepairId = model.RepairId, + Repair = context.Repairs.FirstOrDefault(x => x.Id == model.RepairId) }; } @@ -51,12 +49,13 @@ namespace CarRepairShopDatabaseImplement.Models public OrderViewModel GetViewModel => new() { RepairId = RepairId, + RepairName = Repair.RepairName, Count = Count, Sum = Sum, Status = Status, DateCreate = DateCreate, DateImplement = DateImplement, - Id = Id, + Id = Id }; } }