From 256d37d5d3796adab1f31026778aa56a1a22dac9 Mon Sep 17 00:00:00 2001
From: abazov73 <92822431+abazov73@users.noreply.github.com>
Date: Thu, 16 Nov 2023 20:45:25 +0400
Subject: [PATCH] Lab03: finished backend of application
---
AbazovApp/AccountsApp/AccountsApp.csproj | 8 ++
.../20231116164358_InitialCreate.Designer.cs | 118 ++++++++++++++++++
.../20231116164358_InitialCreate.cs | 92 ++++++++++++++
.../AccountsDatabaseModelSnapshot.cs | 115 +++++++++++++++++
4 files changed, 333 insertions(+)
create mode 100644 AbazovApp/AccountsDataBaseImplement/Migrations/20231116164358_InitialCreate.Designer.cs
create mode 100644 AbazovApp/AccountsDataBaseImplement/Migrations/20231116164358_InitialCreate.cs
create mode 100644 AbazovApp/AccountsDataBaseImplement/Migrations/AccountsDatabaseModelSnapshot.cs
diff --git a/AbazovApp/AccountsApp/AccountsApp.csproj b/AbazovApp/AccountsApp/AccountsApp.csproj
index 45a05e7..cb91785 100644
--- a/AbazovApp/AccountsApp/AccountsApp.csproj
+++ b/AbazovApp/AccountsApp/AccountsApp.csproj
@@ -11,7 +11,15 @@
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
\ No newline at end of file
diff --git a/AbazovApp/AccountsDataBaseImplement/Migrations/20231116164358_InitialCreate.Designer.cs b/AbazovApp/AccountsDataBaseImplement/Migrations/20231116164358_InitialCreate.Designer.cs
new file mode 100644
index 0000000..712457c
--- /dev/null
+++ b/AbazovApp/AccountsDataBaseImplement/Migrations/20231116164358_InitialCreate.Designer.cs
@@ -0,0 +1,118 @@
+//
+using AccountsDataBaseImplement;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace AccountsDataBaseImplement.Migrations
+{
+ [DbContext(typeof(AccountsDatabase))]
+ [Migration("20231116164358_InitialCreate")]
+ partial class InitialCreate
+ {
+ ///
+ 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("AccountsDataBaseImplement.Models.Account", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Email")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Login")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Password")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Accounts");
+ });
+
+ modelBuilder.Entity("AccountsDataBaseImplement.Models.AccountInterest", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("AccountId")
+ .HasColumnType("integer");
+
+ b.Property("InterestId")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AccountId");
+
+ b.HasIndex("InterestId");
+
+ b.ToTable("AccountInterests");
+ });
+
+ modelBuilder.Entity("AccountsDataBaseImplement.Models.Interest", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Interests");
+ });
+
+ modelBuilder.Entity("AccountsDataBaseImplement.Models.AccountInterest", b =>
+ {
+ b.HasOne("AccountsDataBaseImplement.Models.Account", "Account")
+ .WithMany("Interests")
+ .HasForeignKey("AccountId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("AccountsDataBaseImplement.Models.Interest", "Interest")
+ .WithMany()
+ .HasForeignKey("InterestId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Account");
+
+ b.Navigation("Interest");
+ });
+
+ modelBuilder.Entity("AccountsDataBaseImplement.Models.Account", b =>
+ {
+ b.Navigation("Interests");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/AbazovApp/AccountsDataBaseImplement/Migrations/20231116164358_InitialCreate.cs b/AbazovApp/AccountsDataBaseImplement/Migrations/20231116164358_InitialCreate.cs
new file mode 100644
index 0000000..9aa66ba
--- /dev/null
+++ b/AbazovApp/AccountsDataBaseImplement/Migrations/20231116164358_InitialCreate.cs
@@ -0,0 +1,92 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace AccountsDataBaseImplement.Migrations
+{
+ ///
+ public partial class InitialCreate : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ name: "Accounts",
+ columns: table => new
+ {
+ Id = table.Column(type: "integer", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ Login = table.Column(type: "text", nullable: false),
+ Password = table.Column(type: "text", nullable: false),
+ Email = table.Column(type: "text", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_Accounts", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "Interests",
+ columns: table => new
+ {
+ Id = table.Column(type: "integer", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ Name = table.Column(type: "text", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_Interests", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "AccountInterests",
+ columns: table => new
+ {
+ Id = table.Column(type: "integer", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ AccountId = table.Column(type: "integer", nullable: false),
+ InterestId = table.Column(type: "integer", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_AccountInterests", x => x.Id);
+ table.ForeignKey(
+ name: "FK_AccountInterests_Accounts_AccountId",
+ column: x => x.AccountId,
+ principalTable: "Accounts",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_AccountInterests_Interests_InterestId",
+ column: x => x.InterestId,
+ principalTable: "Interests",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateIndex(
+ name: "IX_AccountInterests_AccountId",
+ table: "AccountInterests",
+ column: "AccountId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_AccountInterests_InterestId",
+ table: "AccountInterests",
+ column: "InterestId");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "AccountInterests");
+
+ migrationBuilder.DropTable(
+ name: "Accounts");
+
+ migrationBuilder.DropTable(
+ name: "Interests");
+ }
+ }
+}
diff --git a/AbazovApp/AccountsDataBaseImplement/Migrations/AccountsDatabaseModelSnapshot.cs b/AbazovApp/AccountsDataBaseImplement/Migrations/AccountsDatabaseModelSnapshot.cs
new file mode 100644
index 0000000..5c23ad4
--- /dev/null
+++ b/AbazovApp/AccountsDataBaseImplement/Migrations/AccountsDatabaseModelSnapshot.cs
@@ -0,0 +1,115 @@
+//
+using AccountsDataBaseImplement;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace AccountsDataBaseImplement.Migrations
+{
+ [DbContext(typeof(AccountsDatabase))]
+ partial class AccountsDatabaseModelSnapshot : ModelSnapshot
+ {
+ protected override void BuildModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.3")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("AccountsDataBaseImplement.Models.Account", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Email")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Login")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Password")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Accounts");
+ });
+
+ modelBuilder.Entity("AccountsDataBaseImplement.Models.AccountInterest", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("AccountId")
+ .HasColumnType("integer");
+
+ b.Property("InterestId")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AccountId");
+
+ b.HasIndex("InterestId");
+
+ b.ToTable("AccountInterests");
+ });
+
+ modelBuilder.Entity("AccountsDataBaseImplement.Models.Interest", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Interests");
+ });
+
+ modelBuilder.Entity("AccountsDataBaseImplement.Models.AccountInterest", b =>
+ {
+ b.HasOne("AccountsDataBaseImplement.Models.Account", "Account")
+ .WithMany("Interests")
+ .HasForeignKey("AccountId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("AccountsDataBaseImplement.Models.Interest", "Interest")
+ .WithMany()
+ .HasForeignKey("InterestId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Account");
+
+ b.Navigation("Interest");
+ });
+
+ modelBuilder.Entity("AccountsDataBaseImplement.Models.Account", b =>
+ {
+ b.Navigation("Interests");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}