From 755b6fb81f368de440e76ca9afec6c29e9968c06 Mon Sep 17 00:00:00 2001 From: Arkadiy Radaev Date: Fri, 24 May 2024 13:07:49 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=8B=D1=82=D0=B0=D1=8E=D1=81=D1=8C=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=84=D0=B8=D0=BA=D1=81=D0=B8=D1=82=D1=8C=20=D0=B2?= =?UTF-8?q?=D0=B5=D0=B4=D0=BE=D0=BC=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/HomeController.cs | 14 +- .../UniversityAdminApp.csproj | 5 + .../UniversityAdminApp/appsettings.json | 1 + .../BindingModels/StudyListBindingModel.cs | 1 + .../SearchModels/StudyListSearchModel.cs | 1 + .../ViewModels/StudyListViewModel.cs | 1 + .../Models/IStudyListModel.cs | 1 + .../Implements/StudyListStorage.cs | 1 + .../20240501151724_InitMirgation.cs | 392 ------------------ ... 20240524083513_InitialCreate.Designer.cs} | 2 +- ...ate.cs => 20240524083513_InitialCreate.cs} | 0 ...24085350_UpdateDeleteBehavior.Designer.cs} | 69 ++- .../20240524085350_UpdateDeleteBehavior.cs | 22 + .../UniversityDatabaseModelSnapshot.cs | 65 ++- .../Models/StudyList.cs | 5 +- 15 files changed, 155 insertions(+), 425 deletions(-) delete mode 100644 University/UniversityDatabaseImplement/Migrations/20240501151724_InitMirgation.cs rename University/UniversityDatabaseImplement/Migrations/{20240523164132_InitialCreate.Designer.cs => 20240524083513_InitialCreate.Designer.cs} (99%) rename University/UniversityDatabaseImplement/Migrations/{20240523164132_InitialCreate.cs => 20240524083513_InitialCreate.cs} (100%) rename University/UniversityDatabaseImplement/Migrations/{20240501151724_InitMirgation.Designer.cs => 20240524085350_UpdateDeleteBehavior.Designer.cs} (90%) create mode 100644 University/UniversityDatabaseImplement/Migrations/20240524085350_UpdateDeleteBehavior.cs diff --git a/University/UniversityAdminApp/Controllers/HomeController.cs b/University/UniversityAdminApp/Controllers/HomeController.cs index e0eb274..061b691 100644 --- a/University/UniversityAdminApp/Controllers/HomeController.cs +++ b/University/UniversityAdminApp/Controllers/HomeController.cs @@ -388,19 +388,21 @@ namespace UniversityAdminApp.Controllers } [HttpPost] - public void CreateStudyList(string name, DateTime date ) + public void CreateStudyList(string name, DateTime date, int teacherId ) { if (APIAdmin.Admin == null) { throw new Exception("Вы как сюда попали? Сюда вход только авторизованным"); } - if (string.IsNullOrEmpty(name) || date == DateTime.MinValue) + if (string.IsNullOrEmpty(name) || date == DateTime.MinValue || teacherId < 0) { throw new Exception("Ошибка в введенных данных"); } APIAdmin.PostRequest("api/studyList/createstudyList", new StudyListBindingModel { + AdminId = APIAdmin.Admin.Id, + TeacherId = teacherId, Name = name, Date = date }); @@ -443,13 +445,13 @@ namespace UniversityAdminApp.Controllers } [HttpPost] - public void UpdateStudyList(int studyListId, string name, DateTime date) + public void UpdateStudyList(int studyListId, string name, DateTime date, int teacherId) { if (APIAdmin.Admin == null) { throw new Exception("Вы как сюда попали? Сюда вход только авторизованным"); } - if (string.IsNullOrEmpty(name) || date == DateTime.MinValue) + if (string.IsNullOrEmpty(name) || date == DateTime.MinValue || teacherId < 0) { throw new Exception("Ошибка в введенных данных"); } @@ -457,8 +459,10 @@ namespace UniversityAdminApp.Controllers APIAdmin.PostRequest("api/studyList/updatestudyList?isconnection=false", new StudyListBindingModel { Id = studyListId, + TeacherId = teacherId, Name = name, - Date = date + Date = date, + AdminId = APIAdmin.Admin.Id }); Response.Redirect("Index"); } diff --git a/University/UniversityAdminApp/UniversityAdminApp.csproj b/University/UniversityAdminApp/UniversityAdminApp.csproj index 3254672..03794c1 100644 --- a/University/UniversityAdminApp/UniversityAdminApp.csproj +++ b/University/UniversityAdminApp/UniversityAdminApp.csproj @@ -8,6 +8,11 @@ + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/University/UniversityAdminApp/appsettings.json b/University/UniversityAdminApp/appsettings.json index 10f68b8..4d33afa 100644 --- a/University/UniversityAdminApp/appsettings.json +++ b/University/UniversityAdminApp/appsettings.json @@ -5,5 +5,6 @@ "Microsoft.AspNetCore": "Warning" } }, + "IPAddress": "https://localhost:8080", "AllowedHosts": "*" } diff --git a/University/UniversityContracts/BindingModels/StudyListBindingModel.cs b/University/UniversityContracts/BindingModels/StudyListBindingModel.cs index 3bcdd7e..65dec6b 100644 --- a/University/UniversityContracts/BindingModels/StudyListBindingModel.cs +++ b/University/UniversityContracts/BindingModels/StudyListBindingModel.cs @@ -13,5 +13,6 @@ namespace UniversityContracts.BindingModels public int AdminId { get; set; } public string Name { get; set; } = string.Empty; public DateTime Date { get; set; } + public int TeacherId { get; set; } } } diff --git a/University/UniversityContracts/SearchModels/StudyListSearchModel.cs b/University/UniversityContracts/SearchModels/StudyListSearchModel.cs index febd2dc..11b1769 100644 --- a/University/UniversityContracts/SearchModels/StudyListSearchModel.cs +++ b/University/UniversityContracts/SearchModels/StudyListSearchModel.cs @@ -10,6 +10,7 @@ namespace UniversityContracts.SearchModels { public int? Id { get; set; } public int? AdminId { get; set; } + public int? TeacherId { get; set; } public string? Name { get; set; } public DateTime? Date { get; set; } } diff --git a/University/UniversityContracts/ViewModels/StudyListViewModel.cs b/University/UniversityContracts/ViewModels/StudyListViewModel.cs index 414ce69..adfc451 100644 --- a/University/UniversityContracts/ViewModels/StudyListViewModel.cs +++ b/University/UniversityContracts/ViewModels/StudyListViewModel.cs @@ -12,6 +12,7 @@ namespace UniversityContracts.ViewModels { public int Id { get; set; } public int AdminId { get; set; } + public int TeacherId { get; set; } [DisplayName("ФИО Преподователя")] public string TeacherFIO { get; set; } = string.Empty; diff --git a/University/UniversityDataModels/Models/IStudyListModel.cs b/University/UniversityDataModels/Models/IStudyListModel.cs index a6d881b..c626a2d 100644 --- a/University/UniversityDataModels/Models/IStudyListModel.cs +++ b/University/UniversityDataModels/Models/IStudyListModel.cs @@ -9,6 +9,7 @@ namespace UniversityDataModels.Models public interface IStudyListModel: IId { int AdminId { get; } + int TeacherId { get; } string Name { get; } DateTime Date { get; } } diff --git a/University/UniversityDatabaseImplement/Implements/StudyListStorage.cs b/University/UniversityDatabaseImplement/Implements/StudyListStorage.cs index 7373e2a..33c521b 100644 --- a/University/UniversityDatabaseImplement/Implements/StudyListStorage.cs +++ b/University/UniversityDatabaseImplement/Implements/StudyListStorage.cs @@ -47,6 +47,7 @@ namespace UniversityDatabaseImplement.Implements return context.StudyLists.Include(x => x.Teacher).Where(x => ((!model.Id.HasValue || x.Id == model.Id) && (!model.AdminId.HasValue || x.AdminId == model.AdminId) + && (!model.TeacherId.HasValue || x.TeacherId == model.TeacherId) && (model.Date.HasValue || x.Date == model.Date) && (!string.IsNullOrEmpty(model.Name) || x.Name == model.Name))) .Select(x => x.GetViewModel).ToList(); diff --git a/University/UniversityDatabaseImplement/Migrations/20240501151724_InitMirgation.cs b/University/UniversityDatabaseImplement/Migrations/20240501151724_InitMirgation.cs deleted file mode 100644 index 1be6fa4..0000000 --- a/University/UniversityDatabaseImplement/Migrations/20240501151724_InitMirgation.cs +++ /dev/null @@ -1,392 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace UniversityDatabaseImplement.Migrations -{ - /// - public partial class InitMirgation : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "Admins", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - AdminFIO = table.Column(type: "nvarchar(max)", nullable: false), - Login = table.Column(type: "nvarchar(max)", nullable: false), - PhoneNumber = table.Column(type: "nvarchar(max)", nullable: false), - Password = table.Column(type: "nvarchar(max)", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Admins", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Disciplines", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - Name = table.Column(type: "nvarchar(max)", nullable: false), - Description = table.Column(type: "nvarchar(max)", nullable: false), - CountHours = table.Column(type: "int", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Disciplines", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Secretaries", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - SecretaryFIO = table.Column(type: "nvarchar(max)", nullable: false), - Login = table.Column(type: "nvarchar(max)", nullable: false), - Password = table.Column(type: "nvarchar(max)", nullable: false), - PhoneNumber = table.Column(type: "nvarchar(max)", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Secretaries", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Teachers", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - TeacherFIO = table.Column(type: "nvarchar(max)", nullable: false), - Email = table.Column(type: "nvarchar(max)", nullable: false), - PhoneNumber = table.Column(type: "nvarchar(max)", nullable: false), - Position = table.Column(type: "nvarchar(max)", nullable: false), - AcademicDegree = table.Column(type: "nvarchar(max)", nullable: false), - AdminId = table.Column(type: "int", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_Teachers", x => x.Id); - table.ForeignKey( - name: "FK_Teachers_Admins_AdminId", - column: x => x.AdminId, - principalTable: "Admins", - principalColumn: "Id"); - }); - - migrationBuilder.CreateTable( - name: "EducationPlans", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - EducationPlanName = table.Column(type: "nvarchar(max)", nullable: false), - SecretaryId = table.Column(type: "int", nullable: false), - DateStart = table.Column(type: "datetime2", nullable: false), - DateEnd = table.Column(type: "datetime2", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_EducationPlans", x => x.Id); - table.ForeignKey( - name: "FK_EducationPlans_Secretaries_SecretaryId", - column: x => x.SecretaryId, - principalTable: "Secretaries", - principalColumn: "Id", - onDelete: ReferentialAction.Restrict); - }); - - migrationBuilder.CreateTable( - name: "Students", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - StudentFIO = table.Column(type: "nvarchar(max)", nullable: false), - SecretaryId = table.Column(type: "int", nullable: false), - Email = table.Column(type: "nvarchar(max)", nullable: false), - PhoneNumber = table.Column(type: "nvarchar(max)", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Students", x => x.Id); - table.ForeignKey( - name: "FK_Students_Secretaries_SecretaryId", - column: x => x.SecretaryId, - principalTable: "Secretaries", - principalColumn: "Id", - onDelete: ReferentialAction.Restrict); - }); - - migrationBuilder.CreateTable( - name: "StudyLists", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - Name = table.Column(type: "nvarchar(max)", nullable: false), - Date = table.Column(type: "datetime2", nullable: false), - TeacherId = table.Column(type: "int", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_StudyLists", x => x.Id); - table.ForeignKey( - name: "FK_StudyLists_Teachers_TeacherId", - column: x => x.TeacherId, - principalTable: "Teachers", - principalColumn: "Id"); - }); - - migrationBuilder.CreateTable( - name: "TeacherDisciplines", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - TeacherId = table.Column(type: "int", nullable: false), - DisciplineId = table.Column(type: "int", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_TeacherDisciplines", x => x.Id); - table.ForeignKey( - name: "FK_TeacherDisciplines_Disciplines_DisciplineId", - column: x => x.DisciplineId, - principalTable: "Disciplines", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_TeacherDisciplines_Teachers_TeacherId", - column: x => x.TeacherId, - principalTable: "Teachers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "EducationPlanTeachers", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - EducationPlanId = table.Column(type: "int", nullable: false), - TeacherId = table.Column(type: "int", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_EducationPlanTeachers", x => x.Id); - table.ForeignKey( - name: "FK_EducationPlanTeachers_EducationPlans_EducationPlanId", - column: x => x.EducationPlanId, - principalTable: "EducationPlans", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_EducationPlanTeachers_Teachers_TeacherId", - column: x => x.TeacherId, - principalTable: "Teachers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "Certifications", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - StudentId = table.Column(type: "int", nullable: false), - SecretaryId = table.Column(type: "int", nullable: false), - Type = table.Column(type: "int", nullable: false), - Mark = table.Column(type: "int", nullable: false), - CertificationDate = table.Column(type: "datetime2", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Certifications", x => x.Id); - table.ForeignKey( - name: "FK_Certifications_Students_StudentId", - column: x => x.StudentId, - principalTable: "Students", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_Certifications_Secretaries_SecretaryId", - column: x => x.SecretaryId, - principalTable: "Secretaries", - principalColumn: "Id", - onDelete: ReferentialAction.Restrict); - }); - - migrationBuilder.CreateTable( - name: "DisciplineStudents", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - DisciplineId = table.Column(type: "int", nullable: false), - StudentId = table.Column(type: "int", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_DisciplineStudents", x => x.Id); - table.ForeignKey( - name: "FK_DisciplineStudents_Disciplines_DisciplineId", - column: x => x.DisciplineId, - principalTable: "Disciplines", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_DisciplineStudents_Students_StudentId", - column: x => x.StudentId, - principalTable: "Students", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "StudentEducationPlans", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - StudentId = table.Column(type: "int", nullable: false), - EducationPlanId = table.Column(type: "int", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_StudentEducationPlans", x => x.Id); - table.ForeignKey( - name: "FK_StudentEducationPlans_EducationPlans_EducationPlanId", - column: x => x.EducationPlanId, - principalTable: "EducationPlans", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_StudentEducationPlans_Students_StudentId", - column: x => x.StudentId, - principalTable: "Students", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_Certifications_SecretaryId", - table: "Certifications", - column: "SecretaryId"); - - migrationBuilder.CreateIndex( - name: "IX_Certifications_StudentId", - table: "Certifications", - column: "StudentId"); - - migrationBuilder.CreateIndex( - name: "IX_DisciplineStudents_DisciplineId", - table: "DisciplineStudents", - column: "DisciplineId"); - - migrationBuilder.CreateIndex( - name: "IX_DisciplineStudents_StudentId", - table: "DisciplineStudents", - column: "StudentId"); - - migrationBuilder.CreateIndex( - name: "IX_EducationPlans_SecretaryId", - table: "EducationPlans", - column: "SecretaryId"); - - migrationBuilder.CreateIndex( - name: "IX_EducationPlanTeachers_EducationPlanId", - table: "EducationPlanTeachers", - column: "EducationPlanId"); - - migrationBuilder.CreateIndex( - name: "IX_EducationPlanTeachers_TeacherId", - table: "EducationPlanTeachers", - column: "TeacherId"); - - migrationBuilder.CreateIndex( - name: "IX_StudentEducationPlans_EducationPlanId", - table: "StudentEducationPlans", - column: "EducationPlanId"); - - migrationBuilder.CreateIndex( - name: "IX_StudentEducationPlans_StudentId", - table: "StudentEducationPlans", - column: "StudentId"); - - migrationBuilder.CreateIndex( - name: "IX_Students_SecretaryId", - table: "Students", - column: "SecretaryId"); - - migrationBuilder.CreateIndex( - name: "IX_StudyLists_TeacherId", - table: "StudyLists", - column: "TeacherId"); - - migrationBuilder.CreateIndex( - name: "IX_TeacherDisciplines_DisciplineId", - table: "TeacherDisciplines", - column: "DisciplineId"); - - migrationBuilder.CreateIndex( - name: "IX_TeacherDisciplines_TeacherId", - table: "TeacherDisciplines", - column: "TeacherId"); - - migrationBuilder.CreateIndex( - name: "IX_Teachers_AdminId", - table: "Teachers", - column: "AdminId"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "Certifications"); - - migrationBuilder.DropTable( - name: "DisciplineStudents"); - - migrationBuilder.DropTable( - name: "EducationPlanTeachers"); - - migrationBuilder.DropTable( - name: "StudentEducationPlans"); - - migrationBuilder.DropTable( - name: "StudyLists"); - - migrationBuilder.DropTable( - name: "TeacherDisciplines"); - - migrationBuilder.DropTable( - name: "EducationPlans"); - - migrationBuilder.DropTable( - name: "Students"); - - migrationBuilder.DropTable( - name: "Disciplines"); - - migrationBuilder.DropTable( - name: "Teachers"); - - migrationBuilder.DropTable( - name: "Secretaries"); - - migrationBuilder.DropTable( - name: "Admins"); - } - } -} diff --git a/University/UniversityDatabaseImplement/Migrations/20240523164132_InitialCreate.Designer.cs b/University/UniversityDatabaseImplement/Migrations/20240524083513_InitialCreate.Designer.cs similarity index 99% rename from University/UniversityDatabaseImplement/Migrations/20240523164132_InitialCreate.Designer.cs rename to University/UniversityDatabaseImplement/Migrations/20240524083513_InitialCreate.Designer.cs index 1d07d9b..6a8b668 100644 --- a/University/UniversityDatabaseImplement/Migrations/20240523164132_InitialCreate.Designer.cs +++ b/University/UniversityDatabaseImplement/Migrations/20240524083513_InitialCreate.Designer.cs @@ -12,7 +12,7 @@ using UniversityDatabaseImplement; namespace UniversityDatabaseImplement.Migrations { [DbContext(typeof(UniversityDatabase))] - [Migration("20240523164132_InitialCreate")] + [Migration("20240524083513_InitialCreate")] partial class InitialCreate { /// diff --git a/University/UniversityDatabaseImplement/Migrations/20240523164132_InitialCreate.cs b/University/UniversityDatabaseImplement/Migrations/20240524083513_InitialCreate.cs similarity index 100% rename from University/UniversityDatabaseImplement/Migrations/20240523164132_InitialCreate.cs rename to University/UniversityDatabaseImplement/Migrations/20240524083513_InitialCreate.cs diff --git a/University/UniversityDatabaseImplement/Migrations/20240501151724_InitMirgation.Designer.cs b/University/UniversityDatabaseImplement/Migrations/20240524085350_UpdateDeleteBehavior.Designer.cs similarity index 90% rename from University/UniversityDatabaseImplement/Migrations/20240501151724_InitMirgation.Designer.cs rename to University/UniversityDatabaseImplement/Migrations/20240524085350_UpdateDeleteBehavior.Designer.cs index e7f2a1d..c651b84 100644 --- a/University/UniversityDatabaseImplement/Migrations/20240501151724_InitMirgation.Designer.cs +++ b/University/UniversityDatabaseImplement/Migrations/20240524085350_UpdateDeleteBehavior.Designer.cs @@ -12,8 +12,8 @@ using UniversityDatabaseImplement; namespace UniversityDatabaseImplement.Migrations { [DbContext(typeof(UniversityDatabase))] - [Migration("20240501151724_InitMirgation")] - partial class InitMirgation + [Migration("20240524085350_UpdateDeleteBehavior")] + partial class UpdateDeleteBehavior { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -94,6 +94,9 @@ namespace UniversityDatabaseImplement.Migrations SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + b.Property("AdminId") + .HasColumnType("int"); + b.Property("CountHours") .HasColumnType("int"); @@ -107,6 +110,8 @@ namespace UniversityDatabaseImplement.Migrations b.HasKey("Id"); + b.HasIndex("AdminId"); + b.ToTable("Disciplines"); }); @@ -274,6 +279,9 @@ namespace UniversityDatabaseImplement.Migrations SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + b.Property("AdminId") + .HasColumnType("int"); + b.Property("Date") .HasColumnType("datetime2"); @@ -281,11 +289,13 @@ namespace UniversityDatabaseImplement.Migrations .IsRequired() .HasColumnType("nvarchar(max)"); - b.Property("TeacherId") + b.Property("TeacherId") .HasColumnType("int"); b.HasKey("Id"); + b.HasIndex("AdminId"); + b.HasIndex("TeacherId"); b.ToTable("StudyLists"); @@ -303,7 +313,7 @@ namespace UniversityDatabaseImplement.Migrations .IsRequired() .HasColumnType("nvarchar(max)"); - b.Property("AdminId") + b.Property("AdminId") .HasColumnType("int"); b.Property("Email") @@ -371,10 +381,21 @@ namespace UniversityDatabaseImplement.Migrations b.Navigation("Student"); }); + modelBuilder.Entity("UniversityDatabaseImplement.Models.Discipline", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Admin", "Admin") + .WithMany("Disciplines") + .HasForeignKey("AdminId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Admin"); + }); + modelBuilder.Entity("UniversityDatabaseImplement.Models.DisciplineStudent", b => { b.HasOne("UniversityDatabaseImplement.Models.Discipline", "Discipline") - .WithMany("DisciplineStudents") + .WithMany("Students") .HasForeignKey("DisciplineId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); @@ -452,28 +473,44 @@ namespace UniversityDatabaseImplement.Migrations modelBuilder.Entity("UniversityDatabaseImplement.Models.StudyList", b => { - b.HasOne("UniversityDatabaseImplement.Models.Teacher", null) + b.HasOne("UniversityDatabaseImplement.Models.Admin", "Admin") .WithMany("StudyLists") - .HasForeignKey("TeacherId"); + .HasForeignKey("AdminId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("UniversityDatabaseImplement.Models.Teacher", "Teacher") + .WithMany("StudyLists") + .HasForeignKey("TeacherId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Admin"); + + b.Navigation("Teacher"); }); modelBuilder.Entity("UniversityDatabaseImplement.Models.Teacher", b => { - b.HasOne("UniversityDatabaseImplement.Models.Admin", null) + b.HasOne("UniversityDatabaseImplement.Models.Admin", "Admin") .WithMany("Teachers") - .HasForeignKey("AdminId"); + .HasForeignKey("AdminId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Admin"); }); modelBuilder.Entity("UniversityDatabaseImplement.Models.TeacherDiscipline", b => { b.HasOne("UniversityDatabaseImplement.Models.Discipline", "Discipline") - .WithMany("Teachers") + .WithMany() .HasForeignKey("DisciplineId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("UniversityDatabaseImplement.Models.Teacher", "Teacher") - .WithMany() + .WithMany("Disciplines") .HasForeignKey("TeacherId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); @@ -485,14 +522,16 @@ namespace UniversityDatabaseImplement.Migrations modelBuilder.Entity("UniversityDatabaseImplement.Models.Admin", b => { + b.Navigation("Disciplines"); + + b.Navigation("StudyLists"); + b.Navigation("Teachers"); }); modelBuilder.Entity("UniversityDatabaseImplement.Models.Discipline", b => { - b.Navigation("DisciplineStudents"); - - b.Navigation("Teachers"); + b.Navigation("Students"); }); modelBuilder.Entity("UniversityDatabaseImplement.Models.EducationPlan", b => @@ -520,6 +559,8 @@ namespace UniversityDatabaseImplement.Migrations modelBuilder.Entity("UniversityDatabaseImplement.Models.Teacher", b => { + b.Navigation("Disciplines"); + b.Navigation("StudyLists"); }); #pragma warning restore 612, 618 diff --git a/University/UniversityDatabaseImplement/Migrations/20240524085350_UpdateDeleteBehavior.cs b/University/UniversityDatabaseImplement/Migrations/20240524085350_UpdateDeleteBehavior.cs new file mode 100644 index 0000000..369f3f5 --- /dev/null +++ b/University/UniversityDatabaseImplement/Migrations/20240524085350_UpdateDeleteBehavior.cs @@ -0,0 +1,22 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace UniversityDatabaseImplement.Migrations +{ + /// + public partial class UpdateDeleteBehavior : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + + } + } +} diff --git a/University/UniversityDatabaseImplement/Migrations/UniversityDatabaseModelSnapshot.cs b/University/UniversityDatabaseImplement/Migrations/UniversityDatabaseModelSnapshot.cs index 0eb8d23..eeb881e 100644 --- a/University/UniversityDatabaseImplement/Migrations/UniversityDatabaseModelSnapshot.cs +++ b/University/UniversityDatabaseImplement/Migrations/UniversityDatabaseModelSnapshot.cs @@ -91,6 +91,9 @@ namespace UniversityDatabaseImplement.Migrations SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + b.Property("AdminId") + .HasColumnType("int"); + b.Property("CountHours") .HasColumnType("int"); @@ -104,6 +107,8 @@ namespace UniversityDatabaseImplement.Migrations b.HasKey("Id"); + b.HasIndex("AdminId"); + b.ToTable("Disciplines"); }); @@ -271,6 +276,9 @@ namespace UniversityDatabaseImplement.Migrations SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + b.Property("AdminId") + .HasColumnType("int"); + b.Property("Date") .HasColumnType("datetime2"); @@ -278,11 +286,13 @@ namespace UniversityDatabaseImplement.Migrations .IsRequired() .HasColumnType("nvarchar(max)"); - b.Property("TeacherId") + b.Property("TeacherId") .HasColumnType("int"); b.HasKey("Id"); + b.HasIndex("AdminId"); + b.HasIndex("TeacherId"); b.ToTable("StudyLists"); @@ -300,7 +310,7 @@ namespace UniversityDatabaseImplement.Migrations .IsRequired() .HasColumnType("nvarchar(max)"); - b.Property("AdminId") + b.Property("AdminId") .HasColumnType("int"); b.Property("Email") @@ -368,10 +378,21 @@ namespace UniversityDatabaseImplement.Migrations b.Navigation("Student"); }); + modelBuilder.Entity("UniversityDatabaseImplement.Models.Discipline", b => + { + b.HasOne("UniversityDatabaseImplement.Models.Admin", "Admin") + .WithMany("Disciplines") + .HasForeignKey("AdminId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Admin"); + }); + modelBuilder.Entity("UniversityDatabaseImplement.Models.DisciplineStudent", b => { b.HasOne("UniversityDatabaseImplement.Models.Discipline", "Discipline") - .WithMany("DisciplineStudents") + .WithMany("Students") .HasForeignKey("DisciplineId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); @@ -449,28 +470,44 @@ namespace UniversityDatabaseImplement.Migrations modelBuilder.Entity("UniversityDatabaseImplement.Models.StudyList", b => { - b.HasOne("UniversityDatabaseImplement.Models.Teacher", null) + b.HasOne("UniversityDatabaseImplement.Models.Admin", "Admin") .WithMany("StudyLists") - .HasForeignKey("TeacherId"); + .HasForeignKey("AdminId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("UniversityDatabaseImplement.Models.Teacher", "Teacher") + .WithMany("StudyLists") + .HasForeignKey("TeacherId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Admin"); + + b.Navigation("Teacher"); }); modelBuilder.Entity("UniversityDatabaseImplement.Models.Teacher", b => { - b.HasOne("UniversityDatabaseImplement.Models.Admin", null) + b.HasOne("UniversityDatabaseImplement.Models.Admin", "Admin") .WithMany("Teachers") - .HasForeignKey("AdminId"); + .HasForeignKey("AdminId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Admin"); }); modelBuilder.Entity("UniversityDatabaseImplement.Models.TeacherDiscipline", b => { b.HasOne("UniversityDatabaseImplement.Models.Discipline", "Discipline") - .WithMany("Teachers") + .WithMany() .HasForeignKey("DisciplineId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("UniversityDatabaseImplement.Models.Teacher", "Teacher") - .WithMany() + .WithMany("Disciplines") .HasForeignKey("TeacherId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); @@ -482,14 +519,16 @@ namespace UniversityDatabaseImplement.Migrations modelBuilder.Entity("UniversityDatabaseImplement.Models.Admin", b => { + b.Navigation("Disciplines"); + + b.Navigation("StudyLists"); + b.Navigation("Teachers"); }); modelBuilder.Entity("UniversityDatabaseImplement.Models.Discipline", b => { - b.Navigation("DisciplineStudents"); - - b.Navigation("Teachers"); + b.Navigation("Students"); }); modelBuilder.Entity("UniversityDatabaseImplement.Models.EducationPlan", b => @@ -517,6 +556,8 @@ namespace UniversityDatabaseImplement.Migrations modelBuilder.Entity("UniversityDatabaseImplement.Models.Teacher", b => { + b.Navigation("Disciplines"); + b.Navigation("StudyLists"); }); #pragma warning restore 612, 618 diff --git a/University/UniversityDatabaseImplement/Models/StudyList.cs b/University/UniversityDatabaseImplement/Models/StudyList.cs index cae15af..4bede72 100644 --- a/University/UniversityDatabaseImplement/Models/StudyList.cs +++ b/University/UniversityDatabaseImplement/Models/StudyList.cs @@ -35,10 +35,11 @@ namespace UniversityDatabaseImplement.Models return null; } - return new StudyList() + return new StudyList() { Id = model.Id, AdminId = model.AdminId, + TeacherId = model.TeacherId, Name = model.Name, Date = model.Date, Admin = context.Admins.First(x => x.Id == model.AdminId) @@ -51,6 +52,7 @@ namespace UniversityDatabaseImplement.Models return; } AdminId = model.AdminId; + TeacherId = model.TeacherId; Name = model.Name; Date = model.Date; } @@ -58,6 +60,7 @@ namespace UniversityDatabaseImplement.Models { Id = Id, AdminId = AdminId, + TeacherId = TeacherId, Name = Name, Date = Date, TeacherFIO = Teacher?.TeacherFIO ?? string.Empty