diff --git a/.gitignore b/.gitignore
index ca1c7a3..9485fc0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -398,3 +398,4 @@ FodyWeavers.xsd
# JetBrains Rider
*.sln.iml
+/LawFirm/ImplementationExtensions
diff --git a/LawFirm/LawFirmDatabaseImplement/Migrations/20230424062106_ShopDocumentBindFix.Designer.cs b/LawFirm/LawFirmDatabaseImplement/Migrations/20230424062106_ShopDocumentBindFix.Designer.cs
new file mode 100644
index 0000000..c2f175f
--- /dev/null
+++ b/LawFirm/LawFirmDatabaseImplement/Migrations/20230424062106_ShopDocumentBindFix.Designer.cs
@@ -0,0 +1,250 @@
+//
+using System;
+using LawFirmDatabaseImplement;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace LawFirmDatabaseImplement.Migrations
+{
+ [DbContext(typeof(LawFirmDatabase))]
+ [Migration("20230424062106_ShopDocumentBindFix")]
+ partial class ShopDocumentBindFix
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.3")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("LawFirmDatabaseImplement.Models.Blank", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("BlankName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Cost")
+ .HasColumnType("float");
+
+ b.HasKey("Id");
+
+ b.ToTable("Blanks");
+ });
+
+ modelBuilder.Entity("LawFirmDatabaseImplement.Models.Document", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("DocumentName")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Price")
+ .HasColumnType("float");
+
+ b.HasKey("Id");
+
+ b.ToTable("Documents");
+ });
+
+ modelBuilder.Entity("LawFirmDatabaseImplement.Models.DocumentBlank", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("BlankId")
+ .HasColumnType("int");
+
+ b.Property("Count")
+ .HasColumnType("int");
+
+ b.Property("DocumentId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("BlankId");
+
+ b.HasIndex("DocumentId");
+
+ b.ToTable("DocumentBlanks");
+ });
+
+ modelBuilder.Entity("LawFirmDatabaseImplement.Models.Order", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("Count")
+ .HasColumnType("int");
+
+ b.Property("DateCreate")
+ .HasColumnType("datetime2");
+
+ b.Property("DateImplement")
+ .HasColumnType("datetime2");
+
+ b.Property("DocumentId")
+ .HasColumnType("int");
+
+ b.Property("Status")
+ .HasColumnType("int");
+
+ b.Property("Sum")
+ .HasColumnType("float");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DocumentId");
+
+ b.ToTable("Orders");
+ });
+
+ modelBuilder.Entity("LawFirmDatabaseImplement.Models.Shop", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("Adress")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("MaxCountDocuments")
+ .HasColumnType("int");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("OpeningDate")
+ .HasColumnType("datetime2");
+
+ b.HasKey("Id");
+
+ b.ToTable("Shops");
+ });
+
+ modelBuilder.Entity("LawFirmDatabaseImplement.Models.ShopDocument", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("Count")
+ .HasColumnType("int");
+
+ b.Property("DocumentId")
+ .HasColumnType("int");
+
+ b.Property("ShopId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DocumentId");
+
+ b.HasIndex("ShopId");
+
+ b.ToTable("ShopDocuments");
+ });
+
+ modelBuilder.Entity("LawFirmDatabaseImplement.Models.DocumentBlank", b =>
+ {
+ b.HasOne("LawFirmDatabaseImplement.Models.Blank", "Blank")
+ .WithMany("DocumentBlanks")
+ .HasForeignKey("BlankId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("LawFirmDatabaseImplement.Models.Document", "Document")
+ .WithMany("Blanks")
+ .HasForeignKey("DocumentId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Blank");
+
+ b.Navigation("Document");
+ });
+
+ modelBuilder.Entity("LawFirmDatabaseImplement.Models.Order", b =>
+ {
+ b.HasOne("LawFirmDatabaseImplement.Models.Document", "Document")
+ .WithMany("Orders")
+ .HasForeignKey("DocumentId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Document");
+ });
+
+ modelBuilder.Entity("LawFirmDatabaseImplement.Models.ShopDocument", b =>
+ {
+ b.HasOne("LawFirmDatabaseImplement.Models.Document", "Document")
+ .WithMany("Shops")
+ .HasForeignKey("DocumentId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("LawFirmDatabaseImplement.Models.Shop", "Shop")
+ .WithMany("Documents")
+ .HasForeignKey("ShopId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Document");
+
+ b.Navigation("Shop");
+ });
+
+ modelBuilder.Entity("LawFirmDatabaseImplement.Models.Blank", b =>
+ {
+ b.Navigation("DocumentBlanks");
+ });
+
+ modelBuilder.Entity("LawFirmDatabaseImplement.Models.Document", b =>
+ {
+ b.Navigation("Blanks");
+
+ b.Navigation("Orders");
+
+ b.Navigation("Shops");
+ });
+
+ modelBuilder.Entity("LawFirmDatabaseImplement.Models.Shop", b =>
+ {
+ b.Navigation("Documents");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/LawFirm/LawFirmDatabaseImplement/Migrations/20230424062106_ShopDocumentBindFix.cs b/LawFirm/LawFirmDatabaseImplement/Migrations/20230424062106_ShopDocumentBindFix.cs
new file mode 100644
index 0000000..8c6e611
--- /dev/null
+++ b/LawFirm/LawFirmDatabaseImplement/Migrations/20230424062106_ShopDocumentBindFix.cs
@@ -0,0 +1,22 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace LawFirmDatabaseImplement.Migrations
+{
+ ///
+ public partial class ShopDocumentBindFix : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+
+ }
+ }
+}
diff --git a/LawFirm/LawFirmDatabaseImplement/Migrations/LawFirmDatabaseModelSnapshot.cs b/LawFirm/LawFirmDatabaseImplement/Migrations/LawFirmDatabaseModelSnapshot.cs
index 5a9de02..02fb9a4 100644
--- a/LawFirm/LawFirmDatabaseImplement/Migrations/LawFirmDatabaseModelSnapshot.cs
+++ b/LawFirm/LawFirmDatabaseImplement/Migrations/LawFirmDatabaseModelSnapshot.cs
@@ -207,7 +207,7 @@ namespace LawFirmDatabaseImplement.Migrations
modelBuilder.Entity("LawFirmDatabaseImplement.Models.ShopDocument", b =>
{
b.HasOne("LawFirmDatabaseImplement.Models.Document", "Document")
- .WithMany()
+ .WithMany("Shops")
.HasForeignKey("DocumentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
@@ -233,6 +233,8 @@ namespace LawFirmDatabaseImplement.Migrations
b.Navigation("Blanks");
b.Navigation("Orders");
+
+ b.Navigation("Shops");
});
modelBuilder.Entity("LawFirmDatabaseImplement.Models.Shop", b =>
diff --git a/LawFirm/LawFirmDatabaseImplement/Models/Document.cs b/LawFirm/LawFirmDatabaseImplement/Models/Document.cs
index 1046285..685b88d 100644
--- a/LawFirm/LawFirmDatabaseImplement/Models/Document.cs
+++ b/LawFirm/LawFirmDatabaseImplement/Models/Document.cs
@@ -38,6 +38,8 @@ namespace LawFirmDatabaseImplement.Models
public virtual List Blanks { get; set; } = new();
[ForeignKey("DocumentId")]
public virtual List Orders { get; set; } = new();
+ [ForeignKey("DocumentId")]
+ public virtual List Shops { get; set; } = new();
public static Document? Create(LawFirmDatabase context, DocumentBindingModel model)