diff --git a/ComputersShop/ComputersShop/FormComputers.cs b/ComputersShop/ComputersShop/FormComputers.cs index 851326d..38db274 100644 --- a/ComputersShop/ComputersShop/FormComputers.cs +++ b/ComputersShop/ComputersShop/FormComputers.cs @@ -29,7 +29,7 @@ namespace ComputersShop if (list != null) { dataGridView.DataSource = list; - dataGridView.Columns["Id"].Visible = true; + dataGridView.Columns["Id"].Visible = false; dataGridView.Columns["ComputerName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; dataGridView.Columns["ComputerComponents"].Visible = false; } diff --git a/ComputersShop/ComputersShopDatabaseImplement/Implements/OrderStorage.cs b/ComputersShop/ComputersShopDatabaseImplement/Implements/OrderStorage.cs index a7f1e1f..31a2bc2 100644 --- a/ComputersShop/ComputersShopDatabaseImplement/Implements/OrderStorage.cs +++ b/ComputersShop/ComputersShopDatabaseImplement/Implements/OrderStorage.cs @@ -3,7 +3,6 @@ using ComputersShopContracts.SearchModels; using ComputersShopContracts.StoragesContracts; using ComputersShopContracts.ViewModels; using ComputersShopDatabaseImplement.Models; -using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; @@ -17,8 +16,8 @@ namespace ComputersShopDatabaseImplement.Implements public List GetFullList() { using var context = new ComputersShopDatabase(); - return context.Orders.Include(x => x.Computer) - .Select(x => x.GetViewModel) + return context.Orders + .Select(x => AccessComputersStorage(x.GetViewModel)) .ToList(); } public List GetFilteredList(OrderSearchModel model) @@ -30,7 +29,7 @@ namespace ComputersShopDatabaseImplement.Implements using var context = new ComputersShopDatabase(); return context.Orders .Where(x => x.Id == model.Id) - .Select(x => x.GetViewModel) + .Select(x => AccessComputersStorage(x.GetViewModel)) .ToList(); } public OrderViewModel? GetElement(OrderSearchModel model) @@ -40,19 +39,19 @@ namespace ComputersShopDatabaseImplement.Implements return null; } using var context = new ComputersShopDatabase(); - return context.Orders.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel; + return AccessComputersStorage(context.Orders.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel); } public OrderViewModel? Insert(OrderBindingModel model) { - using var context = new ComputersShopDatabase(); var newOrder = Order.Create(model); if (newOrder == null) { return null; } + using var context = new ComputersShopDatabase(); context.Orders.Add(newOrder); context.SaveChanges(); - return newOrder.GetViewModel; + return AccessComputersStorage(newOrder.GetViewModel); } public OrderViewModel? Update(OrderBindingModel model) { @@ -65,7 +64,7 @@ namespace ComputersShopDatabaseImplement.Implements } order.Update(model); context.SaveChanges(); - return order.GetViewModel; + return AccessComputersStorage(order.GetViewModel); } public OrderViewModel? Delete(OrderBindingModel model) { @@ -76,9 +75,25 @@ namespace ComputersShopDatabaseImplement.Implements { context.Orders.Remove(element); context.SaveChanges(); - return element.GetViewModel; + return AccessComputersStorage(element.GetViewModel); } return null; } + + public static OrderViewModel AccessComputersStorage(OrderViewModel model) + { + if (model == null) + return null; + using var context = new ComputersShopDatabase(); + foreach (var Computers in context.Computers) + { + if (Computers.Id == model.ComputerId) + { + model.ComputerName = Computers.ComputerName; + break; + } + } + return model; + } } } diff --git a/ComputersShop/ComputersShopDatabaseImplement/Migrations/20240324163854_InitialCreate.Designer.cs b/ComputersShop/ComputersShopDatabaseImplement/Migrations/20240312150451_InitialCreate.Designer.cs similarity index 97% rename from ComputersShop/ComputersShopDatabaseImplement/Migrations/20240324163854_InitialCreate.Designer.cs rename to ComputersShop/ComputersShopDatabaseImplement/Migrations/20240312150451_InitialCreate.Designer.cs index 4cf8637..0cb2d33 100644 --- a/ComputersShop/ComputersShopDatabaseImplement/Migrations/20240324163854_InitialCreate.Designer.cs +++ b/ComputersShop/ComputersShopDatabaseImplement/Migrations/20240312150451_InitialCreate.Designer.cs @@ -12,7 +12,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace ComputersShopDatabaseImplement.Migrations { [DbContext(typeof(ComputersShopDatabase))] - [Migration("20240324163854_InitialCreate")] + [Migration("20240312150451_InitialCreate")] partial class InitialCreate { /// @@ -145,13 +145,11 @@ namespace ComputersShopDatabaseImplement.Migrations modelBuilder.Entity("ComputersShopDatabaseImplement.Models.Order", b => { - b.HasOne("ComputersShopDatabaseImplement.Models.Computer", "Computer") + b.HasOne("ComputersShopDatabaseImplement.Models.Computer", null) .WithMany("Orders") .HasForeignKey("ComputerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - - b.Navigation("Computer"); }); modelBuilder.Entity("ComputersShopDatabaseImplement.Models.Component", b => diff --git a/ComputersShop/ComputersShopDatabaseImplement/Migrations/20240324163854_InitialCreate.cs b/ComputersShop/ComputersShopDatabaseImplement/Migrations/20240312150451_InitialCreate.cs similarity index 100% rename from ComputersShop/ComputersShopDatabaseImplement/Migrations/20240324163854_InitialCreate.cs rename to ComputersShop/ComputersShopDatabaseImplement/Migrations/20240312150451_InitialCreate.cs diff --git a/ComputersShop/ComputersShopDatabaseImplement/Migrations/ComputersShopDatabaseModelSnapshot.cs b/ComputersShop/ComputersShopDatabaseImplement/Migrations/ComputersShopDatabaseModelSnapshot.cs index 339e7fc..8b53269 100644 --- a/ComputersShop/ComputersShopDatabaseImplement/Migrations/ComputersShopDatabaseModelSnapshot.cs +++ b/ComputersShop/ComputersShopDatabaseImplement/Migrations/ComputersShopDatabaseModelSnapshot.cs @@ -142,13 +142,11 @@ namespace ComputersShopDatabaseImplement.Migrations modelBuilder.Entity("ComputersShopDatabaseImplement.Models.Order", b => { - b.HasOne("ComputersShopDatabaseImplement.Models.Computer", "Computer") + b.HasOne("ComputersShopDatabaseImplement.Models.Computer", null) .WithMany("Orders") .HasForeignKey("ComputerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - - b.Navigation("Computer"); }); modelBuilder.Entity("ComputersShopDatabaseImplement.Models.Component", b => diff --git a/ComputersShop/ComputersShopDatabaseImplement/Models/Order.cs b/ComputersShop/ComputersShopDatabaseImplement/Models/Order.cs index 618fff7..a2539c0 100644 --- a/ComputersShop/ComputersShopDatabaseImplement/Models/Order.cs +++ b/ComputersShop/ComputersShopDatabaseImplement/Models/Order.cs @@ -3,7 +3,6 @@ using ComputersShopContracts.ViewModels; using ComputersShopDataModels.Enums; using System.ComponentModel.DataAnnotations; -using System.Runtime.CompilerServices; namespace ComputersShopDatabaseImplement.Models { @@ -22,10 +21,12 @@ namespace ComputersShopDatabaseImplement.Models [Required] public int ComputerId { get; private set; } - public virtual Computer Computer { get; set; } = new(); - public static Order? Create(OrderBindingModel model) { + if (model == null) + { + return null; + } return new Order() { Id = model.Id, @@ -47,7 +48,7 @@ namespace ComputersShopDatabaseImplement.Models Status = model.Status; DateImplement = model.DateImplement; } - + public OrderViewModel GetViewModel => new() { ComputerId = ComputerId, @@ -57,7 +58,6 @@ namespace ComputersShopDatabaseImplement.Models DateCreate = DateCreate, DateImplement = DateImplement, Id = Id, - ComputerName = Computer.ComputerName }; } }