diff --git a/CarCenter/CarCenterContracts/BindingModels/OrderBindingModel.cs b/CarCenter/CarCenterContracts/BindingModels/OrderBindingModel.cs index 5314f5b..c04e10e 100644 --- a/CarCenter/CarCenterContracts/BindingModels/OrderBindingModel.cs +++ b/CarCenter/CarCenterContracts/BindingModels/OrderBindingModel.cs @@ -23,5 +23,7 @@ namespace CarCenterContracts.BindingModels public double Sum { get; set; } public Dictionary OrderPresales { get; set; } = new(); - } + + public Dictionary Cars { get; set; } = new(); + } } diff --git a/CarCenter/CarCenterContracts/BindingModels/PresaleBindingModel.cs b/CarCenter/CarCenterContracts/BindingModels/PresaleBindingModel.cs index e53d64b..0dbd6e6 100644 --- a/CarCenter/CarCenterContracts/BindingModels/PresaleBindingModel.cs +++ b/CarCenter/CarCenterContracts/BindingModels/PresaleBindingModel.cs @@ -21,6 +21,6 @@ namespace CarCenterContracts.BindingModels public double Price { get; set; } public Dictionary PresaleBundlings { get; set; } = new(); - public List RequestIds { get; set; } = new(); + public Dictionary Requests { get; set; } = new(); } } diff --git a/CarCenter/CarCenterContracts/ViewModels/OrderViewModel.cs b/CarCenter/CarCenterContracts/ViewModels/OrderViewModel.cs index b7e83e3..9b0a95e 100644 --- a/CarCenter/CarCenterContracts/ViewModels/OrderViewModel.cs +++ b/CarCenter/CarCenterContracts/ViewModels/OrderViewModel.cs @@ -26,5 +26,6 @@ namespace CarCenterContracts.ViewModels [DisplayName("Сумма")] public double Sum { get; set; } public Dictionary OrderPresales { get; set; } = new(); - } + public Dictionary Cars { get; set; } = new(); + } } diff --git a/CarCenter/CarCenterContracts/ViewModels/PresaleViewModel.cs b/CarCenter/CarCenterContracts/ViewModels/PresaleViewModel.cs index 872ef63..b41741e 100644 --- a/CarCenter/CarCenterContracts/ViewModels/PresaleViewModel.cs +++ b/CarCenter/CarCenterContracts/ViewModels/PresaleViewModel.cs @@ -21,6 +21,6 @@ namespace CarCenterContracts.ViewModels [DisplayName("Цена")] public double Price { get; set; } public Dictionary PresaleBundlings { get; set; } = new(); - public List Requests { get; set; } = new(); + public Dictionary Requests { get; set; } = new(); } } diff --git a/CarCenter/CarCenterDatabaseImplement/Implements/OrderStorage.cs b/CarCenter/CarCenterDatabaseImplement/Implements/OrderStorage.cs index 81fa605..1c3d50c 100644 --- a/CarCenter/CarCenterDatabaseImplement/Implements/OrderStorage.cs +++ b/CarCenter/CarCenterDatabaseImplement/Implements/OrderStorage.cs @@ -99,7 +99,7 @@ namespace CarCenterDatabaseImplement.Implements .Select(x => x.GetViewModel) .ToList(); } - else if (model.Id.HasValue) + else if (model.WorkerId.HasValue) { return context.Orders .Where(x => x.WorkerId == model.WorkerId) @@ -107,7 +107,6 @@ namespace CarCenterDatabaseImplement.Implements .Include(x => x.Cars) .Include(x => x.Presales) .ThenInclude(x => x.Presale) - .Where(x => x.Id == model.Id) .Select(x => x.GetViewModel) .ToList(); } diff --git a/CarCenter/CarCenterDatabaseImplement/Implements/PresaleStorage.cs b/CarCenter/CarCenterDatabaseImplement/Implements/PresaleStorage.cs index 4f7b5fe..046daed 100644 --- a/CarCenter/CarCenterDatabaseImplement/Implements/PresaleStorage.cs +++ b/CarCenter/CarCenterDatabaseImplement/Implements/PresaleStorage.cs @@ -103,6 +103,8 @@ namespace CarCenterDatabaseImplement.Implements return null; } order.Update(model); + order.UpdateBundlings(context, model); + order.UpdateBundlings(context, model); context.SaveChanges(); return context.Presales .Include(x => x.Bundlings) diff --git a/CarCenter/CarCenterDatabaseImplement/Migrations/20240528191551_InitFull.Designer.cs b/CarCenter/CarCenterDatabaseImplement/Migrations/20240528191551_InitFull.Designer.cs deleted file mode 100644 index 03d2eaa..0000000 --- a/CarCenter/CarCenterDatabaseImplement/Migrations/20240528191551_InitFull.Designer.cs +++ /dev/null @@ -1,505 +0,0 @@ -// -using System; -using CarCenterDatabaseImplement; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace CarCenterDatabaseImplement.Migrations -{ - [DbContext(typeof(CarCenterDatabase))] - [Migration("20240528191551_InitFull")] - partial class InitFull - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "6.0.29") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Bundling", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("EquipmentPackage") - .HasColumnType("integer"); - - b.Property("Price") - .HasColumnType("double precision"); - - b.Property("StorekeeperId") - .HasColumnType("integer"); - - b.Property("TirePackage") - .HasColumnType("integer"); - - b.Property("ToolKit") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("Bundlings"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Car", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("CarBrand") - .HasColumnType("integer"); - - b.Property("CarClass") - .HasColumnType("integer"); - - b.Property("FeatureID") - .HasColumnType("integer"); - - b.Property("FeatureId") - .HasColumnType("integer"); - - b.Property("Model") - .IsRequired() - .HasColumnType("text"); - - b.Property("OrderId") - .HasColumnType("integer"); - - b.Property("Price") - .HasColumnType("double precision"); - - b.Property("StorekeeperId") - .HasColumnType("integer"); - - b.Property("VINnumber") - .HasColumnType("bigint"); - - b.Property("Year") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("FeatureId"); - - b.HasIndex("OrderId"); - - b.HasIndex("StorekeeperId"); - - b.ToTable("Cars"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.CarBundling", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("BundlingId") - .HasColumnType("integer"); - - b.Property("CarId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("BundlingId"); - - b.HasIndex("CarId"); - - b.ToTable("CarBundlings"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Feature", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("CabinColor") - .IsRequired() - .HasColumnType("text"); - - b.Property("DriveType") - .HasColumnType("integer"); - - b.Property("HelpDevice") - .HasColumnType("integer"); - - b.Property("Price") - .HasColumnType("double precision"); - - b.Property("StorekeeperId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("Features"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Order", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("BuyerFCS") - .IsRequired() - .HasColumnType("text"); - - b.Property("PaymentDate") - .HasColumnType("timestamp without time zone"); - - b.Property("PaymentStatus") - .HasColumnType("integer"); - - b.Property("PaymentType") - .HasColumnType("integer"); - - b.Property("Sum") - .HasColumnType("double precision"); - - b.Property("WorkerId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("WorkerId"); - - b.ToTable("Orders"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.OrderPresale", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("OrderId") - .HasColumnType("integer"); - - b.Property("PresaleId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("OrderId"); - - b.HasIndex("PresaleId"); - - b.ToTable("OrderPresales"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Presale", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Description") - .IsRequired() - .HasColumnType("text"); - - b.Property("DueTill") - .HasColumnType("timestamp without time zone"); - - b.Property("PresaleStatus") - .HasColumnType("integer"); - - b.Property("Price") - .HasColumnType("double precision"); - - b.HasKey("Id"); - - b.ToTable("Presales"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.PresaleBundling", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("BundlingId") - .HasColumnType("integer"); - - b.Property("PresaleId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("BundlingId"); - - b.HasIndex("PresaleId"); - - b.ToTable("PresaleBundlings"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Request", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Description") - .IsRequired() - .HasColumnType("text"); - - b.Property("PresaleId") - .HasColumnType("integer"); - - b.Property("RequestType") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("PresaleId"); - - b.ToTable("Requests"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Storekeeper", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Email") - .IsRequired() - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Patronymic") - .HasColumnType("text"); - - b.Property("PhoneNumber") - .HasColumnType("bigint"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.HasKey("Id"); - - b.ToTable("Storekeepers"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Worker", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Email") - .IsRequired() - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Patronymic") - .HasColumnType("text"); - - b.Property("PhoneNumber") - .HasColumnType("bigint"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.HasKey("Id"); - - b.ToTable("Workers"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Car", b => - { - b.HasOne("CarCenterDatabaseImplement.Models.Feature", "Feature") - .WithMany("Cars") - .HasForeignKey("FeatureId"); - - b.HasOne("CarCenterDatabaseImplement.Models.Order", "Order") - .WithMany("Cars") - .HasForeignKey("OrderId"); - - b.HasOne("CarCenterDatabaseImplement.Models.Storekeeper", "Storekeeper") - .WithMany("Cars") - .HasForeignKey("StorekeeperId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Feature"); - - b.Navigation("Order"); - - b.Navigation("Storekeeper"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.CarBundling", b => - { - b.HasOne("CarCenterDatabaseImplement.Models.Bundling", "Bundling") - .WithMany("CarBundling") - .HasForeignKey("BundlingId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("CarCenterDatabaseImplement.Models.Car", "Car") - .WithMany("Bundlings") - .HasForeignKey("CarId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Bundling"); - - b.Navigation("Car"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Order", b => - { - b.HasOne("CarCenterDatabaseImplement.Models.Worker", "Worker") - .WithMany("Orders") - .HasForeignKey("WorkerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Worker"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.OrderPresale", b => - { - b.HasOne("CarCenterDatabaseImplement.Models.Order", "Order") - .WithMany("Presales") - .HasForeignKey("OrderId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("CarCenterDatabaseImplement.Models.Presale", "Presale") - .WithMany("OrderPresales") - .HasForeignKey("PresaleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Order"); - - b.Navigation("Presale"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.PresaleBundling", b => - { - b.HasOne("CarCenterDatabaseImplement.Models.Bundling", "Bundling") - .WithMany("PresaleBundling") - .HasForeignKey("BundlingId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("CarCenterDatabaseImplement.Models.Presale", "Presale") - .WithMany("Bundlings") - .HasForeignKey("PresaleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Bundling"); - - b.Navigation("Presale"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Request", b => - { - b.HasOne("CarCenterDatabaseImplement.Models.Presale", "Presale") - .WithMany("Requests") - .HasForeignKey("PresaleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Presale"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Bundling", b => - { - b.Navigation("CarBundling"); - - b.Navigation("PresaleBundling"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Car", b => - { - b.Navigation("Bundlings"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Feature", b => - { - b.Navigation("Cars"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Order", b => - { - b.Navigation("Cars"); - - b.Navigation("Presales"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Presale", b => - { - b.Navigation("Bundlings"); - - b.Navigation("OrderPresales"); - - b.Navigation("Requests"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Storekeeper", b => - { - b.Navigation("Cars"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Worker", b => - { - b.Navigation("Orders"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/CarCenter/CarCenterDatabaseImplement/Migrations/20240528191551_InitFull.cs b/CarCenter/CarCenterDatabaseImplement/Migrations/20240528191551_InitFull.cs deleted file mode 100644 index 12b50a3..0000000 --- a/CarCenter/CarCenterDatabaseImplement/Migrations/20240528191551_InitFull.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace CarCenterDatabaseImplement.Migrations -{ - public partial class InitFull : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - - } - } -} diff --git a/CarCenter/CarCenterDatabaseImplement/Migrations/20240529141913_ababa4.Designer.cs b/CarCenter/CarCenterDatabaseImplement/Migrations/20240529141913_ababa4.Designer.cs deleted file mode 100644 index d54bbc0..0000000 --- a/CarCenter/CarCenterDatabaseImplement/Migrations/20240529141913_ababa4.Designer.cs +++ /dev/null @@ -1,511 +0,0 @@ -// -using System; -using CarCenterDatabaseImplement; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace CarCenterDatabaseImplement.Migrations -{ - [DbContext(typeof(CarCenterDatabase))] - [Migration("20240529141913_ababa4")] - partial class ababa4 - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "6.0.29") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Bundling", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DateCreate") - .HasColumnType("timestamp without time zone"); - - b.Property("EquipmentPackage") - .HasColumnType("integer"); - - b.Property("Price") - .HasColumnType("double precision"); - - b.Property("StorekeeperId") - .HasColumnType("integer"); - - b.Property("TirePackage") - .HasColumnType("integer"); - - b.Property("ToolKit") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("Bundlings"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Car", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("CarBrand") - .HasColumnType("integer"); - - b.Property("CarClass") - .HasColumnType("integer"); - - b.Property("DateCreate") - .HasColumnType("timestamp without time zone"); - - b.Property("FeatureID") - .HasColumnType("integer"); - - b.Property("FeatureId") - .HasColumnType("integer"); - - b.Property("Model") - .IsRequired() - .HasColumnType("text"); - - b.Property("OrderId") - .HasColumnType("integer"); - - b.Property("Price") - .HasColumnType("double precision"); - - b.Property("StorekeeperId") - .HasColumnType("integer"); - - b.Property("VINnumber") - .HasColumnType("bigint"); - - b.Property("Year") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("FeatureId"); - - b.HasIndex("OrderId"); - - b.HasIndex("StorekeeperId"); - - b.ToTable("Cars"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.CarBundling", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("BundlingId") - .HasColumnType("integer"); - - b.Property("CarId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("BundlingId"); - - b.HasIndex("CarId"); - - b.ToTable("CarBundlings"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Feature", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("CabinColor") - .IsRequired() - .HasColumnType("text"); - - b.Property("DriveType") - .HasColumnType("integer"); - - b.Property("HelpDevice") - .HasColumnType("integer"); - - b.Property("Price") - .HasColumnType("double precision"); - - b.Property("StorekeeperId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("Features"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Order", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("BuyerFCS") - .IsRequired() - .HasColumnType("text"); - - b.Property("PaymentDate") - .HasColumnType("timestamp without time zone"); - - b.Property("PaymentStatus") - .HasColumnType("integer"); - - b.Property("PaymentType") - .HasColumnType("integer"); - - b.Property("Sum") - .HasColumnType("double precision"); - - b.Property("WorkerId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("WorkerId"); - - b.ToTable("Orders"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.OrderPresale", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("OrderId") - .HasColumnType("integer"); - - b.Property("PresaleId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("OrderId"); - - b.HasIndex("PresaleId"); - - b.ToTable("OrderPresales"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Presale", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Description") - .IsRequired() - .HasColumnType("text"); - - b.Property("DueTill") - .HasColumnType("timestamp without time zone"); - - b.Property("PresaleStatus") - .HasColumnType("integer"); - - b.Property("Price") - .HasColumnType("double precision"); - - b.HasKey("Id"); - - b.ToTable("Presales"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.PresaleBundling", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("BundlingId") - .HasColumnType("integer"); - - b.Property("PresaleId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("BundlingId"); - - b.HasIndex("PresaleId"); - - b.ToTable("PresaleBundlings"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Request", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Description") - .IsRequired() - .HasColumnType("text"); - - b.Property("PresaleId") - .HasColumnType("integer"); - - b.Property("RequestType") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("PresaleId"); - - b.ToTable("Requests"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Storekeeper", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Email") - .IsRequired() - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Patronymic") - .HasColumnType("text"); - - b.Property("PhoneNumber") - .HasColumnType("bigint"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.HasKey("Id"); - - b.ToTable("Storekeepers"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Worker", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Email") - .IsRequired() - .HasColumnType("text"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Patronymic") - .HasColumnType("text"); - - b.Property("PhoneNumber") - .HasColumnType("bigint"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.HasKey("Id"); - - b.ToTable("Workers"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Car", b => - { - b.HasOne("CarCenterDatabaseImplement.Models.Feature", "Feature") - .WithMany("Cars") - .HasForeignKey("FeatureId"); - - b.HasOne("CarCenterDatabaseImplement.Models.Order", "Order") - .WithMany("Cars") - .HasForeignKey("OrderId"); - - b.HasOne("CarCenterDatabaseImplement.Models.Storekeeper", "Storekeeper") - .WithMany("Cars") - .HasForeignKey("StorekeeperId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Feature"); - - b.Navigation("Order"); - - b.Navigation("Storekeeper"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.CarBundling", b => - { - b.HasOne("CarCenterDatabaseImplement.Models.Bundling", "Bundling") - .WithMany("CarBundling") - .HasForeignKey("BundlingId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("CarCenterDatabaseImplement.Models.Car", "Car") - .WithMany("Bundlings") - .HasForeignKey("CarId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Bundling"); - - b.Navigation("Car"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Order", b => - { - b.HasOne("CarCenterDatabaseImplement.Models.Worker", "Worker") - .WithMany("Orders") - .HasForeignKey("WorkerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Worker"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.OrderPresale", b => - { - b.HasOne("CarCenterDatabaseImplement.Models.Order", "Order") - .WithMany("Presales") - .HasForeignKey("OrderId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("CarCenterDatabaseImplement.Models.Presale", "Presale") - .WithMany("OrderPresales") - .HasForeignKey("PresaleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Order"); - - b.Navigation("Presale"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.PresaleBundling", b => - { - b.HasOne("CarCenterDatabaseImplement.Models.Bundling", "Bundling") - .WithMany("PresaleBundling") - .HasForeignKey("BundlingId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("CarCenterDatabaseImplement.Models.Presale", "Presale") - .WithMany("Bundlings") - .HasForeignKey("PresaleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Bundling"); - - b.Navigation("Presale"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Request", b => - { - b.HasOne("CarCenterDatabaseImplement.Models.Presale", "Presale") - .WithMany("Requests") - .HasForeignKey("PresaleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Presale"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Bundling", b => - { - b.Navigation("CarBundling"); - - b.Navigation("PresaleBundling"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Car", b => - { - b.Navigation("Bundlings"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Feature", b => - { - b.Navigation("Cars"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Order", b => - { - b.Navigation("Cars"); - - b.Navigation("Presales"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Presale", b => - { - b.Navigation("Bundlings"); - - b.Navigation("OrderPresales"); - - b.Navigation("Requests"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Storekeeper", b => - { - b.Navigation("Cars"); - }); - - modelBuilder.Entity("CarCenterDatabaseImplement.Models.Worker", b => - { - b.Navigation("Orders"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/CarCenter/CarCenterDatabaseImplement/Migrations/20240529134131_FixTest.Designer.cs b/CarCenter/CarCenterDatabaseImplement/Migrations/20240529143434_preFin.Designer.cs similarity index 98% rename from CarCenter/CarCenterDatabaseImplement/Migrations/20240529134131_FixTest.Designer.cs rename to CarCenter/CarCenterDatabaseImplement/Migrations/20240529143434_preFin.Designer.cs index 8394098..c90b032 100644 --- a/CarCenter/CarCenterDatabaseImplement/Migrations/20240529134131_FixTest.Designer.cs +++ b/CarCenter/CarCenterDatabaseImplement/Migrations/20240529143434_preFin.Designer.cs @@ -12,8 +12,8 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace CarCenterDatabaseImplement.Migrations { [DbContext(typeof(CarCenterDatabase))] - [Migration("20240529134131_FixTest")] - partial class FixTest + [Migration("20240529143434_preFin")] + partial class preFin { protected override void BuildTargetModel(ModelBuilder modelBuilder) { @@ -32,6 +32,9 @@ namespace CarCenterDatabaseImplement.Migrations NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + b.Property("DateCreate") + .HasColumnType("timestamp without time zone"); + b.Property("EquipmentPackage") .HasColumnType("integer"); @@ -66,6 +69,9 @@ namespace CarCenterDatabaseImplement.Migrations b.Property("CarClass") .HasColumnType("integer"); + b.Property("DateCreate") + .HasColumnType("timestamp without time zone"); + b.Property("FeatureID") .HasColumnType("integer"); diff --git a/CarCenter/CarCenterDatabaseImplement/Migrations/20240529134131_FixTest.cs b/CarCenter/CarCenterDatabaseImplement/Migrations/20240529143434_preFin.cs similarity index 98% rename from CarCenter/CarCenterDatabaseImplement/Migrations/20240529134131_FixTest.cs rename to CarCenter/CarCenterDatabaseImplement/Migrations/20240529143434_preFin.cs index a5a27c0..42baa92 100644 --- a/CarCenter/CarCenterDatabaseImplement/Migrations/20240529134131_FixTest.cs +++ b/CarCenter/CarCenterDatabaseImplement/Migrations/20240529143434_preFin.cs @@ -6,11 +6,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace CarCenterDatabaseImplement.Migrations { -<<<<<<<< HEAD:CarCenter/CarCenterDatabaseImplement/Migrations/20240529134131_FixTest.cs - public partial class FixTest : Migration -======== - public partial class ababa4 : Migration ->>>>>>>> d89e50b210935777ba7b3d61880ea7525a5955b5:CarCenter/CarCenterDatabaseImplement/Migrations/20240529141913_ababa4.cs + public partial class preFin : Migration { protected override void Up(MigrationBuilder migrationBuilder) { diff --git a/CarCenter/CarCenterDatabaseImplement/Models/Order.cs b/CarCenter/CarCenterDatabaseImplement/Models/Order.cs index d3ba9db..1ac4db5 100644 --- a/CarCenter/CarCenterDatabaseImplement/Models/Order.cs +++ b/CarCenter/CarCenterDatabaseImplement/Models/Order.cs @@ -49,7 +49,7 @@ namespace CarCenterDatabaseImplement.Models { return null; } - return new Order() + var order = new Order() { Id = model.Id, WorkerId = model.WorkerId, @@ -60,9 +60,20 @@ namespace CarCenterDatabaseImplement.Models Sum = model.Sum, Presales = model.OrderPresales.Select(x => new OrderPresale { - Presale = context.Presales.First(y => y.Id == x.Key) + Presale = context.Presales.First(y => y.Id == x.Value.Id) }).ToList() }; + + foreach (var car in model.Cars) + { + var cartmp = context.Cars.FirstOrDefault(x => x.Id == car.Value.Id); + if (cartmp != null) + { + order.Cars.Add(cartmp); + } + } + + return order; } public void Update(OrderBindingModel? model) @@ -101,7 +112,8 @@ namespace CarCenterDatabaseImplement.Models BuyerFCS = BuyerFCS, PaymentDate = PaymentDate, Sum = Sum, - OrderPresales = OrderPresales - }; + OrderPresales = OrderPresales, + Cars = Cars.ToDictionary(x => x.Id, x => x as ICarModel), + }; } } diff --git a/CarCenter/CarCenterDatabaseImplement/Models/Presale.cs b/CarCenter/CarCenterDatabaseImplement/Models/Presale.cs index df5ed2d..3deefd2 100644 --- a/CarCenter/CarCenterDatabaseImplement/Models/Presale.cs +++ b/CarCenter/CarCenterDatabaseImplement/Models/Presale.cs @@ -49,7 +49,7 @@ namespace CarCenterDatabaseImplement.Models { return null; } - var presale = new Presale() + var presale = new Presale() { Id = model.Id, PresaleStatus = model.PresaleStatus, @@ -59,16 +59,16 @@ namespace CarCenterDatabaseImplement.Models WorkerId = model.WorkerId, Bundlings = model.PresaleBundlings.Select(x => new PresaleBundling { - Bundling = context.Bundlings.First(y => y.Id == x.Key) + Bundling = context.Bundlings.First(y => y.Id == x.Value.Id) }).ToList() }; - foreach (var requestId in model.RequestIds) + foreach (var request in model.Requests) { - var request = context.Requests.FirstOrDefault(x => x.Id == requestId); - if (request != null) + var requesttmp = context.Requests.FirstOrDefault(x => x.Id == request.Value.Id); + if (requesttmp != null) { - presale.Requests.Add(request); + presale.Requests.Add(requesttmp); } } @@ -78,25 +78,29 @@ namespace CarCenterDatabaseImplement.Models public void UpdateBundlings(CarCenterDatabase context, PresaleBindingModel model) { var presale = context.Presales.First(x => x.Id == Id); - foreach (var pc in model.PresaleBundlings) - { - context.PresaleBundlings.Add(new PresaleBundling - { - Presale = presale, - Bundling = context.Bundlings.First(x => x.Id == pc.Key), - }); - context.SaveChanges(); - } - _presaleBundlings = null; - } - public void AddRequests(CarCenterDatabase context, List requestIds) + foreach (var request in model.Requests) + { + var requesttmp = context.Requests.FirstOrDefault(x => x.Id == request.Value.Id); + if (requesttmp != null) + { + presale.Requests.Add(requesttmp); + } + } + } + + public void UpdateRequests(CarCenterDatabase context, PresaleBindingModel model) { var presale = context.Presales.First(x => x.Id == Id); - foreach (var requestId in requestIds) + foreach (var pc in model.PresaleBundlings) { - var request = context.Requests.First(x => x.Id == requestId); - presale.Requests.Add(request); + context.PresaleBundlings.Add(new PresaleBundling + { + Presale = presale, + Bundling = context.Bundlings.First(x => x.Id == pc.Value.Id), + }); + context.SaveChanges(); } + _presaleBundlings = null; } public void Update(PresaleBindingModel? model) { @@ -108,7 +112,8 @@ namespace CarCenterDatabaseImplement.Models Price = model.Price; DueTill = model.DueTill; PresaleStatus = model.PresaleStatus; - } + + } public PresaleViewModel GetViewModel => new() { @@ -118,6 +123,7 @@ namespace CarCenterDatabaseImplement.Models DueTill = DueTill, Price = Price, PresaleBundlings = PresaleBundlings, + Requests = Requests.ToDictionary(x => x.Id, x => x as IRequestModel), }; } } diff --git a/CarCenter/CarCenterStorekeeperApp/StorekeeperData.cs b/CarCenter/CarCenterStorekeeperApp/StorekeeperData.cs index 7cb5313..61ff343 100644 --- a/CarCenter/CarCenterStorekeeperApp/StorekeeperData.cs +++ b/CarCenter/CarCenterStorekeeperApp/StorekeeperData.cs @@ -5,7 +5,6 @@ using CarCenterContracts.StoragesContracts; using CarCenterContracts.SearchModels; using CarCenterBusinessLogic.MailWorker; using CarCenterBusinessLogic.OfficePackage; -using ImplementerApp; namespace StorekeeperApp { diff --git a/CarCenter/CarCenterWorkerApp/Controllers/HomeController.cs b/CarCenter/CarCenterWorkerApp/Controllers/HomeController.cs index 6219419..6d9f230 100644 --- a/CarCenter/CarCenterWorkerApp/Controllers/HomeController.cs +++ b/CarCenter/CarCenterWorkerApp/Controllers/HomeController.cs @@ -158,7 +158,7 @@ namespace CarCenterWorkerApp.Controllers return View(new PresaleViewModel()); } [HttpPost] - public IActionResult CreatePresale(PresaleBindingModel model,int[] bundlingIds) + public IActionResult CreatePresale(PresaleBindingModel model,int[] bundlingIds, int[] requestIds) { var bundlings = _data.GetBundlings(); for (int i = 0; i < bundlingIds.Length; i++) @@ -167,8 +167,12 @@ namespace CarCenterWorkerApp.Controllers model.PresaleBundlings.Add(i, bundling); } var requests = _data.GetRequests(UserWorker.user!.Id); - model.RequestIds = model.RequestIds.Where(id => requests.Any(r => r.Id == id)).ToList(); - + for (int i = 0; i < requestIds.Length; i++) + { + var request = requests!.FirstOrDefault(x => x.Id == requestIds[i])!; + model.Requests.Add(i, request); + } + model.WorkerId = UserWorker.user!.Id; bool changed = false; if (model.PresaleBundlings.Count > 0) { @@ -189,6 +193,76 @@ namespace CarCenterWorkerApp.Controllers return View(model); } } - + [HttpGet] + public IActionResult IndexOrder() + { + if (UserWorker.user != null) + { + var productions = _data.GetOrders(UserWorker.user.Id); + return View(productions); + } + return RedirectToAction("IndexNonReg"); + } + [HttpPost] + public IActionResult IndexOrder(int id) + { + _data.DeleteOrder(id); + return RedirectToAction("IndexOrder"); + } + [HttpGet] + public IActionResult CreateOrder(int id) + { + var cars = _data.GetCars(); + var presales = _data.GetPresales(UserWorker.user!.Id); + ViewBag.AllCars = cars; + ViewBag.AllPresales = presales; + if (id != 0) + { + var value = _data.GetOrder(id); + if (value != null) + return View(value); + } + return View(new OrderViewModel()); + } + [HttpPost] + public IActionResult CreateOrder(OrderBindingModel model, int[] carIds, int[] presaleIds, string Sum) + { + var cars = _data.GetCars(); + for (int i = 0; i < carIds.Length; i++) + { + var car = cars!.FirstOrDefault(x => x.Id == carIds[i])!; + model.Cars.Add(i, car); + } + var presales = _data.GetPresales(UserWorker.user!.Id); + for (int i = 0; i < presaleIds.Length; i++) + { + var presale = presales!.FirstOrDefault(x => x.Id == presaleIds[i])!; + model.OrderPresales.Add(i, presale); + } + model.WorkerId = UserWorker.user!.Id; + if(double.TryParse(Sum, out double val)) + { + model.Sum = val; + } + bool changed = false; + if (model.OrderPresales.Count > 0) + { + if (model.Id != 0) + { + changed = _data.UpdateOrder(model); + } + else + { + changed = _data.CreateOrder(model); + } + } + if (changed) + return RedirectToAction("IndexOrder"); + else + { + ViewBag.AllCars = cars; + return View(model); + } + } } } \ No newline at end of file diff --git a/CarCenter/CarCenterWorkerApp/Views/Home/CreateOrder.cshtml b/CarCenter/CarCenterWorkerApp/Views/Home/CreateOrder.cshtml index 54d4c18..f7360bf 100644 --- a/CarCenter/CarCenterWorkerApp/Views/Home/CreateOrder.cshtml +++ b/CarCenter/CarCenterWorkerApp/Views/Home/CreateOrder.cshtml @@ -6,6 +6,7 @@ @{ ViewData["Title"] = "CreateOrder"; ViewBag.Presales = Model.OrderPresales; + ViewBag.Cars = Model.Cars; }

Создание заказа

@@ -23,6 +24,21 @@
+ @if (Model.Id != 0) + { +
+
Статус оплаты:
+
+ + +
+
+ }
ФИО покупателя:
@@ -30,10 +46,6 @@
-
-
Сумма:
-
-
Предпродажные работы
@@ -67,10 +79,10 @@ @foreach (var presale in ViewBag.AllPresales) { - + } - +
Машины
@@ -105,14 +117,14 @@ @foreach (var car in ViewBag.AllCars) { - + } - +
Сумма:
-
+
@@ -125,16 +137,16 @@