diff --git a/Confectionery/ConfectioneryDatabaseImplement/Implements/OrderStorage.cs b/Confectionery/ConfectioneryDatabaseImplement/Implements/OrderStorage.cs
index 78c6bd2..9105c75 100644
--- a/Confectionery/ConfectioneryDatabaseImplement/Implements/OrderStorage.cs
+++ b/Confectionery/ConfectioneryDatabaseImplement/Implements/OrderStorage.cs
@@ -96,14 +96,14 @@ namespace ConfectioneryDatabaseImplement.Implements
public OrderViewModel? Insert(OrderBindingModel model)
{
- var newOrder = Order.Create(model);
+ using var context = new ConfectioneryDatabase();
+
+ var newOrder = Order.Create(context, model);
if (newOrder == null)
{
return null;
}
- using var context = new ConfectioneryDatabase();
-
context.Orders.Add(newOrder);
context.SaveChanges();
return context.Orders
diff --git a/Confectionery/ConfectioneryDatabaseImplement/Migrations/20230425054137_migr5.Designer.cs b/Confectionery/ConfectioneryDatabaseImplement/Migrations/20230425054137_migr5.Designer.cs
new file mode 100644
index 0000000..428fc6d
--- /dev/null
+++ b/Confectionery/ConfectioneryDatabaseImplement/Migrations/20230425054137_migr5.Designer.cs
@@ -0,0 +1,214 @@
+//
+using System;
+using ConfectioneryDatabaseImplement;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace ConfectioneryDatabaseImplement.Migrations
+{
+ [DbContext(typeof(ConfectioneryDatabase))]
+ [Migration("20230425054137_migr5")]
+ partial class migr5
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.3")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Client", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("ClientFIO")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Password")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Clients");
+ });
+
+ modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Component", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("ComponentName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Cost")
+ .HasColumnType("double precision");
+
+ b.HasKey("Id");
+
+ b.ToTable("Components");
+ });
+
+ modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Order", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("ClientId")
+ .HasColumnType("integer");
+
+ b.Property("Count")
+ .HasColumnType("integer");
+
+ b.Property("DateCreate")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateImplement")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("PastryId")
+ .HasColumnType("integer");
+
+ b.Property("Status")
+ .HasColumnType("integer");
+
+ b.Property("Sum")
+ .HasColumnType("double precision");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ClientId");
+
+ b.HasIndex("PastryId");
+
+ b.ToTable("Orders");
+ });
+
+ modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Pastry", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("PastryName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Price")
+ .HasColumnType("double precision");
+
+ b.HasKey("Id");
+
+ b.ToTable("Pastries");
+ });
+
+ modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.PastryComponent", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("ComponentId")
+ .HasColumnType("integer");
+
+ b.Property("Count")
+ .HasColumnType("integer");
+
+ b.Property("PastryId")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ComponentId");
+
+ b.HasIndex("PastryId");
+
+ b.ToTable("PastryComponents");
+ });
+
+ modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Order", b =>
+ {
+ b.HasOne("ConfectioneryDatabaseImplement.Models.Client", "Client")
+ .WithMany("Orders")
+ .HasForeignKey("ClientId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("ConfectioneryDatabaseImplement.Models.Pastry", "Pastry")
+ .WithMany("Orders")
+ .HasForeignKey("PastryId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Client");
+
+ b.Navigation("Pastry");
+ });
+
+ modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.PastryComponent", b =>
+ {
+ b.HasOne("ConfectioneryDatabaseImplement.Models.Component", "Component")
+ .WithMany("PastryComponents")
+ .HasForeignKey("ComponentId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("ConfectioneryDatabaseImplement.Models.Pastry", "Pastry")
+ .WithMany("Components")
+ .HasForeignKey("PastryId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Component");
+
+ b.Navigation("Pastry");
+ });
+
+ modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Client", b =>
+ {
+ b.Navigation("Orders");
+ });
+
+ modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Component", b =>
+ {
+ b.Navigation("PastryComponents");
+ });
+
+ modelBuilder.Entity("ConfectioneryDatabaseImplement.Models.Pastry", b =>
+ {
+ b.Navigation("Components");
+
+ b.Navigation("Orders");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/Confectionery/ConfectioneryDatabaseImplement/Migrations/20230425054137_migr5.cs b/Confectionery/ConfectioneryDatabaseImplement/Migrations/20230425054137_migr5.cs
new file mode 100644
index 0000000..3b3d7a9
--- /dev/null
+++ b/Confectionery/ConfectioneryDatabaseImplement/Migrations/20230425054137_migr5.cs
@@ -0,0 +1,22 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace ConfectioneryDatabaseImplement.Migrations
+{
+ ///
+ public partial class migr5 : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+
+ }
+ }
+}
diff --git a/Confectionery/ConfectioneryDatabaseImplement/Models/Order.cs b/Confectionery/ConfectioneryDatabaseImplement/Models/Order.cs
index 6602dfe..0b9421d 100644
--- a/Confectionery/ConfectioneryDatabaseImplement/Models/Order.cs
+++ b/Confectionery/ConfectioneryDatabaseImplement/Models/Order.cs
@@ -35,7 +35,7 @@ namespace ConfectioneryDatabaseImplement.Models
public int Id { get; set; }
- public static Order? Create(OrderBindingModel? model)
+ public static Order? Create(ConfectioneryDatabase context, OrderBindingModel? model)
{
if (model == null)
{
@@ -45,7 +45,9 @@ namespace ConfectioneryDatabaseImplement.Models
{
Id = model.Id,
PastryId = model.PastryId,
+ Pastry = context.Pastries.FirstOrDefault(x => x.Id == model.PastryId),
ClientId = model.ClientId,
+ Client = context.Clients.FirstOrDefault(x => x.Id == model.ClientId),
Count = model.Count,
Sum = model.Sum,
Status = model.Status,