From f202ad7898ba56c06cd71d96564aefe3aac1867d Mon Sep 17 00:00:00 2001 From: Danil Markov Date: Sat, 20 May 2023 01:34:25 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BD=D0=B0=20=D1=8D=D1=82=D0=BE=D0=BC=20?= =?UTF-8?q?=D1=85=D0=B2=D0=B0=D1=82=D0=B8=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/DocumentStorage.cs | 16 +- .../Implements/EducationStatusStorage.cs | 12 +- .../20230516175336_fixRole.Designer.cs | 504 ----------------- .../Migrations/20230516175336_fixRole.cs | 394 ------------- ...30517093341_nullableEdStatusId.Designer.cs | 504 ----------------- .../20230517093341_nullableEdStatusId.cs | 22 - ...0517094848_nullableEdStatusId2.Designer.cs | 505 ----------------- .../20230517094848_nullableEdStatusId2.cs | 22 - ...0517095031_nullableEdStatusId3.Designer.cs | 502 ----------------- .../20230517095031_nullableEdStatusId3.cs | 59 -- ...0518002601_nullableEdStatusId4.Designer.cs | 497 ----------------- .../20230518002601_nullableEdStatusId4.cs | 222 -------- ...0518002727_nullableEdStatusId5.Designer.cs | 497 ----------------- .../20230518002727_nullableEdStatusId5.cs | 64 --- .../Migrations/20230518085846_fix.Designer.cs | 485 ---------------- .../Migrations/20230518085846_fix.cs | 62 --- .../20230518162032_fix2.Designer.cs | 488 ---------------- .../Migrations/20230518162032_fix2.cs | 30 - ...230519152931_fixCustomerStream.Designer.cs | 525 ------------------ .../20230519152931_fixCustomerStream.cs | 48 -- ...30519161234_fixCustomerStream2.Designer.cs | 525 ------------------ .../20230519161234_fixCustomerStream2.cs | 87 --- .../Controllers/HomeController.cs | 8 +- UniversityProvider/Views/Document/Bind.cshtml | 12 +- .../Views/Document/Create.cshtml | 10 +- .../Views/Document/Update.cshtml | 12 +- .../Views/EducationStatus/AddStudent.cshtml | 23 +- .../Views/EducationStatus/Create.cshtml | 8 +- .../Views/EducationStatus/Update.cshtml | 13 +- UniversityProvider/Views/Home/Diagram.cshtml | 15 +- .../Views/Home/DisciplineStudentList.cshtml | 26 +- .../Views/Home/Documents.cshtml | 10 +- .../Views/Home/EducationStatuses.cshtml | 10 +- .../Views/Home/GetReport.cshtml | 10 +- UniversityProvider/Views/Home/Login.cshtml | 63 ++- UniversityProvider/Views/Home/Profile.cshtml | 8 +- .../Views/Home/Registration.cshtml | 57 +- UniversityProvider/Views/Home/Students.cshtml | 8 +- .../Views/Shared/_Layout.cshtml | 79 +-- .../Views/Student/Create.cshtml | 8 +- .../Views/Student/Update.cshtml | 9 +- UniversityProvider/wwwroot/css/site.css | 3 + .../wwwroot/img/pngwing.com.png | Bin 0 -> 58686 bytes .../wwwroot/js/diagram/diagram.js | 47 +- .../wwwroot/js/document/document-create.js | 13 +- .../wwwroot/js/document/document-update.js | 13 +- .../educationstatus-add-student.js | 9 +- .../educationstatus/educationstatus-create.js | 8 +- .../educationstatus/educationstatus-update.js | 8 +- .../wwwroot/js/profile/profile-update.js | 41 -- .../wwwroot/js/profile/profile.js | 26 + .../wwwroot/js/report/reportpdf.js | 18 - UniversityProvider/wwwroot/js/site.js | 13 +- .../wwwroot/js/student/student-create.js | 50 +- .../wwwroot/js/student/student-update.js | 41 +- 55 files changed, 433 insertions(+), 6316 deletions(-) delete mode 100644 UniversityDataBaseImplemet/Migrations/20230516175336_fixRole.Designer.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230516175336_fixRole.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230517093341_nullableEdStatusId.Designer.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230517093341_nullableEdStatusId.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230517094848_nullableEdStatusId2.Designer.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230517094848_nullableEdStatusId2.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230517095031_nullableEdStatusId3.Designer.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230517095031_nullableEdStatusId3.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230518002601_nullableEdStatusId4.Designer.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230518002601_nullableEdStatusId4.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230518002727_nullableEdStatusId5.Designer.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230518002727_nullableEdStatusId5.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230518085846_fix.Designer.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230518085846_fix.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230518162032_fix2.Designer.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230518162032_fix2.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230519152931_fixCustomerStream.Designer.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230519152931_fixCustomerStream.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230519161234_fixCustomerStream2.Designer.cs delete mode 100644 UniversityDataBaseImplemet/Migrations/20230519161234_fixCustomerStream2.cs create mode 100644 UniversityProvider/wwwroot/img/pngwing.com.png delete mode 100644 UniversityProvider/wwwroot/js/profile/profile-update.js create mode 100644 UniversityProvider/wwwroot/js/profile/profile.js diff --git a/UniversityDataBaseImplemet/Implements/DocumentStorage.cs b/UniversityDataBaseImplemet/Implements/DocumentStorage.cs index 8326afe..d5491f4 100644 --- a/UniversityDataBaseImplemet/Implements/DocumentStorage.cs +++ b/UniversityDataBaseImplemet/Implements/DocumentStorage.cs @@ -37,7 +37,21 @@ namespace UniversityDataBaseImplemet.Implements public List GetFilteredList(DocumentSearchModel model) { using var context = new Database(); - if (model.Id.HasValue) + if (model.UserId.HasValue && model.PageNumber.HasValue && model.PageSize.HasValue) + { + return context.Documents + .Include(record => record.User) + .Include(record => record.Students) + .ThenInclude(record => record.Student) + .Include(record => record.EducationGroupDocument) + .ThenInclude(record => record.EducationGroup) + .Where(x => x.UserId == model.UserId) + .Skip(model.PageSize.Value * (model.PageNumber.Value - 1)) + .Take(model.PageSize.Value) + .Select(x => x.GetViewModel) + .ToList(); + } + else if (model.Id.HasValue) { return context.Documents .Include(record => record.User) diff --git a/UniversityDataBaseImplemet/Implements/EducationStatusStorage.cs b/UniversityDataBaseImplemet/Implements/EducationStatusStorage.cs index 4dcbcf8..2d011aa 100644 --- a/UniversityDataBaseImplemet/Implements/EducationStatusStorage.cs +++ b/UniversityDataBaseImplemet/Implements/EducationStatusStorage.cs @@ -31,7 +31,17 @@ namespace UniversityDataBaseImplemet.Implements public List GetFilteredList(EducationStatusSearchModel model) { using var context = new Database(); - if (model.Id.HasValue) + if (model.UserId.HasValue && model.PageNumber.HasValue && model.PageSize.HasValue) + { + return context.EducationStatuses + .Include(record => record.User) + .Where(x => x.UserId == model.UserId) + .Skip(model.PageSize.Value * (model.PageNumber.Value - 1)) + .Take(model.PageSize.Value) + .Select(x => x.GetViewModel) + .ToList(); + } + else if (model.Id.HasValue) { return context.EducationStatuses .Include(record => record.User) diff --git a/UniversityDataBaseImplemet/Migrations/20230516175336_fixRole.Designer.cs b/UniversityDataBaseImplemet/Migrations/20230516175336_fixRole.Designer.cs deleted file mode 100644 index 00ad923..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230516175336_fixRole.Designer.cs +++ /dev/null @@ -1,504 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; -using UniversityDataBaseImplemet; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - [DbContext(typeof(Database))] - [Migration("20230516175336_fixRole")] - partial class fixRole - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "7.0.5") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Hours") - .HasColumnType("integer"); - - b.Property("MarkType") - .HasColumnType("boolean"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("UserId"); - - b.ToTable("Discipline"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Date") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Documents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("NumberOfStudent") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationGroups"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("DocumentId"); - - b.HasIndex("EducationGroupId"); - - b.ToTable("EducationGroupsDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationGroupId"); - - b.HasIndex("StreamId"); - - b.ToTable("EducationGroupsStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationStatuses"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Course") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Streams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DateOfBirth") - .HasColumnType("timestamp with time zone"); - - b.Property("EducationStatusId") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StudentCard") - .HasColumnType("integer"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationStatusId"); - - b.HasIndex("UserId"); - - b.ToTable("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.Property("StudentId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("DocumentId"); - - b.HasIndex("StudentId"); - - b.ToTable("StudentDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("StudentId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("StudentId"); - - b.ToTable("StudentStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Login") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Role") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany() - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("EducationGroupDocument") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupDocument") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("EducationGroup"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupStream") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("EducationGroupStream") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationGroup"); - - b.Navigation("Stream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationStatus", "EducationStatus") - .WithMany("Students") - .HasForeignKey("EducationStatusId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationStatus"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("Students") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("DocumentStudents") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("StreamStudents") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("StudentStream") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("EducationGroupStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Navigation("EducationGroupStream"); - - b.Navigation("StreamStudents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Navigation("DocumentStudents"); - - b.Navigation("StudentStream"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230516175336_fixRole.cs b/UniversityDataBaseImplemet/Migrations/20230516175336_fixRole.cs deleted file mode 100644 index 52d69f2..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230516175336_fixRole.cs +++ /dev/null @@ -1,394 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - /// - public partial class fixRole : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "User", - 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), - Role = table.Column(type: "integer", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_User", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Documents", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Name = table.Column(type: "text", nullable: false), - Date = table.Column(type: "timestamp with time zone", nullable: false), - UserId = table.Column(type: "integer", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Documents", x => x.Id); - table.ForeignKey( - name: "FK_Documents_User_UserId", - column: x => x.UserId, - principalTable: "User", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "EducationGroups", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - NumberOfStudent = table.Column(type: "integer", nullable: false), - Name = table.Column(type: "text", nullable: false), - UserId = table.Column(type: "integer", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_EducationGroups", x => x.Id); - table.ForeignKey( - name: "FK_EducationGroups_User_UserId", - column: x => x.UserId, - principalTable: "User", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "EducationStatuses", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Name = table.Column(type: "text", nullable: false), - UserId = table.Column(type: "integer", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_EducationStatuses", x => x.Id); - table.ForeignKey( - name: "FK_EducationStatuses_User_UserId", - column: x => x.UserId, - principalTable: "User", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "Streams", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Name = table.Column(type: "text", nullable: false), - Course = table.Column(type: "integer", nullable: false), - UserId = table.Column(type: "integer", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Streams", x => x.Id); - table.ForeignKey( - name: "FK_Streams_User_UserId", - column: x => x.UserId, - principalTable: "User", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "EducationGroupsDocuments", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - EducationGroupId = table.Column(type: "integer", nullable: false), - DocumentId = table.Column(type: "integer", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_EducationGroupsDocuments", x => x.Id); - table.ForeignKey( - name: "FK_EducationGroupsDocuments_Documents_DocumentId", - column: x => x.DocumentId, - principalTable: "Documents", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_EducationGroupsDocuments_EducationGroups_EducationGroupId", - column: x => x.EducationGroupId, - principalTable: "EducationGroups", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "Students", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Name = table.Column(type: "text", nullable: false), - Surname = table.Column(type: "text", nullable: false), - DateOfBirth = table.Column(type: "timestamp with time zone", nullable: false), - StudentCard = table.Column(type: "integer", nullable: false), - EducationStatusId = table.Column(type: "integer", nullable: false), - UserId = table.Column(type: "integer", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Students", x => x.Id); - table.ForeignKey( - name: "FK_Students_EducationStatuses_EducationStatusId", - column: x => x.EducationStatusId, - principalTable: "EducationStatuses", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_Students_User_UserId", - column: x => x.UserId, - principalTable: "User", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "Discipline", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Name = table.Column(type: "text", nullable: false), - UserId = table.Column(type: "integer", nullable: false), - StreamId = table.Column(type: "integer", nullable: false), - Hours = table.Column(type: "integer", nullable: false), - MarkType = table.Column(type: "boolean", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Discipline", x => x.Id); - table.ForeignKey( - name: "FK_Discipline_Streams_StreamId", - column: x => x.StreamId, - principalTable: "Streams", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_Discipline_User_UserId", - column: x => x.UserId, - principalTable: "User", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "EducationGroupsStreams", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - EducationGroupId = table.Column(type: "integer", nullable: false), - StreamId = table.Column(type: "integer", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_EducationGroupsStreams", x => x.Id); - table.ForeignKey( - name: "FK_EducationGroupsStreams_EducationGroups_EducationGroupId", - column: x => x.EducationGroupId, - principalTable: "EducationGroups", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_EducationGroupsStreams_Streams_StreamId", - column: x => x.StreamId, - principalTable: "Streams", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "StudentDocuments", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - StudentId = table.Column(type: "integer", nullable: false), - DocumentId = table.Column(type: "integer", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_StudentDocuments", x => x.Id); - table.ForeignKey( - name: "FK_StudentDocuments_Documents_DocumentId", - column: x => x.DocumentId, - principalTable: "Documents", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_StudentDocuments_Students_StudentId", - column: x => x.StudentId, - principalTable: "Students", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "StudentStreams", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - StudentId = table.Column(type: "integer", nullable: false), - StreamId = table.Column(type: "integer", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_StudentStreams", x => x.Id); - table.ForeignKey( - name: "FK_StudentStreams_Streams_StreamId", - column: x => x.StreamId, - principalTable: "Streams", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_StudentStreams_Students_StudentId", - column: x => x.StudentId, - principalTable: "Students", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_Discipline_StreamId", - table: "Discipline", - column: "StreamId"); - - migrationBuilder.CreateIndex( - name: "IX_Discipline_UserId", - table: "Discipline", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_Documents_UserId", - table: "Documents", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_EducationGroups_UserId", - table: "EducationGroups", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_EducationGroupsDocuments_DocumentId", - table: "EducationGroupsDocuments", - column: "DocumentId"); - - migrationBuilder.CreateIndex( - name: "IX_EducationGroupsDocuments_EducationGroupId", - table: "EducationGroupsDocuments", - column: "EducationGroupId"); - - migrationBuilder.CreateIndex( - name: "IX_EducationGroupsStreams_EducationGroupId", - table: "EducationGroupsStreams", - column: "EducationGroupId"); - - migrationBuilder.CreateIndex( - name: "IX_EducationGroupsStreams_StreamId", - table: "EducationGroupsStreams", - column: "StreamId"); - - migrationBuilder.CreateIndex( - name: "IX_EducationStatuses_UserId", - table: "EducationStatuses", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_Streams_UserId", - table: "Streams", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_StudentDocuments_DocumentId", - table: "StudentDocuments", - column: "DocumentId"); - - migrationBuilder.CreateIndex( - name: "IX_StudentDocuments_StudentId", - table: "StudentDocuments", - column: "StudentId"); - - migrationBuilder.CreateIndex( - name: "IX_Students_EducationStatusId", - table: "Students", - column: "EducationStatusId"); - - migrationBuilder.CreateIndex( - name: "IX_Students_UserId", - table: "Students", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_StudentStreams_StreamId", - table: "StudentStreams", - column: "StreamId"); - - migrationBuilder.CreateIndex( - name: "IX_StudentStreams_StudentId", - table: "StudentStreams", - column: "StudentId"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "Discipline"); - - migrationBuilder.DropTable( - name: "EducationGroupsDocuments"); - - migrationBuilder.DropTable( - name: "EducationGroupsStreams"); - - migrationBuilder.DropTable( - name: "StudentDocuments"); - - migrationBuilder.DropTable( - name: "StudentStreams"); - - migrationBuilder.DropTable( - name: "EducationGroups"); - - migrationBuilder.DropTable( - name: "Documents"); - - migrationBuilder.DropTable( - name: "Streams"); - - migrationBuilder.DropTable( - name: "Students"); - - migrationBuilder.DropTable( - name: "EducationStatuses"); - - migrationBuilder.DropTable( - name: "User"); - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230517093341_nullableEdStatusId.Designer.cs b/UniversityDataBaseImplemet/Migrations/20230517093341_nullableEdStatusId.Designer.cs deleted file mode 100644 index 0f02645..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230517093341_nullableEdStatusId.Designer.cs +++ /dev/null @@ -1,504 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; -using UniversityDataBaseImplemet; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - [DbContext(typeof(Database))] - [Migration("20230517093341_nullableEdStatusId")] - partial class nullableEdStatusId - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "7.0.5") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Hours") - .HasColumnType("integer"); - - b.Property("MarkType") - .HasColumnType("boolean"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("UserId"); - - b.ToTable("Discipline"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Date") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Documents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("NumberOfStudent") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationGroups"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("DocumentId"); - - b.HasIndex("EducationGroupId"); - - b.ToTable("EducationGroupsDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationGroupId"); - - b.HasIndex("StreamId"); - - b.ToTable("EducationGroupsStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationStatuses"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Course") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Streams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DateOfBirth") - .HasColumnType("timestamp with time zone"); - - b.Property("EducationStatusId") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StudentCard") - .HasColumnType("integer"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationStatusId"); - - b.HasIndex("UserId"); - - b.ToTable("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.Property("StudentId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("DocumentId"); - - b.HasIndex("StudentId"); - - b.ToTable("StudentDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("StudentId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("StudentId"); - - b.ToTable("StudentStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Login") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Role") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany() - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("EducationGroupDocument") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupDocument") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("EducationGroup"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupStream") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("EducationGroupStream") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationGroup"); - - b.Navigation("Stream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationStatus", "EducationStatus") - .WithMany("Students") - .HasForeignKey("EducationStatusId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationStatus"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("Students") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("DocumentStudents") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("StreamStudents") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("StudentStream") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("EducationGroupStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Navigation("EducationGroupStream"); - - b.Navigation("StreamStudents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Navigation("DocumentStudents"); - - b.Navigation("StudentStream"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230517093341_nullableEdStatusId.cs b/UniversityDataBaseImplemet/Migrations/20230517093341_nullableEdStatusId.cs deleted file mode 100644 index df3deff..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230517093341_nullableEdStatusId.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - /// - public partial class nullableEdStatusId : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230517094848_nullableEdStatusId2.Designer.cs b/UniversityDataBaseImplemet/Migrations/20230517094848_nullableEdStatusId2.Designer.cs deleted file mode 100644 index 0efbc8b..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230517094848_nullableEdStatusId2.Designer.cs +++ /dev/null @@ -1,505 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; -using UniversityDataBaseImplemet; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - [DbContext(typeof(Database))] - [Migration("20230517094848_nullableEdStatusId2")] - partial class nullableEdStatusId2 - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "7.0.5") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Hours") - .HasColumnType("integer"); - - b.Property("MarkType") - .HasColumnType("boolean"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("UserId"); - - b.ToTable("Discipline"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Date") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Documents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("NumberOfStudent") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationGroups"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("DocumentId"); - - b.HasIndex("EducationGroupId"); - - b.ToTable("EducationGroupsDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationGroupId"); - - b.HasIndex("StreamId"); - - b.ToTable("EducationGroupsStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationStatuses"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Course") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Streams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DateOfBirth") - .HasColumnType("timestamp with time zone"); - - b.Property("EducationStatusId") - .IsRequired() - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StudentCard") - .HasColumnType("integer"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationStatusId"); - - b.HasIndex("UserId"); - - b.ToTable("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.Property("StudentId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("DocumentId"); - - b.HasIndex("StudentId"); - - b.ToTable("StudentDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("StudentId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("StudentId"); - - b.ToTable("StudentStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Login") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Role") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany() - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("EducationGroupDocument") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupDocument") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("EducationGroup"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupStream") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("EducationGroupStream") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationGroup"); - - b.Navigation("Stream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationStatus", "EducationStatus") - .WithMany("Students") - .HasForeignKey("EducationStatusId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationStatus"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("Students") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("DocumentStudents") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("StreamStudents") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("StudentStream") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("EducationGroupStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Navigation("EducationGroupStream"); - - b.Navigation("StreamStudents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Navigation("DocumentStudents"); - - b.Navigation("StudentStream"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230517094848_nullableEdStatusId2.cs b/UniversityDataBaseImplemet/Migrations/20230517094848_nullableEdStatusId2.cs deleted file mode 100644 index cab117c..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230517094848_nullableEdStatusId2.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - /// - public partial class nullableEdStatusId2 : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230517095031_nullableEdStatusId3.Designer.cs b/UniversityDataBaseImplemet/Migrations/20230517095031_nullableEdStatusId3.Designer.cs deleted file mode 100644 index c293972..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230517095031_nullableEdStatusId3.Designer.cs +++ /dev/null @@ -1,502 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; -using UniversityDataBaseImplemet; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - [DbContext(typeof(Database))] - [Migration("20230517095031_nullableEdStatusId3")] - partial class nullableEdStatusId3 - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "7.0.5") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Hours") - .HasColumnType("integer"); - - b.Property("MarkType") - .HasColumnType("boolean"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("UserId"); - - b.ToTable("Discipline"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Date") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Documents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("NumberOfStudent") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationGroups"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("DocumentId"); - - b.HasIndex("EducationGroupId"); - - b.ToTable("EducationGroupsDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationGroupId"); - - b.HasIndex("StreamId"); - - b.ToTable("EducationGroupsStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationStatuses"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Course") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Streams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DateOfBirth") - .HasColumnType("timestamp with time zone"); - - b.Property("EducationStatusId") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StudentCard") - .HasColumnType("integer"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationStatusId"); - - b.HasIndex("UserId"); - - b.ToTable("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.Property("StudentId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("DocumentId"); - - b.HasIndex("StudentId"); - - b.ToTable("StudentDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("StudentId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("StudentId"); - - b.ToTable("StudentStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Login") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Role") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany() - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("EducationGroupDocument") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupDocument") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("EducationGroup"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupStream") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("EducationGroupStream") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationGroup"); - - b.Navigation("Stream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationStatus", "EducationStatus") - .WithMany("Students") - .HasForeignKey("EducationStatusId"); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationStatus"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("Students") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("DocumentStudents") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("StreamStudents") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("StudentStream") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("EducationGroupStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Navigation("EducationGroupStream"); - - b.Navigation("StreamStudents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Navigation("DocumentStudents"); - - b.Navigation("StudentStream"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230517095031_nullableEdStatusId3.cs b/UniversityDataBaseImplemet/Migrations/20230517095031_nullableEdStatusId3.cs deleted file mode 100644 index bbd95b9..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230517095031_nullableEdStatusId3.cs +++ /dev/null @@ -1,59 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - /// - public partial class nullableEdStatusId3 : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Students_EducationStatuses_EducationStatusId", - table: "Students"); - - migrationBuilder.AlterColumn( - name: "EducationStatusId", - table: "Students", - type: "integer", - nullable: true, - oldClrType: typeof(int), - oldType: "integer"); - - migrationBuilder.AddForeignKey( - name: "FK_Students_EducationStatuses_EducationStatusId", - table: "Students", - column: "EducationStatusId", - principalTable: "EducationStatuses", - principalColumn: "Id"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Students_EducationStatuses_EducationStatusId", - table: "Students"); - - migrationBuilder.AlterColumn( - name: "EducationStatusId", - table: "Students", - type: "integer", - nullable: false, - defaultValue: 0, - oldClrType: typeof(int), - oldType: "integer", - oldNullable: true); - - migrationBuilder.AddForeignKey( - name: "FK_Students_EducationStatuses_EducationStatusId", - table: "Students", - column: "EducationStatusId", - principalTable: "EducationStatuses", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230518002601_nullableEdStatusId4.Designer.cs b/UniversityDataBaseImplemet/Migrations/20230518002601_nullableEdStatusId4.Designer.cs deleted file mode 100644 index 6a20f8f..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230518002601_nullableEdStatusId4.Designer.cs +++ /dev/null @@ -1,497 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; -using UniversityDataBaseImplemet; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - [DbContext(typeof(Database))] - [Migration("20230518002601_nullableEdStatusId4")] - partial class nullableEdStatusId4 - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "7.0.5") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Hours") - .HasColumnType("integer"); - - b.Property("MarkType") - .HasColumnType("boolean"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("UserId"); - - b.ToTable("Discipline"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Date") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Documents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("NumberOfStudent") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationGroups"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.Property("Id") - .HasColumnType("integer"); - - b.HasKey("EducationGroupId", "DocumentId"); - - b.HasIndex("DocumentId"); - - b.ToTable("EducationGroupsDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("Id") - .HasColumnType("integer"); - - b.HasKey("EducationGroupId", "StreamId"); - - b.HasIndex("StreamId"); - - b.ToTable("EducationGroupsStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationStatuses"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Course") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Streams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DateOfBirth") - .HasColumnType("timestamp with time zone"); - - b.Property("EducationStatusId") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StudentCard") - .HasColumnType("integer"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationStatusId"); - - b.HasIndex("UserId"); - - b.ToTable("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.Property("StudentId") - .HasColumnType("integer"); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.Property("Id") - .HasColumnType("integer"); - - b.HasKey("StudentId", "DocumentId"); - - b.HasIndex("DocumentId"); - - b.ToTable("StudentDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.Property("StudentId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("Id") - .HasColumnType("integer"); - - b.HasKey("StudentId", "StreamId"); - - b.HasIndex("StreamId"); - - b.ToTable("StudentStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Login") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Role") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany() - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Disciplines") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Documents") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("EducationGroups") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("EducationGroupDocument") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupDocument") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("EducationGroup"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupStream") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("EducationGroupStream") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationGroup"); - - b.Navigation("Stream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("EducationStatuses") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Streams") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationStatus", "EducationStatus") - .WithMany("Students") - .HasForeignKey("EducationStatusId"); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Students") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationStatus"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("Students") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("DocumentStudents") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("StreamStudents") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("StudentStream") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("EducationGroupStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Navigation("EducationGroupStream"); - - b.Navigation("StreamStudents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Navigation("DocumentStudents"); - - b.Navigation("StudentStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Navigation("Disciplines"); - - b.Navigation("Documents"); - - b.Navigation("EducationGroups"); - - b.Navigation("EducationStatuses"); - - b.Navigation("Streams"); - - b.Navigation("Students"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230518002601_nullableEdStatusId4.cs b/UniversityDataBaseImplemet/Migrations/20230518002601_nullableEdStatusId4.cs deleted file mode 100644 index d149ece..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230518002601_nullableEdStatusId4.cs +++ /dev/null @@ -1,222 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - /// - public partial class nullableEdStatusId4 : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Documents_User_UserId", - table: "Documents"); - - migrationBuilder.DropPrimaryKey( - name: "PK_StudentStreams", - table: "StudentStreams"); - - migrationBuilder.DropIndex( - name: "IX_StudentStreams_StudentId", - table: "StudentStreams"); - - migrationBuilder.DropPrimaryKey( - name: "PK_StudentDocuments", - table: "StudentDocuments"); - - migrationBuilder.DropIndex( - name: "IX_StudentDocuments_StudentId", - table: "StudentDocuments"); - - migrationBuilder.DropPrimaryKey( - name: "PK_EducationGroupsStreams", - table: "EducationGroupsStreams"); - - migrationBuilder.DropIndex( - name: "IX_EducationGroupsStreams_EducationGroupId", - table: "EducationGroupsStreams"); - - migrationBuilder.DropPrimaryKey( - name: "PK_EducationGroupsDocuments", - table: "EducationGroupsDocuments"); - - migrationBuilder.DropIndex( - name: "IX_EducationGroupsDocuments_EducationGroupId", - table: "EducationGroupsDocuments"); - - migrationBuilder.AlterColumn( - name: "Id", - table: "StudentStreams", - type: "integer", - nullable: false, - oldClrType: typeof(int), - oldType: "integer") - .OldAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); - - migrationBuilder.AlterColumn( - name: "Id", - table: "StudentDocuments", - type: "integer", - nullable: false, - oldClrType: typeof(int), - oldType: "integer") - .OldAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); - - migrationBuilder.AlterColumn( - name: "Id", - table: "EducationGroupsStreams", - type: "integer", - nullable: false, - oldClrType: typeof(int), - oldType: "integer") - .OldAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); - - migrationBuilder.AlterColumn( - name: "Id", - table: "EducationGroupsDocuments", - type: "integer", - nullable: false, - oldClrType: typeof(int), - oldType: "integer") - .OldAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); - - migrationBuilder.AddPrimaryKey( - name: "PK_StudentStreams", - table: "StudentStreams", - columns: new[] { "StudentId", "StreamId" }); - - migrationBuilder.AddPrimaryKey( - name: "PK_StudentDocuments", - table: "StudentDocuments", - columns: new[] { "StudentId", "DocumentId" }); - - migrationBuilder.AddPrimaryKey( - name: "PK_EducationGroupsStreams", - table: "EducationGroupsStreams", - columns: new[] { "EducationGroupId", "StreamId" }); - - migrationBuilder.AddPrimaryKey( - name: "PK_EducationGroupsDocuments", - table: "EducationGroupsDocuments", - columns: new[] { "EducationGroupId", "DocumentId" }); - - migrationBuilder.AddForeignKey( - name: "FK_Documents_User_UserId", - table: "Documents", - column: "UserId", - principalTable: "User", - principalColumn: "Id"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Documents_User_UserId", - table: "Documents"); - - migrationBuilder.DropPrimaryKey( - name: "PK_StudentStreams", - table: "StudentStreams"); - - migrationBuilder.DropPrimaryKey( - name: "PK_StudentDocuments", - table: "StudentDocuments"); - - migrationBuilder.DropPrimaryKey( - name: "PK_EducationGroupsStreams", - table: "EducationGroupsStreams"); - - migrationBuilder.DropPrimaryKey( - name: "PK_EducationGroupsDocuments", - table: "EducationGroupsDocuments"); - - migrationBuilder.AlterColumn( - name: "Id", - table: "StudentStreams", - type: "integer", - nullable: false, - oldClrType: typeof(int), - oldType: "integer") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); - - migrationBuilder.AlterColumn( - name: "Id", - table: "StudentDocuments", - type: "integer", - nullable: false, - oldClrType: typeof(int), - oldType: "integer") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); - - migrationBuilder.AlterColumn( - name: "Id", - table: "EducationGroupsStreams", - type: "integer", - nullable: false, - oldClrType: typeof(int), - oldType: "integer") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); - - migrationBuilder.AlterColumn( - name: "Id", - table: "EducationGroupsDocuments", - type: "integer", - nullable: false, - oldClrType: typeof(int), - oldType: "integer") - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); - - migrationBuilder.AddPrimaryKey( - name: "PK_StudentStreams", - table: "StudentStreams", - column: "Id"); - - migrationBuilder.AddPrimaryKey( - name: "PK_StudentDocuments", - table: "StudentDocuments", - column: "Id"); - - migrationBuilder.AddPrimaryKey( - name: "PK_EducationGroupsStreams", - table: "EducationGroupsStreams", - column: "Id"); - - migrationBuilder.AddPrimaryKey( - name: "PK_EducationGroupsDocuments", - table: "EducationGroupsDocuments", - column: "Id"); - - migrationBuilder.CreateIndex( - name: "IX_StudentStreams_StudentId", - table: "StudentStreams", - column: "StudentId"); - - migrationBuilder.CreateIndex( - name: "IX_StudentDocuments_StudentId", - table: "StudentDocuments", - column: "StudentId"); - - migrationBuilder.CreateIndex( - name: "IX_EducationGroupsStreams_EducationGroupId", - table: "EducationGroupsStreams", - column: "EducationGroupId"); - - migrationBuilder.CreateIndex( - name: "IX_EducationGroupsDocuments_EducationGroupId", - table: "EducationGroupsDocuments", - column: "EducationGroupId"); - - migrationBuilder.AddForeignKey( - name: "FK_Documents_User_UserId", - table: "Documents", - column: "UserId", - principalTable: "User", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230518002727_nullableEdStatusId5.Designer.cs b/UniversityDataBaseImplemet/Migrations/20230518002727_nullableEdStatusId5.Designer.cs deleted file mode 100644 index 77220e7..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230518002727_nullableEdStatusId5.Designer.cs +++ /dev/null @@ -1,497 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; -using UniversityDataBaseImplemet; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - [DbContext(typeof(Database))] - [Migration("20230518002727_nullableEdStatusId5")] - partial class nullableEdStatusId5 - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "7.0.5") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Hours") - .HasColumnType("integer"); - - b.Property("MarkType") - .HasColumnType("boolean"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("UserId"); - - b.ToTable("Discipline"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Date") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Documents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("NumberOfStudent") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationGroups"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.Property("Id") - .HasColumnType("integer"); - - b.HasKey("EducationGroupId", "DocumentId"); - - b.HasIndex("DocumentId"); - - b.ToTable("EducationGroupsDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("Id") - .HasColumnType("integer"); - - b.HasKey("EducationGroupId", "StreamId"); - - b.HasIndex("StreamId"); - - b.ToTable("EducationGroupsStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationStatuses"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Course") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Streams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DateOfBirth") - .HasColumnType("timestamp with time zone"); - - b.Property("EducationStatusId") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StudentCard") - .HasColumnType("integer"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationStatusId"); - - b.HasIndex("UserId"); - - b.ToTable("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.Property("StudentId") - .HasColumnType("integer"); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.Property("Id") - .HasColumnType("integer"); - - b.HasKey("StudentId", "DocumentId"); - - b.HasIndex("DocumentId"); - - b.ToTable("StudentDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.Property("StudentId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("Id") - .HasColumnType("integer"); - - b.HasKey("StudentId", "StreamId"); - - b.HasIndex("StreamId"); - - b.ToTable("StudentStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Login") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Role") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany() - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Disciplines") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Documents") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("EducationGroups") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("EducationGroupDocument") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupDocument") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("EducationGroup"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupStream") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("EducationGroupStream") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationGroup"); - - b.Navigation("Stream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("EducationStatuses") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Streams") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationStatus", "EducationStatus") - .WithMany("Students") - .HasForeignKey("EducationStatusId"); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Students") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("EducationStatus"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("Students") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("DocumentStudents") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("StreamStudents") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("StudentStream") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("EducationGroupStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Navigation("EducationGroupStream"); - - b.Navigation("StreamStudents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Navigation("DocumentStudents"); - - b.Navigation("StudentStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Navigation("Disciplines"); - - b.Navigation("Documents"); - - b.Navigation("EducationGroups"); - - b.Navigation("EducationStatuses"); - - b.Navigation("Streams"); - - b.Navigation("Students"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230518002727_nullableEdStatusId5.cs b/UniversityDataBaseImplemet/Migrations/20230518002727_nullableEdStatusId5.cs deleted file mode 100644 index c1a0dd2..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230518002727_nullableEdStatusId5.cs +++ /dev/null @@ -1,64 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - /// - public partial class nullableEdStatusId5 : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_EducationStatuses_User_UserId", - table: "EducationStatuses"); - - migrationBuilder.DropForeignKey( - name: "FK_Students_User_UserId", - table: "Students"); - - migrationBuilder.AddForeignKey( - name: "FK_EducationStatuses_User_UserId", - table: "EducationStatuses", - column: "UserId", - principalTable: "User", - principalColumn: "Id"); - - migrationBuilder.AddForeignKey( - name: "FK_Students_User_UserId", - table: "Students", - column: "UserId", - principalTable: "User", - principalColumn: "Id"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_EducationStatuses_User_UserId", - table: "EducationStatuses"); - - migrationBuilder.DropForeignKey( - name: "FK_Students_User_UserId", - table: "Students"); - - migrationBuilder.AddForeignKey( - name: "FK_EducationStatuses_User_UserId", - table: "EducationStatuses", - column: "UserId", - principalTable: "User", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - - migrationBuilder.AddForeignKey( - name: "FK_Students_User_UserId", - table: "Students", - column: "UserId", - principalTable: "User", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230518085846_fix.Designer.cs b/UniversityDataBaseImplemet/Migrations/20230518085846_fix.Designer.cs deleted file mode 100644 index 7ac9d24..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230518085846_fix.Designer.cs +++ /dev/null @@ -1,485 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; -using UniversityDataBaseImplemet; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - [DbContext(typeof(Database))] - [Migration("20230518085846_fix")] - partial class fix - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "7.0.5") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Hours") - .HasColumnType("integer"); - - b.Property("MarkType") - .HasColumnType("boolean"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("UserId"); - - b.ToTable("Discipline"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Date") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Documents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("NumberOfStudent") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationGroups"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.HasKey("EducationGroupId", "DocumentId"); - - b.HasIndex("DocumentId"); - - b.ToTable("EducationGroupsDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.HasKey("EducationGroupId", "StreamId"); - - b.HasIndex("StreamId"); - - b.ToTable("EducationGroupsStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationStatuses"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Course") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Streams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DateOfBirth") - .HasColumnType("timestamp with time zone"); - - b.Property("EducationStatusId") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StudentCard") - .HasColumnType("integer"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationStatusId"); - - b.HasIndex("UserId"); - - b.ToTable("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.Property("StudentId") - .HasColumnType("integer"); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.HasKey("StudentId", "DocumentId"); - - b.HasIndex("DocumentId"); - - b.ToTable("StudentDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.Property("StudentId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.HasKey("StudentId", "StreamId"); - - b.HasIndex("StreamId"); - - b.ToTable("StudentStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Login") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Role") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany() - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Disciplines") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Documents") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("EducationGroups") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("EducationGroupDocument") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupDocument") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("EducationGroup"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupStream") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("EducationGroupStream") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationGroup"); - - b.Navigation("Stream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("EducationStatuses") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Streams") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationStatus", "EducationStatus") - .WithMany("Students") - .HasForeignKey("EducationStatusId"); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Students") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("EducationStatus"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("Students") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("DocumentStudents") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("StreamStudents") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("StudentStream") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("EducationGroupStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Navigation("EducationGroupStream"); - - b.Navigation("StreamStudents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Navigation("DocumentStudents"); - - b.Navigation("StudentStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Navigation("Disciplines"); - - b.Navigation("Documents"); - - b.Navigation("EducationGroups"); - - b.Navigation("EducationStatuses"); - - b.Navigation("Streams"); - - b.Navigation("Students"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230518085846_fix.cs b/UniversityDataBaseImplemet/Migrations/20230518085846_fix.cs deleted file mode 100644 index d53c8f0..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230518085846_fix.cs +++ /dev/null @@ -1,62 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - /// - public partial class fix : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "Id", - table: "StudentStreams"); - - migrationBuilder.DropColumn( - name: "Id", - table: "StudentDocuments"); - - migrationBuilder.DropColumn( - name: "Id", - table: "EducationGroupsStreams"); - - migrationBuilder.DropColumn( - name: "Id", - table: "EducationGroupsDocuments"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "Id", - table: "StudentStreams", - type: "integer", - nullable: false, - defaultValue: 0); - - migrationBuilder.AddColumn( - name: "Id", - table: "StudentDocuments", - type: "integer", - nullable: false, - defaultValue: 0); - - migrationBuilder.AddColumn( - name: "Id", - table: "EducationGroupsStreams", - type: "integer", - nullable: false, - defaultValue: 0); - - migrationBuilder.AddColumn( - name: "Id", - table: "EducationGroupsDocuments", - type: "integer", - nullable: false, - defaultValue: 0); - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230518162032_fix2.Designer.cs b/UniversityDataBaseImplemet/Migrations/20230518162032_fix2.Designer.cs deleted file mode 100644 index d3da172..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230518162032_fix2.Designer.cs +++ /dev/null @@ -1,488 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; -using UniversityDataBaseImplemet; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - [DbContext(typeof(Database))] - [Migration("20230518162032_fix2")] - partial class fix2 - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "7.0.5") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Hours") - .HasColumnType("integer"); - - b.Property("MarkType") - .HasColumnType("boolean"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("UserId"); - - b.ToTable("Discipline"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Date") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Documents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("NumberOfStudent") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationGroups"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.HasKey("EducationGroupId", "DocumentId"); - - b.HasIndex("DocumentId"); - - b.ToTable("EducationGroupsDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.HasKey("EducationGroupId", "StreamId"); - - b.HasIndex("StreamId"); - - b.ToTable("EducationGroupsStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationStatuses"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Course") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Streams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DateOfAddmission") - .HasColumnType("timestamp with time zone"); - - b.Property("DateOfBirth") - .HasColumnType("timestamp with time zone"); - - b.Property("EducationStatusId") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StudentCard") - .HasColumnType("integer"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationStatusId"); - - b.HasIndex("UserId"); - - b.ToTable("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.Property("StudentId") - .HasColumnType("integer"); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.HasKey("StudentId", "DocumentId"); - - b.HasIndex("DocumentId"); - - b.ToTable("StudentDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.Property("StudentId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.HasKey("StudentId", "StreamId"); - - b.HasIndex("StreamId"); - - b.ToTable("StudentStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Login") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Role") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany() - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Disciplines") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Documents") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("EducationGroups") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("EducationGroupDocument") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupDocument") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("EducationGroup"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupStream") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("EducationGroupStream") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationGroup"); - - b.Navigation("Stream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("EducationStatuses") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Streams") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationStatus", "EducationStatus") - .WithMany("Students") - .HasForeignKey("EducationStatusId"); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Students") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("EducationStatus"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("Students") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("DocumentStudents") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("StreamStudents") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("StudentStream") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("EducationGroupStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Navigation("EducationGroupStream"); - - b.Navigation("StreamStudents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Navigation("DocumentStudents"); - - b.Navigation("StudentStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Navigation("Disciplines"); - - b.Navigation("Documents"); - - b.Navigation("EducationGroups"); - - b.Navigation("EducationStatuses"); - - b.Navigation("Streams"); - - b.Navigation("Students"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230518162032_fix2.cs b/UniversityDataBaseImplemet/Migrations/20230518162032_fix2.cs deleted file mode 100644 index 179873a..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230518162032_fix2.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - /// - public partial class fix2 : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "DateOfAddmission", - table: "Students", - type: "timestamp with time zone", - nullable: false, - defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "DateOfAddmission", - table: "Students"); - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230519152931_fixCustomerStream.Designer.cs b/UniversityDataBaseImplemet/Migrations/20230519152931_fixCustomerStream.Designer.cs deleted file mode 100644 index d45f8be..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230519152931_fixCustomerStream.Designer.cs +++ /dev/null @@ -1,525 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; -using UniversityDataBaseImplemet; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - [DbContext(typeof(Database))] - [Migration("20230519152931_fixCustomerStream")] - partial class fixCustomerStream - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "7.0.5") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("UniversityContracts.ViewModels.EducationGroupViewModel", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("NumberOfStudent") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.ToTable("EducationGroupViewModel"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Hours") - .HasColumnType("integer"); - - b.Property("MarkType") - .HasColumnType("boolean"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("UserId"); - - b.ToTable("Discipline"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Date") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Documents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("NumberOfStudent") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationGroups"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.HasKey("EducationGroupId", "DocumentId"); - - b.HasIndex("DocumentId"); - - b.ToTable("EducationGroupsDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.HasKey("EducationGroupId", "StreamId"); - - b.HasIndex("StreamId"); - - b.ToTable("EducationGroupsStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationStatuses"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Course") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Streams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DateOfAddmission") - .HasColumnType("timestamp with time zone"); - - b.Property("DateOfBirth") - .HasColumnType("timestamp with time zone"); - - b.Property("EducationStatusId") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StudentCard") - .HasColumnType("integer"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationStatusId"); - - b.HasIndex("UserId"); - - b.ToTable("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.Property("StudentId") - .HasColumnType("integer"); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.HasKey("StudentId", "DocumentId"); - - b.HasIndex("DocumentId"); - - b.ToTable("StudentDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.Property("StudentId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.HasKey("StudentId", "StreamId"); - - b.HasIndex("StreamId"); - - b.ToTable("StudentStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Login") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Role") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("User"); - }); - - modelBuilder.Entity("UniversityContracts.ViewModels.EducationGroupViewModel", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", null) - .WithMany("StreamEdGroups") - .HasForeignKey("StreamId"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany() - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Disciplines") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Documents") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("EducationGroups") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("EducationGroupDocument") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupDocument") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("EducationGroup"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupStream") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("EducationGroupStream") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationGroup"); - - b.Navigation("Stream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("EducationStatuses") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Streams") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationStatus", "EducationStatus") - .WithMany("Students") - .HasForeignKey("EducationStatusId"); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Students") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("EducationStatus"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("Students") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("DocumentStudents") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("StreamStudents") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("StudentStream") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("EducationGroupStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Navigation("EducationGroupStream"); - - b.Navigation("StreamEdGroups"); - - b.Navigation("StreamStudents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Navigation("DocumentStudents"); - - b.Navigation("StudentStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Navigation("Disciplines"); - - b.Navigation("Documents"); - - b.Navigation("EducationGroups"); - - b.Navigation("EducationStatuses"); - - b.Navigation("Streams"); - - b.Navigation("Students"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230519152931_fixCustomerStream.cs b/UniversityDataBaseImplemet/Migrations/20230519152931_fixCustomerStream.cs deleted file mode 100644 index 81b8310..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230519152931_fixCustomerStream.cs +++ /dev/null @@ -1,48 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - /// - public partial class fixCustomerStream : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "EducationGroupViewModel", - columns: table => new - { - Id = table.Column(type: "integer", nullable: false) - .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - Name = table.Column(type: "text", nullable: false), - NumberOfStudent = table.Column(type: "integer", nullable: false), - UserId = table.Column(type: "integer", nullable: false), - StreamId = table.Column(type: "integer", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_EducationGroupViewModel", x => x.Id); - table.ForeignKey( - name: "FK_EducationGroupViewModel_Streams_StreamId", - column: x => x.StreamId, - principalTable: "Streams", - principalColumn: "Id"); - }); - - migrationBuilder.CreateIndex( - name: "IX_EducationGroupViewModel_StreamId", - table: "EducationGroupViewModel", - column: "StreamId"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "EducationGroupViewModel"); - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230519161234_fixCustomerStream2.Designer.cs b/UniversityDataBaseImplemet/Migrations/20230519161234_fixCustomerStream2.Designer.cs deleted file mode 100644 index ef36ef9..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230519161234_fixCustomerStream2.Designer.cs +++ /dev/null @@ -1,525 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; -using UniversityDataBaseImplemet; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - [DbContext(typeof(Database))] - [Migration("20230519161234_fixCustomerStream2")] - partial class fixCustomerStream2 - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "7.0.5") - .HasAnnotation("Relational:MaxIdentifierLength", 63); - - NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - - modelBuilder.Entity("UniversityContracts.ViewModels.EducationGroupViewModel", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("NumberOfStudent") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.ToTable("EducationGroupViewModel"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Hours") - .HasColumnType("integer"); - - b.Property("MarkType") - .HasColumnType("boolean"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("StreamId"); - - b.HasIndex("UserId"); - - b.ToTable("Discipline"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Date") - .HasColumnType("timestamp with time zone"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Documents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("NumberOfStudent") - .HasColumnType("integer"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationGroups"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.HasKey("EducationGroupId", "DocumentId"); - - b.HasIndex("DocumentId"); - - b.ToTable("EducationGroupsDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.Property("EducationGroupId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.HasKey("EducationGroupId", "StreamId"); - - b.HasIndex("StreamId"); - - b.ToTable("EducationGroupsStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("EducationStatuses"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Course") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Streams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("DateOfAddmission") - .HasColumnType("timestamp with time zone"); - - b.Property("DateOfBirth") - .HasColumnType("timestamp with time zone"); - - b.Property("EducationStatusId") - .HasColumnType("integer"); - - b.Property("Name") - .IsRequired() - .HasColumnType("text"); - - b.Property("StudentCard") - .HasColumnType("integer"); - - b.Property("Surname") - .IsRequired() - .HasColumnType("text"); - - b.Property("UserId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("EducationStatusId"); - - b.HasIndex("UserId"); - - b.ToTable("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.Property("StudentId") - .HasColumnType("integer"); - - b.Property("DocumentId") - .HasColumnType("integer"); - - b.HasKey("StudentId", "DocumentId"); - - b.HasIndex("DocumentId"); - - b.ToTable("StudentDocuments"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.Property("StudentId") - .HasColumnType("integer"); - - b.Property("StreamId") - .HasColumnType("integer"); - - b.HasKey("StudentId", "StreamId"); - - b.HasIndex("StreamId"); - - b.ToTable("StudentStreams"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Login") - .IsRequired() - .HasColumnType("text"); - - b.Property("Password") - .IsRequired() - .HasColumnType("text"); - - b.Property("Role") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.ToTable("User"); - }); - - modelBuilder.Entity("UniversityContracts.ViewModels.EducationGroupViewModel", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", null) - .WithMany("StreamEdGroups") - .HasForeignKey("StreamId"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Discipline", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany() - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Disciplines") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Documents") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("EducationGroups") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("EducationGroupDocument") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupDocument") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("EducationGroup"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroupStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationGroup", "EducationGroup") - .WithMany("EducationGroupStream") - .HasForeignKey("EducationGroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("EducationGroupStream") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("EducationGroup"); - - b.Navigation("Stream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("EducationStatuses") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Streams") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.EducationStatus", "EducationStatus") - .WithMany("Students") - .HasForeignKey("EducationStatusId"); - - b.HasOne("UniversityDataBaseImplemet.Models.User", "User") - .WithMany("Students") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.NoAction) - .IsRequired(); - - b.Navigation("EducationStatus"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentDocument", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Document", "Document") - .WithMany("Students") - .HasForeignKey("DocumentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("DocumentStudents") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Document"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.StudentStream", b => - { - b.HasOne("UniversityDataBaseImplemet.Models.Stream", "Stream") - .WithMany("StreamStudents") - .HasForeignKey("StreamId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("UniversityDataBaseImplemet.Models.Student", "Student") - .WithMany("StudentStream") - .HasForeignKey("StudentId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Stream"); - - b.Navigation("Student"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Document", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationGroup", b => - { - b.Navigation("EducationGroupDocument"); - - b.Navigation("EducationGroupStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.EducationStatus", b => - { - b.Navigation("Students"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Stream", b => - { - b.Navigation("EducationGroupStream"); - - b.Navigation("StreamEdGroups"); - - b.Navigation("StreamStudents"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.Student", b => - { - b.Navigation("DocumentStudents"); - - b.Navigation("StudentStream"); - }); - - modelBuilder.Entity("UniversityDataBaseImplemet.Models.User", b => - { - b.Navigation("Disciplines"); - - b.Navigation("Documents"); - - b.Navigation("EducationGroups"); - - b.Navigation("EducationStatuses"); - - b.Navigation("Streams"); - - b.Navigation("Students"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/UniversityDataBaseImplemet/Migrations/20230519161234_fixCustomerStream2.cs b/UniversityDataBaseImplemet/Migrations/20230519161234_fixCustomerStream2.cs deleted file mode 100644 index b5f13e1..0000000 --- a/UniversityDataBaseImplemet/Migrations/20230519161234_fixCustomerStream2.cs +++ /dev/null @@ -1,87 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace UniversityDataBaseImplemet.Migrations -{ - /// - public partial class fixCustomerStream2 : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Discipline_User_UserId", - table: "Discipline"); - - migrationBuilder.DropForeignKey( - name: "FK_EducationGroups_User_UserId", - table: "EducationGroups"); - - migrationBuilder.DropForeignKey( - name: "FK_Streams_User_UserId", - table: "Streams"); - - migrationBuilder.AddForeignKey( - name: "FK_Discipline_User_UserId", - table: "Discipline", - column: "UserId", - principalTable: "User", - principalColumn: "Id"); - - migrationBuilder.AddForeignKey( - name: "FK_EducationGroups_User_UserId", - table: "EducationGroups", - column: "UserId", - principalTable: "User", - principalColumn: "Id"); - - migrationBuilder.AddForeignKey( - name: "FK_Streams_User_UserId", - table: "Streams", - column: "UserId", - principalTable: "User", - principalColumn: "Id"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Discipline_User_UserId", - table: "Discipline"); - - migrationBuilder.DropForeignKey( - name: "FK_EducationGroups_User_UserId", - table: "EducationGroups"); - - migrationBuilder.DropForeignKey( - name: "FK_Streams_User_UserId", - table: "Streams"); - - migrationBuilder.AddForeignKey( - name: "FK_Discipline_User_UserId", - table: "Discipline", - column: "UserId", - principalTable: "User", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - - migrationBuilder.AddForeignKey( - name: "FK_EducationGroups_User_UserId", - table: "EducationGroups", - column: "UserId", - principalTable: "User", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - - migrationBuilder.AddForeignKey( - name: "FK_Streams_User_UserId", - table: "Streams", - column: "UserId", - principalTable: "User", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - } - } -} diff --git a/UniversityProvider/Controllers/HomeController.cs b/UniversityProvider/Controllers/HomeController.cs index f75b406..1c14867 100644 --- a/UniversityProvider/Controllers/HomeController.cs +++ b/UniversityProvider/Controllers/HomeController.cs @@ -124,7 +124,7 @@ namespace UniversityProvider.Controllers ($"api/educationstatus/getmany?userId={APIClient.User.Id}&page={page}"); ViewBag.Page = page; ViewBag.NumberOfPages = APIClient.GetRequest - ($"api/student/getnumberofpages?userId={APIClient.User.Id}"); + ($"api/educationstatus/getnumberofpages?userId={APIClient.User.Id}"); return View(); } @@ -199,6 +199,12 @@ namespace UniversityProvider.Controllers return View(); } + public IActionResult Exit() + { + APIClient.User = null; + return RedirectToAction("Login"); + } + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] public IActionResult Error() { diff --git a/UniversityProvider/Views/Document/Bind.cshtml b/UniversityProvider/Views/Document/Bind.cshtml index 13a7f35..62c28fa 100644 --- a/UniversityProvider/Views/Document/Bind.cshtml +++ b/UniversityProvider/Views/Document/Bind.cshtml @@ -3,22 +3,26 @@ } @{ -

Привязка группы к приказу

+
+

+ Привязка группы к приказу +

+
-

+

Название:

- -
+
diff --git a/UniversityProvider/Views/Document/Create.cshtml b/UniversityProvider/Views/Document/Create.cshtml index 2afd9f4..5e3fe12 100644 --- a/UniversityProvider/Views/Document/Create.cshtml +++ b/UniversityProvider/Views/Document/Create.cshtml @@ -2,22 +2,24 @@ ViewData["Title"] = "Приказ"; } -

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

+
+

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

+
-

+

Название:

- -
+
diff --git a/UniversityProvider/Views/Document/Update.cshtml b/UniversityProvider/Views/Document/Update.cshtml index 9e6e5f2..13c526c 100644 --- a/UniversityProvider/Views/Document/Update.cshtml +++ b/UniversityProvider/Views/Document/Update.cshtml @@ -3,22 +3,24 @@ } @{ -

Обновление приказа

- +
+

Обновление приказа

+
+
-

+

Название:

- -
+
diff --git a/UniversityProvider/Views/EducationStatus/AddStudent.cshtml b/UniversityProvider/Views/EducationStatus/AddStudent.cshtml index 50dd34f..727a7dc 100644 --- a/UniversityProvider/Views/EducationStatus/AddStudent.cshtml +++ b/UniversityProvider/Views/EducationStatus/AddStudent.cshtml @@ -5,7 +5,9 @@ } @{ -

Назначение статуса обучения студенту

+
+

Назначение статуса обучения

+
if (ViewBag.EducationStatusId == null) { @@ -13,23 +15,28 @@ return; } -
-
+
+
+

+
+
+ +
+
-
-
+
+
-
- diff --git a/UniversityProvider/Views/EducationStatus/Create.cshtml b/UniversityProvider/Views/EducationStatus/Create.cshtml index 73aa0b6..958889f 100644 --- a/UniversityProvider/Views/EducationStatus/Create.cshtml +++ b/UniversityProvider/Views/EducationStatus/Create.cshtml @@ -2,18 +2,20 @@ ViewData["Title"] = "Статус обучения"; } -

Добавление статуса обучения

+
+

Добавление статуса обучения

+
-

+

Название:

- diff --git a/UniversityProvider/Views/EducationStatus/Update.cshtml b/UniversityProvider/Views/EducationStatus/Update.cshtml index fde41a3..ad7bcc7 100644 --- a/UniversityProvider/Views/EducationStatus/Update.cshtml +++ b/UniversityProvider/Views/EducationStatus/Update.cshtml @@ -5,8 +5,9 @@ } @{ - -

Изменение данных статуса обучения

+
+

Изменение данных статуса обучения

+
if (ViewBag.EducationStatus == null) { @@ -14,15 +15,15 @@ return; }
-
-

-
+
+

+

Название:

- } diff --git a/UniversityProvider/Views/Home/Diagram.cshtml b/UniversityProvider/Views/Home/Diagram.cshtml index 3adb064..f72f475 100644 --- a/UniversityProvider/Views/Home/Diagram.cshtml +++ b/UniversityProvider/Views/Home/Diagram.cshtml @@ -1,8 +1,15 @@ - - -
- + +
+

Круговая диаграмма

+
+ +
+ +
+
+ + diff --git a/UniversityProvider/Views/Home/DisciplineStudentList.cshtml b/UniversityProvider/Views/Home/DisciplineStudentList.cshtml index 61a901f..84ba4ec 100644 --- a/UniversityProvider/Views/Home/DisciplineStudentList.cshtml +++ b/UniversityProvider/Views/Home/DisciplineStudentList.cshtml @@ -2,7 +2,9 @@ ViewData["Title"] = "Список дисциплин по студентам"; } -

Список дисциплин по студентам

+
+

Список дисциплин по студентам

+
@@ -10,20 +12,18 @@
- +
+ - + +
- - -
+
diff --git a/UniversityProvider/Views/Home/Documents.cshtml b/UniversityProvider/Views/Home/Documents.cshtml index 1912345..636802c 100644 --- a/UniversityProvider/Views/Home/Documents.cshtml +++ b/UniversityProvider/Views/Home/Documents.cshtml @@ -17,14 +17,14 @@ return; }
/ @ViewBag.NumberOfPages
- + Перейти
@@ -56,13 +56,13 @@ @item.Date.ToString("yyyy-MM-dd") } diff --git a/UniversityProvider/Views/Home/EducationStatuses.cshtml b/UniversityProvider/Views/Home/EducationStatuses.cshtml index f7de60c..ee196cb 100644 --- a/UniversityProvider/Views/Home/EducationStatuses.cshtml +++ b/UniversityProvider/Views/Home/EducationStatuses.cshtml @@ -17,14 +17,14 @@ return; }
/ @ViewBag.NumberOfPages
- + Перейти
@@ -53,13 +53,13 @@ @item.Name } diff --git a/UniversityProvider/Views/Home/GetReport.cshtml b/UniversityProvider/Views/Home/GetReport.cshtml index 796f657..5a953a0 100644 --- a/UniversityProvider/Views/Home/GetReport.cshtml +++ b/UniversityProvider/Views/Home/GetReport.cshtml @@ -1,8 +1,10 @@ @{ - ViewData["Title"] = "Список дисциплин по студентам"; + ViewData["Title"] = "Отчет"; } -

Список дисциплин по студентам

+
+

Отчет по статусам обучения

+
@@ -19,10 +21,10 @@

Дата конца:

- -
diff --git a/UniversityProvider/Views/Home/Login.cshtml b/UniversityProvider/Views/Home/Login.cshtml index b95c97f..ad9b20d 100644 --- a/UniversityProvider/Views/Home/Login.cshtml +++ b/UniversityProvider/Views/Home/Login.cshtml @@ -2,26 +2,45 @@ ViewData["Title"] = "Вход"; } -
-

Вход в приложение

+
+
+
+
+

Вход в приложение

+
+
+
+

+
+
+
+
+
Логин:
+
+ +
+
+
+
Пароль:
+
+ +
+
+
+ +
+ +
+
+ +
+
-
-
-
Логин:
-
-
-
-
Пароль:
-
-
- - \ No newline at end of file + + diff --git a/UniversityProvider/Views/Home/Profile.cshtml b/UniversityProvider/Views/Home/Profile.cshtml index 0c25542..786ba0d 100644 --- a/UniversityProvider/Views/Home/Profile.cshtml +++ b/UniversityProvider/Views/Home/Profile.cshtml @@ -2,11 +2,13 @@ ViewData["Title"] = "Личные данные"; } -

Личные данные

+
+

Личные данные

+
-

+

@@ -18,7 +20,7 @@
-
diff --git a/UniversityProvider/Views/Home/Registration.cshtml b/UniversityProvider/Views/Home/Registration.cshtml index 509479b..1ca9e51 100644 --- a/UniversityProvider/Views/Home/Registration.cshtml +++ b/UniversityProvider/Views/Home/Registration.cshtml @@ -2,26 +2,39 @@ ViewData["Title"] = "Регистрация"; } -
-

Регистрация

+
+
+
+
+

Регистрация

+
+
+
+

+
+
+
+
+
Логин (эл.почта):
+
+
+
+
Пароль:
+
+
+ + +
+
-
-
-
Логин (эл.почта):
-
-
-
-
Пароль:
-
-
- - \ No newline at end of file + + \ No newline at end of file diff --git a/UniversityProvider/Views/Home/Students.cshtml b/UniversityProvider/Views/Home/Students.cshtml index 8c99dc6..c502884 100644 --- a/UniversityProvider/Views/Home/Students.cshtml +++ b/UniversityProvider/Views/Home/Students.cshtml @@ -17,14 +17,14 @@ return; }
/ @ViewBag.NumberOfPages
- + Перейти
@@ -68,10 +68,10 @@ @item.EducationStatusName
} diff --git a/UniversityProvider/Views/Shared/_Layout.cshtml b/UniversityProvider/Views/Shared/_Layout.cshtml index 40d25b2..be25a94 100644 --- a/UniversityProvider/Views/Shared/_Layout.cshtml +++ b/UniversityProvider/Views/Shared/_Layout.cshtml @@ -5,48 +5,54 @@ @ViewData["Title"] - UniversityProvider - + + @if(APIClient.User != null) { -
- -
+ + }
@@ -55,8 +61,7 @@
- - + @await RenderSectionAsync("Scripts", required: false) diff --git a/UniversityProvider/Views/Student/Create.cshtml b/UniversityProvider/Views/Student/Create.cshtml index ed303a1..14c0883 100644 --- a/UniversityProvider/Views/Student/Create.cshtml +++ b/UniversityProvider/Views/Student/Create.cshtml @@ -2,11 +2,13 @@ ViewData["Title"] = "Студент"; } -

Добавление студента

+
+

Добавление студента

+
-

+

@@ -19,7 +21,7 @@

Номер студенческого билета:

- diff --git a/UniversityProvider/Views/Student/Update.cshtml b/UniversityProvider/Views/Student/Update.cshtml index 0d71e66..c7e3da8 100644 --- a/UniversityProvider/Views/Student/Update.cshtml +++ b/UniversityProvider/Views/Student/Update.cshtml @@ -5,8 +5,9 @@ } @{ - -

Изменение данных студента

+
+

Студенты

+
if (ViewBag.Student == null) { @@ -15,7 +16,7 @@ }
-

+

@@ -28,7 +29,7 @@

Номер студенческого билета:

- } diff --git a/UniversityProvider/wwwroot/css/site.css b/UniversityProvider/wwwroot/css/site.css index f137c90..0283ef1 100644 --- a/UniversityProvider/wwwroot/css/site.css +++ b/UniversityProvider/wwwroot/css/site.css @@ -26,3 +26,6 @@ body { transition: background-color 0.3s ease; } +.header-logo{ + max-height: 100px; +} \ No newline at end of file diff --git a/UniversityProvider/wwwroot/img/pngwing.com.png b/UniversityProvider/wwwroot/img/pngwing.com.png new file mode 100644 index 0000000000000000000000000000000000000000..5e6acc559c80388e2aa06473e2f7aa327409d129 GIT binary patch literal 58686 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 DZ7?{y literal 0 HcmV?d00001 diff --git a/UniversityProvider/wwwroot/js/diagram/diagram.js b/UniversityProvider/wwwroot/js/diagram/diagram.js index 3628601..f6052b2 100644 --- a/UniversityProvider/wwwroot/js/diagram/diagram.js +++ b/UniversityProvider/wwwroot/js/diagram/diagram.js @@ -1,5 +1,4 @@ -var btnFlow = document.getElementById('btnFlow'); -var btnStatus = document.getElementById('btnStatus'); +var btnStatus = document.getElementById('btnStatus'); var educationStatusStats = []; window.addEventListener('load', async () => { @@ -13,41 +12,13 @@ window.addEventListener('load', async () => { }); }) - var ctx = document.getElementById('myChart').getContext('2d'); - var chart; - - function drawFlowChart() { - var flowData = { - labels: ['Поток 1', 'Поток 2', 'Поток 3'], - datasets: [{ - label: 'Распределение студентов', - data: [80, 120, 100], - backgroundColor: ['#FF6384', '#36A2EB', '#FFCE56'] - }] - }; - - // Clear the previous chart if it exists - if (chart) { - chart.destroy(); - } - - chart = new Chart(ctx, { - type: 'bar', - data: flowData, - options: { - responsive: true, - scales: { - y: { - beginAtZero: true - } - } - } - }); - } +var ctx = document.getElementById('myChart').getContext('2d'); +var chart; function drawStatusChart() { var edStatus = []; var edCount = []; + console.log(educationStatusStats) educationStatusStats.forEach((item) => { edStatus.push(item.name); }); @@ -75,11 +46,7 @@ function drawStatusChart() { }); } - btnFlow.addEventListener('click', function () { - drawFlowChart(); - }); - - btnStatus.addEventListener('click', function () { - drawStatusChart(); - }); +btnStatus.addEventListener('click', function () { + drawStatusChart(); +}); diff --git a/UniversityProvider/wwwroot/js/document/document-create.js b/UniversityProvider/wwwroot/js/document/document-create.js index d7a625c..3483166 100644 --- a/UniversityProvider/wwwroot/js/document/document-create.js +++ b/UniversityProvider/wwwroot/js/document/document-create.js @@ -3,6 +3,8 @@ const tbody = document.getElementById("scrollable-table__tbody") const nameInput = document.getElementById("name-input") var students = [] var dataArray = []; +const errorP = document.getElementById("error-p"); +const errorDivShell = document.getElementById("error-div-shell"); const correctData = () => { @@ -10,7 +12,16 @@ const correctData = () => { }; const validate = () => { - + if (nameInput.value === "") { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните поле 'Название'"; + return false; + } + if (dataArray.length === 0) { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните список 'Студенты'"; + return false; + } return true; }; diff --git a/UniversityProvider/wwwroot/js/document/document-update.js b/UniversityProvider/wwwroot/js/document/document-update.js index bd1a609..1b7a82d 100644 --- a/UniversityProvider/wwwroot/js/document/document-update.js +++ b/UniversityProvider/wwwroot/js/document/document-update.js @@ -5,6 +5,8 @@ const currentDocumentId = document.getElementById("document-data").dataset.id; var students = []; var dataArray = []; var currentDocument = null; +const errorP = document.getElementById("error-p"); +const errorDivShell = document.getElementById("error-div-shell"); const correctData = () => { @@ -12,7 +14,16 @@ const correctData = () => { }; const validate = () => { - + if (nameInput.value === "") { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните поле 'Название'"; + return false; + } + if (dataArray.length === 0) { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните список 'Студенты'"; + return false; + } return true; }; diff --git a/UniversityProvider/wwwroot/js/educationstatus/educationstatus-add-student.js b/UniversityProvider/wwwroot/js/educationstatus/educationstatus-add-student.js index 3b84ce3..a2289c7 100644 --- a/UniversityProvider/wwwroot/js/educationstatus/educationstatus-add-student.js +++ b/UniversityProvider/wwwroot/js/educationstatus/educationstatus-add-student.js @@ -3,6 +3,8 @@ const educationStatusId = document.getElementById("educationStatusLabel").datase const educationStatusInput = document.getElementById("educationStatusInput"); const studentTable = document.getElementById("studentTable"); const updateBtn = document.getElementById("update-button"); +const errorP = document.getElementById("error-p"); +const errorDivShell = document.getElementById("error-div-shell"); var students = []; var educationStatus = null; @@ -35,7 +37,9 @@ window.addEventListener("load", async () => { updateBtn.addEventListener("click", () => { if (select.selectedIndex === -1) { - return; + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Выберите значение из списка"; + return false; } var student = students.find(x => x.id === parseInt(select.value)); @@ -98,11 +102,14 @@ select.addEventListener("change", () => { const tdArrowEducationStatusName = document.createElement('td'); tdArrowEducationStatusName.innerHTML = "-->"; const tdEducationStatusName = createRow("", student.educationStatusName); + tdEducationStatusName.classList.add("text-decoration-line-through", "text-danger") + trEducationStatusName.appendChild(tdEducationStatusNameField); trEducationStatusName.appendChild(tdNewEducationStatusName); trEducationStatusName.appendChild(tdArrowEducationStatusName); trEducationStatusName.appendChild(tdEducationStatusName); + studentTable.append( trName, diff --git a/UniversityProvider/wwwroot/js/educationstatus/educationstatus-create.js b/UniversityProvider/wwwroot/js/educationstatus/educationstatus-create.js index 61e452d..6892d40 100644 --- a/UniversityProvider/wwwroot/js/educationstatus/educationstatus-create.js +++ b/UniversityProvider/wwwroot/js/educationstatus/educationstatus-create.js @@ -1,5 +1,7 @@ const createBtn = document.getElementById("create-button"); const nameInput = document.getElementById("name-input"); +const errorP = document.getElementById("error-p"); +const errorDivShell = document.getElementById("error-div-shell"); const correctData = () => { @@ -7,7 +9,11 @@ const correctData = () => { }; const validate = () => { - + if (nameInput.value === "") { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните поле 'Название'"; + return false; + } return true; }; diff --git a/UniversityProvider/wwwroot/js/educationstatus/educationstatus-update.js b/UniversityProvider/wwwroot/js/educationstatus/educationstatus-update.js index 59057fc..1aa99e1 100644 --- a/UniversityProvider/wwwroot/js/educationstatus/educationstatus-update.js +++ b/UniversityProvider/wwwroot/js/educationstatus/educationstatus-update.js @@ -1,6 +1,8 @@ const updateBtn = document.getElementById("update-button"); const nameInput = document.getElementById("name-input") const studId = document.getElementById("vb-id").dataset.id +const errorP = document.getElementById("error-p"); +const errorDivShell = document.getElementById("error-div-shell"); const correctData = () => { @@ -8,7 +10,11 @@ const correctData = () => { }; const validate = () => { - + if (nameInput.value === "") { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните поле 'Название'"; + return false; + } return true; }; diff --git a/UniversityProvider/wwwroot/js/profile/profile-update.js b/UniversityProvider/wwwroot/js/profile/profile-update.js deleted file mode 100644 index da3c60f..0000000 --- a/UniversityProvider/wwwroot/js/profile/profile-update.js +++ /dev/null @@ -1,41 +0,0 @@ -const updateBtn = document.getElementById("update-button"); -const nameInput = document.getElementById("name-input") -const surnameInput = document.getElementById("surname-input") -const dateInput = document.getElementById("date-input") -const studCardInput = document.getElementById("studcard-input") -const studId = document.getElementById("vb-id").dataset.id - -const correctData = () => { - - return true; -}; - -const validate = () => { - - return true; -}; - -updateBtn.addEventListener("click", () => { - if (!correctData()) { - return; - } - if (!validate()) { - return; - } - let student = { - "Id": parseInt(studId), - "Name": nameInput.value, - "Surname": surnameInput.value, - "DateOfBirth": new Date(dateInput.value), - "StudentCard": parseInt(studCardInput.value), - }; - console.log(student) - $.ajax({ - url: "/student/update", - type: "POST", - contentType: "application/json", - data: JSON.stringify(student) - }).done(() => { - window.location.href = "/Home/Students"; - }); -}); \ No newline at end of file diff --git a/UniversityProvider/wwwroot/js/profile/profile.js b/UniversityProvider/wwwroot/js/profile/profile.js new file mode 100644 index 0000000..bd1fdd0 --- /dev/null +++ b/UniversityProvider/wwwroot/js/profile/profile.js @@ -0,0 +1,26 @@ +const passwordInput = document.getElementById("password"); +const form = document.getElementById("form"); +const updateButton = document.getElementById("update-button"); +const errorDivShell = document.getElementById("error-div-shell"); +const errorP = document.getElementById("error-p"); + +updateButton.addEventListener("click", () => { + if (!validate()) { + return; + } + form.submit(); +}); + +passwordInput.addEventListener("input", () => { + errorDivShell.style.gridTemplateRows = "0fr"; +}); + + +const validate = function () { + if (passwordInput.value === "") { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните поле 'Пароль'"; + return false; + } + return true; +} \ No newline at end of file diff --git a/UniversityProvider/wwwroot/js/report/reportpdf.js b/UniversityProvider/wwwroot/js/report/reportpdf.js index 3a831cf..c09270b 100644 --- a/UniversityProvider/wwwroot/js/report/reportpdf.js +++ b/UniversityProvider/wwwroot/js/report/reportpdf.js @@ -85,21 +85,3 @@ const renderTable = (data) => { } } } - -const createTableSection = (streamName, students) => { - const tr = document.createElement('tr'); - const trWrapper = []; - tr.classList.add("table-row"); - tr.appendChild(createTableCell(streamName)); - - students.forEach((item) => { - const newTr = document.createElement('tr'); - newTr.appendChild(createTableCell(item)) - }); -} - -const createTableCell = (item) => { - const td = document.createElement('td'); - td.innerHTML = cellText; - return td; -} \ No newline at end of file diff --git a/UniversityProvider/wwwroot/js/site.js b/UniversityProvider/wwwroot/js/site.js index ac49c18..3874975 100644 --- a/UniversityProvider/wwwroot/js/site.js +++ b/UniversityProvider/wwwroot/js/site.js @@ -1,4 +1,11 @@ -// Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification -// for details on configuring this project to bundle and minify static web assets. +const passwordInput = document.getElementById("password-input"); +const errorP = document.getElementById("error-p"); +const errorDivShell = document.getElementById("error-div-shell"); -// Write your JavaScript code. +document.getElementById('form-login').addEventListener('submit', function (event) { + if (passwordInput.value.trim() === '') { + event.preventDefault(); + var errorP = document.getElementById('error-p'); + errorP.innerHTML = 'Пожалуйста, введите пароль'; + } +}); \ No newline at end of file diff --git a/UniversityProvider/wwwroot/js/student/student-create.js b/UniversityProvider/wwwroot/js/student/student-create.js index 0600fd0..cd5bc3d 100644 --- a/UniversityProvider/wwwroot/js/student/student-create.js +++ b/UniversityProvider/wwwroot/js/student/student-create.js @@ -3,22 +3,59 @@ const nameInput = document.getElementById("name-input") const surnameInput = document.getElementById("surname-input") const dateInput = document.getElementById("date-input") const studCardInput = document.getElementById("studcard-input") +const errorP = document.getElementById("error-p"); +const errorDivShell = document.getElementById("error-div-shell"); +students = [] + +window.addEventListener("load", () => { + const studentsResponse = $.ajax({ + url: `/student/getallbyuser`, + type: "GET", + contentType: "json" + }); + students = studentsResponse; +}) const correctData = () => { - return true; }; -const validate = () => { - - return true; +const validate = () => { + var validStudentCard = true + if (nameInput.value === "") { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните поле 'Имя'"; + return false; + } + if (surnameInput.value === "") { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните поле 'Фамилия'"; + return false + } + if (dateInput.value === "") { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните поле 'Дата рождения'"; + return false + } + + students.forEach((student) => { + if (student.studentCard === parseInt(studCardInput.value)) { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните поле 'Дата рождения'"; + validStudentCard = false; + } + }); + if (!validStudentCard) { + return false + } + return true }; createBtn.addEventListener("click", () => { - if (!correctData()) { + if (!validate()) { return; } - if (!validate()) { + if (!correctData()) { return; } let student = { @@ -28,7 +65,6 @@ createBtn.addEventListener("click", () => { "DateOfAddmission": new Date(), "StudentCard": parseInt(studCardInput.value), }; - console.log(student) $.ajax({ url: "/student/create", type: "POST", diff --git a/UniversityProvider/wwwroot/js/student/student-update.js b/UniversityProvider/wwwroot/js/student/student-update.js index da3c60f..62900f8 100644 --- a/UniversityProvider/wwwroot/js/student/student-update.js +++ b/UniversityProvider/wwwroot/js/student/student-update.js @@ -4,6 +4,19 @@ const surnameInput = document.getElementById("surname-input") const dateInput = document.getElementById("date-input") const studCardInput = document.getElementById("studcard-input") const studId = document.getElementById("vb-id").dataset.id +const errorP = document.getElementById("error-p"); +const errorDivShell = document.getElementById("error-div-shell"); + +students = [] + +window.addEventListener("load", () => { + const studentsResponse = $.ajax({ + url: `/student/getallbyuser`, + type: "GET", + contentType: "json" + }); + students = studentsResponse; +}) const correctData = () => { @@ -11,8 +24,34 @@ const correctData = () => { }; const validate = () => { + var validStudentCard = true + if (nameInput.value === "") { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните поле 'Имя'"; + return false; + } + if (surnameInput.value === "") { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните поле 'Фамилия'"; + return false + } + if (dateInput.value === "") { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните поле 'Дата рождения'"; + return false + } - return true; + students.forEach((student) => { + if (student.studentCard === parseInt(studCardInput.value)) { + errorDivShell.style.gridTemplateRows = "1fr"; + errorP.innerHTML = "Заполните поле 'Дата рождения'"; + validStudentCard = false; + } + }); + if (!validStudentCard) { + return false + } + return true }; updateBtn.addEventListener("click", () => {
- Привязка + Привязка - Изменить + Изменить - Удалить + Удалить
- Назначить статус для студента + Назначить статус для студента - Изменить + Изменить - Удалить + Удалить
- Изменить + Изменить - Удалить + Удалить