diff --git a/Hospital/HospitalContracts/BindingModels/PatientBindingModel.cs b/Hospital/HospitalContracts/BindingModels/PatientBindingModel.cs index c23f176..715fe48 100644 --- a/Hospital/HospitalContracts/BindingModels/PatientBindingModel.cs +++ b/Hospital/HospitalContracts/BindingModels/PatientBindingModel.cs @@ -15,7 +15,7 @@ namespace HospitalContracts.BindingModels public string Address { get; set; } = string.Empty; - public DateOnly BirthDate { get; set; } + public DateTime BirthDate { get; set; } public int DoctorId { get; set; } diff --git a/Hospital/HospitalContracts/SearchModels/PatientSearchModel.cs b/Hospital/HospitalContracts/SearchModels/PatientSearchModel.cs index e7c2dff..cf0bb44 100644 --- a/Hospital/HospitalContracts/SearchModels/PatientSearchModel.cs +++ b/Hospital/HospitalContracts/SearchModels/PatientSearchModel.cs @@ -14,7 +14,7 @@ namespace HospitalContracts.SearchModels public string? Adress { get; set; } - public DateOnly? BirthDate { get; set; } + public DateTime? BirthDate { get; set; } public int? DoctorId { get; set; } public DateTime? DateFrom { get; set; } diff --git a/Hospital/HospitalContracts/ViewModels/PatientViewModel.cs b/Hospital/HospitalContracts/ViewModels/PatientViewModel.cs index c8f93be..a4ca970 100644 --- a/Hospital/HospitalContracts/ViewModels/PatientViewModel.cs +++ b/Hospital/HospitalContracts/ViewModels/PatientViewModel.cs @@ -16,7 +16,7 @@ namespace HospitalContracts.ViewModels public string FIO { get; set; } = string.Empty; [DisplayName("Дата рождения")] - public DateOnly BirthDate { get; set; } = new DateOnly(Int32.Parse("2000"), Int32.Parse("01"), Int32.Parse("01")); + public DateTime BirthDate { get; set; } = new DateTime(Int32.Parse("2000"), Int32.Parse("01"), Int32.Parse("01")); [DisplayName("Адрес")] public string Address { get; set; } = string.Empty; diff --git a/Hospital/HospitalDataModels/Models/IPatientModel.cs b/Hospital/HospitalDataModels/Models/IPatientModel.cs index 003b52e..67783c5 100644 --- a/Hospital/HospitalDataModels/Models/IPatientModel.cs +++ b/Hospital/HospitalDataModels/Models/IPatientModel.cs @@ -9,7 +9,7 @@ namespace HospitalDataModels.Models public interface IPatientModel : IId { string FIO { get; } - DateOnly BirthDate { get; } + DateTime BirthDate { get; } string Address { get; } int DoctorId { get; } Dictionary PatientProcedures { get; } diff --git a/Hospital/HospitalDatabaseImplement/Migrations/20240429103652_CreateMigration.Designer.cs b/Hospital/HospitalDatabaseImplement/Migrations/20240429103652_CreateMigration.Designer.cs new file mode 100644 index 0000000..7efd139 --- /dev/null +++ b/Hospital/HospitalDatabaseImplement/Migrations/20240429103652_CreateMigration.Designer.cs @@ -0,0 +1,450 @@ +// +using System; +using HospitalDatabaseImplement; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace HospitalDatabaseImplement.Migrations +{ + [DbContext(typeof(HospitalDatabase))] + [Migration("20240429103652_CreateMigration")] + partial class CreateMigration + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.17") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Disease", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Description") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("DoctorId") + .HasColumnType("int"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("DoctorId"); + + b.ToTable("Diseases"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Doctor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("FIO") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Login") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("MailAddress") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("PhoneNumber") + .IsRequired() + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.HasKey("Id"); + + b.ToTable("Doctors"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Patient", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Address") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("DoctorId") + .HasColumnType("int"); + + b.Property("FIO") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("DoctorId"); + + b.ToTable("Patients"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.PatientProcedure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("PatientId") + .HasColumnType("int"); + + b.Property("ProcedureId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("PatientId"); + + b.HasIndex("ProcedureId"); + + b.ToTable("PatientProcedures"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.PatientRecipe", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("PatientId") + .HasColumnType("int"); + + b.Property("RecipeId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("PatientId"); + + b.HasIndex("RecipeId"); + + b.ToTable("PatientRecipes"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.RecipeMedicine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("MedicineId") + .HasColumnType("int"); + + b.Property("RecipeId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("MedicineId"); + + b.HasIndex("RecipeId"); + + b.ToTable("RecipeMedicines"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Medicine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CountryOrigin") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("PharmacistId") + .HasColumnType("int"); + + b.Property("Price") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.ToTable("Medicines"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Procedure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); + + b.ToTable("Procedures"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.ProcedureMedicine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("MedicineId") + .HasColumnType("int"); + + b.Property("ProcedureId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("MedicineId"); + + b.HasIndex("ProcedureId"); + + b.ToTable("ProcedureMedicines"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Recipe", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DiseaseId") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("int"); + + b.Property("IssueDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("DiseaseId"); + + b.HasIndex("DoctorId"); + + b.ToTable("Recipes"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Disease", b => + { + b.HasOne("HospitalDatabaseImplement.Models.Doctor", "Doctor") + .WithMany("Diseases") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Patient", b => + { + b.HasOne("HospitalDatabaseImplement.Models.Doctor", "Doctor") + .WithMany("Patients") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.PatientProcedure", b => + { + b.HasOne("HospitalDatabaseImplement.Models.Patient", "Patient") + .WithMany("Procedures") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HospitalDatabaseImplement.Modelss.Procedure", "Procedure") + .WithMany("PatientProcedures") + .HasForeignKey("ProcedureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Patient"); + + b.Navigation("Procedure"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.PatientRecipe", b => + { + b.HasOne("HospitalDatabaseImplement.Models.Patient", "Patient") + .WithMany("Recipes") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HospitalDatabaseImplement.Modelss.Recipe", "Recipe") + .WithMany() + .HasForeignKey("RecipeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Patient"); + + b.Navigation("Recipe"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.RecipeMedicine", b => + { + b.HasOne("HospitalDatabaseImplement.Modelss.Medicine", "Medicine") + .WithMany("RecipeMedicines") + .HasForeignKey("MedicineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HospitalDatabaseImplement.Modelss.Recipe", "Recipe") + .WithMany("Medicines") + .HasForeignKey("RecipeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Medicine"); + + b.Navigation("Recipe"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.ProcedureMedicine", b => + { + b.HasOne("HospitalDatabaseImplement.Modelss.Medicine", "Medicine") + .WithMany() + .HasForeignKey("MedicineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HospitalDatabaseImplement.Modelss.Procedure", "Procedure") + .WithMany("Medicines") + .HasForeignKey("ProcedureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Medicine"); + + b.Navigation("Procedure"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Recipe", b => + { + b.HasOne("HospitalDatabaseImplement.Models.Disease", "Disease") + .WithMany("Recipes") + .HasForeignKey("DiseaseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HospitalDatabaseImplement.Models.Doctor", "Doctor") + .WithMany("Recipes") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Disease"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Disease", b => + { + b.Navigation("Recipes"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Doctor", b => + { + b.Navigation("Diseases"); + + b.Navigation("Patients"); + + b.Navigation("Recipes"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Patient", b => + { + b.Navigation("Procedures"); + + b.Navigation("Recipes"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Medicine", b => + { + b.Navigation("RecipeMedicines"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Procedure", b => + { + b.Navigation("Medicines"); + + b.Navigation("PatientProcedures"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Recipe", b => + { + b.Navigation("Medicines"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Hospital/HospitalDatabaseImplement/Migrations/20240429103652_CreateMigration.cs b/Hospital/HospitalDatabaseImplement/Migrations/20240429103652_CreateMigration.cs new file mode 100644 index 0000000..0a972e4 --- /dev/null +++ b/Hospital/HospitalDatabaseImplement/Migrations/20240429103652_CreateMigration.cs @@ -0,0 +1,330 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace HospitalDatabaseImplement.Migrations +{ + /// + public partial class CreateMigration : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Doctors", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + Login = table.Column(type: "nvarchar(25)", maxLength: 25, nullable: false), + PhoneNumber = table.Column(type: "nvarchar(11)", maxLength: 11, nullable: false), + Password = table.Column(type: "nvarchar(30)", maxLength: 30, nullable: false), + FIO = table.Column(type: "nvarchar(30)", maxLength: 30, nullable: false), + MailAddress = table.Column(type: "nvarchar(30)", maxLength: 30, nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Doctors", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Medicines", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + Name = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false), + CountryOrigin = table.Column(type: "nvarchar(max)", nullable: false), + Price = table.Column(type: "float", nullable: false), + PharmacistId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Medicines", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Procedures", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + Name = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Procedures", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Diseases", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + DoctorId = table.Column(type: "int", nullable: false), + Name = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false), + Description = table.Column(type: "nvarchar(150)", maxLength: 150, nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Diseases", x => x.Id); + table.ForeignKey( + name: "FK_Diseases_Doctors_DoctorId", + column: x => x.DoctorId, + principalTable: "Doctors", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Patients", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + DoctorId = table.Column(type: "int", nullable: false), + FIO = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false), + Address = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false), + BirthDate = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Patients", x => x.Id); + table.ForeignKey( + name: "FK_Patients_Doctors_DoctorId", + column: x => x.DoctorId, + principalTable: "Doctors", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "ProcedureMedicines", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + ProcedureId = table.Column(type: "int", nullable: false), + MedicineId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ProcedureMedicines", x => x.Id); + table.ForeignKey( + name: "FK_ProcedureMedicines_Medicines_MedicineId", + column: x => x.MedicineId, + principalTable: "Medicines", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_ProcedureMedicines_Procedures_ProcedureId", + column: x => x.ProcedureId, + principalTable: "Procedures", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Recipes", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + DoctorId = table.Column(type: "int", nullable: false), + DiseaseId = table.Column(type: "int", nullable: false), + IssueDate = table.Column(type: "datetime2", nullable: false), + Description = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Recipes", x => x.Id); + table.ForeignKey( + name: "FK_Recipes_Diseases_DiseaseId", + column: x => x.DiseaseId, + principalTable: "Diseases", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Recipes_Doctors_DoctorId", + column: x => x.DoctorId, + principalTable: "Doctors", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "PatientProcedures", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + PatientId = table.Column(type: "int", nullable: false), + ProcedureId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_PatientProcedures", x => x.Id); + table.ForeignKey( + name: "FK_PatientProcedures_Patients_PatientId", + column: x => x.PatientId, + principalTable: "Patients", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_PatientProcedures_Procedures_ProcedureId", + column: x => x.ProcedureId, + principalTable: "Procedures", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "PatientRecipes", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + PatientId = table.Column(type: "int", nullable: false), + RecipeId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_PatientRecipes", x => x.Id); + table.ForeignKey( + name: "FK_PatientRecipes_Patients_PatientId", + column: x => x.PatientId, + principalTable: "Patients", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_PatientRecipes_Recipes_RecipeId", + column: x => x.RecipeId, + principalTable: "Recipes", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "RecipeMedicines", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + RecipeId = table.Column(type: "int", nullable: false), + MedicineId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_RecipeMedicines", x => x.Id); + table.ForeignKey( + name: "FK_RecipeMedicines_Medicines_MedicineId", + column: x => x.MedicineId, + principalTable: "Medicines", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_RecipeMedicines_Recipes_RecipeId", + column: x => x.RecipeId, + principalTable: "Recipes", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_Diseases_DoctorId", + table: "Diseases", + column: "DoctorId"); + + migrationBuilder.CreateIndex( + name: "IX_PatientProcedures_PatientId", + table: "PatientProcedures", + column: "PatientId"); + + migrationBuilder.CreateIndex( + name: "IX_PatientProcedures_ProcedureId", + table: "PatientProcedures", + column: "ProcedureId"); + + migrationBuilder.CreateIndex( + name: "IX_PatientRecipes_PatientId", + table: "PatientRecipes", + column: "PatientId"); + + migrationBuilder.CreateIndex( + name: "IX_PatientRecipes_RecipeId", + table: "PatientRecipes", + column: "RecipeId"); + + migrationBuilder.CreateIndex( + name: "IX_Patients_DoctorId", + table: "Patients", + column: "DoctorId"); + + migrationBuilder.CreateIndex( + name: "IX_ProcedureMedicines_MedicineId", + table: "ProcedureMedicines", + column: "MedicineId"); + + migrationBuilder.CreateIndex( + name: "IX_ProcedureMedicines_ProcedureId", + table: "ProcedureMedicines", + column: "ProcedureId"); + + migrationBuilder.CreateIndex( + name: "IX_RecipeMedicines_MedicineId", + table: "RecipeMedicines", + column: "MedicineId"); + + migrationBuilder.CreateIndex( + name: "IX_RecipeMedicines_RecipeId", + table: "RecipeMedicines", + column: "RecipeId"); + + migrationBuilder.CreateIndex( + name: "IX_Recipes_DiseaseId", + table: "Recipes", + column: "DiseaseId"); + + migrationBuilder.CreateIndex( + name: "IX_Recipes_DoctorId", + table: "Recipes", + column: "DoctorId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "PatientProcedures"); + + migrationBuilder.DropTable( + name: "PatientRecipes"); + + migrationBuilder.DropTable( + name: "ProcedureMedicines"); + + migrationBuilder.DropTable( + name: "RecipeMedicines"); + + migrationBuilder.DropTable( + name: "Patients"); + + migrationBuilder.DropTable( + name: "Procedures"); + + migrationBuilder.DropTable( + name: "Medicines"); + + migrationBuilder.DropTable( + name: "Recipes"); + + migrationBuilder.DropTable( + name: "Diseases"); + + migrationBuilder.DropTable( + name: "Doctors"); + } + } +} diff --git a/Hospital/HospitalDatabaseImplement/Migrations/HospitalDatabaseModelSnapshot.cs b/Hospital/HospitalDatabaseImplement/Migrations/HospitalDatabaseModelSnapshot.cs new file mode 100644 index 0000000..0ad6d37 --- /dev/null +++ b/Hospital/HospitalDatabaseImplement/Migrations/HospitalDatabaseModelSnapshot.cs @@ -0,0 +1,447 @@ +// +using System; +using HospitalDatabaseImplement; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace HospitalDatabaseImplement.Migrations +{ + [DbContext(typeof(HospitalDatabase))] + partial class HospitalDatabaseModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.17") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Disease", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Description") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("DoctorId") + .HasColumnType("int"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("DoctorId"); + + b.ToTable("Diseases"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Doctor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("FIO") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Login") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("MailAddress") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("PhoneNumber") + .IsRequired() + .HasMaxLength(11) + .HasColumnType("nvarchar(11)"); + + b.HasKey("Id"); + + b.ToTable("Doctors"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Patient", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Address") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("DoctorId") + .HasColumnType("int"); + + b.Property("FIO") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("DoctorId"); + + b.ToTable("Patients"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.PatientProcedure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("PatientId") + .HasColumnType("int"); + + b.Property("ProcedureId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("PatientId"); + + b.HasIndex("ProcedureId"); + + b.ToTable("PatientProcedures"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.PatientRecipe", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("PatientId") + .HasColumnType("int"); + + b.Property("RecipeId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("PatientId"); + + b.HasIndex("RecipeId"); + + b.ToTable("PatientRecipes"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.RecipeMedicine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("MedicineId") + .HasColumnType("int"); + + b.Property("RecipeId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("MedicineId"); + + b.HasIndex("RecipeId"); + + b.ToTable("RecipeMedicines"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Medicine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CountryOrigin") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("PharmacistId") + .HasColumnType("int"); + + b.Property("Price") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.ToTable("Medicines"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Procedure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); + + b.ToTable("Procedures"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.ProcedureMedicine", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("MedicineId") + .HasColumnType("int"); + + b.Property("ProcedureId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("MedicineId"); + + b.HasIndex("ProcedureId"); + + b.ToTable("ProcedureMedicines"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Recipe", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Description") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DiseaseId") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("int"); + + b.Property("IssueDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("DiseaseId"); + + b.HasIndex("DoctorId"); + + b.ToTable("Recipes"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Disease", b => + { + b.HasOne("HospitalDatabaseImplement.Models.Doctor", "Doctor") + .WithMany("Diseases") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Patient", b => + { + b.HasOne("HospitalDatabaseImplement.Models.Doctor", "Doctor") + .WithMany("Patients") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.PatientProcedure", b => + { + b.HasOne("HospitalDatabaseImplement.Models.Patient", "Patient") + .WithMany("Procedures") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HospitalDatabaseImplement.Modelss.Procedure", "Procedure") + .WithMany("PatientProcedures") + .HasForeignKey("ProcedureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Patient"); + + b.Navigation("Procedure"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.PatientRecipe", b => + { + b.HasOne("HospitalDatabaseImplement.Models.Patient", "Patient") + .WithMany("Recipes") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HospitalDatabaseImplement.Modelss.Recipe", "Recipe") + .WithMany() + .HasForeignKey("RecipeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Patient"); + + b.Navigation("Recipe"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.RecipeMedicine", b => + { + b.HasOne("HospitalDatabaseImplement.Modelss.Medicine", "Medicine") + .WithMany("RecipeMedicines") + .HasForeignKey("MedicineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HospitalDatabaseImplement.Modelss.Recipe", "Recipe") + .WithMany("Medicines") + .HasForeignKey("RecipeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Medicine"); + + b.Navigation("Recipe"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.ProcedureMedicine", b => + { + b.HasOne("HospitalDatabaseImplement.Modelss.Medicine", "Medicine") + .WithMany() + .HasForeignKey("MedicineId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HospitalDatabaseImplement.Modelss.Procedure", "Procedure") + .WithMany("Medicines") + .HasForeignKey("ProcedureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Medicine"); + + b.Navigation("Procedure"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Recipe", b => + { + b.HasOne("HospitalDatabaseImplement.Models.Disease", "Disease") + .WithMany("Recipes") + .HasForeignKey("DiseaseId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HospitalDatabaseImplement.Models.Doctor", "Doctor") + .WithMany("Recipes") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Disease"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Disease", b => + { + b.Navigation("Recipes"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Doctor", b => + { + b.Navigation("Diseases"); + + b.Navigation("Patients"); + + b.Navigation("Recipes"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Models.Patient", b => + { + b.Navigation("Procedures"); + + b.Navigation("Recipes"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Medicine", b => + { + b.Navigation("RecipeMedicines"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Procedure", b => + { + b.Navigation("Medicines"); + + b.Navigation("PatientProcedures"); + }); + + modelBuilder.Entity("HospitalDatabaseImplement.Modelss.Recipe", b => + { + b.Navigation("Medicines"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Hospital/HospitalDatabaseImplement/Models/Patient.cs b/Hospital/HospitalDatabaseImplement/Models/Patient.cs index de1b16e..28b7054 100644 --- a/Hospital/HospitalDatabaseImplement/Models/Patient.cs +++ b/Hospital/HospitalDatabaseImplement/Models/Patient.cs @@ -28,7 +28,7 @@ namespace HospitalDatabaseImplement.Models public string Address { get; set; } = string.Empty; [Required] - public DateOnly BirthDate { get; set; } + public DateTime BirthDate { get; set; } private Dictionary? _patientRecipes = null;