From c6d6d9080778d305872a8274e4cd4a413fb8a4db Mon Sep 17 00:00:00 2001 From: AnnZhimol Date: Wed, 17 May 2023 11:51:24 +0400 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=20conferenceId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ConferenceBookingBindingModel.cs | 2 +- .../ViewModels/ConferenceBookingViewModel.cs | 2 +- ...0230517075030_NullCinferenceId.Designer.cs | 565 ++++++++++++++++++ .../20230517075030_NullCinferenceId.cs | 59 ++ .../Migrations/HotelDataBaseModelSnapshot.cs | 6 +- .../Models/ConferenceBooking.cs | 4 +- .../Models/IConferenceBookingModel.cs | 2 +- 7 files changed, 631 insertions(+), 9 deletions(-) create mode 100644 Hotel/HotelDataBaseImplement/Migrations/20230517075030_NullCinferenceId.Designer.cs create mode 100644 Hotel/HotelDataBaseImplement/Migrations/20230517075030_NullCinferenceId.cs diff --git a/Hotel/HotelContracts/BindingModels/ConferenceBookingBindingModel.cs b/Hotel/HotelContracts/BindingModels/ConferenceBookingBindingModel.cs index 3942043..90a490e 100644 --- a/Hotel/HotelContracts/BindingModels/ConferenceBookingBindingModel.cs +++ b/Hotel/HotelContracts/BindingModels/ConferenceBookingBindingModel.cs @@ -6,7 +6,7 @@ namespace HotelContracts.BindingModels { public int HeadwaiterId { get; set; } - public int ConferenceId { get; set; } + public int? ConferenceId { get; set; } public int Id { get; set; } public Dictionary ConferenceBookingDinners { get; set; } diff --git a/Hotel/HotelContracts/ViewModels/ConferenceBookingViewModel.cs b/Hotel/HotelContracts/ViewModels/ConferenceBookingViewModel.cs index 2f30dac..480d4c2 100644 --- a/Hotel/HotelContracts/ViewModels/ConferenceBookingViewModel.cs +++ b/Hotel/HotelContracts/ViewModels/ConferenceBookingViewModel.cs @@ -11,7 +11,7 @@ namespace HotelContracts.ViewModels { public int HeadwaiterId { get; set; } - public int ConferenceId { get; set; } + public int? ConferenceId { get; set; } public int Id { get; set; } public Dictionary ConferenceBookingDinners { get; set; } diff --git a/Hotel/HotelDataBaseImplement/Migrations/20230517075030_NullCinferenceId.Designer.cs b/Hotel/HotelDataBaseImplement/Migrations/20230517075030_NullCinferenceId.Designer.cs new file mode 100644 index 0000000..684c302 --- /dev/null +++ b/Hotel/HotelDataBaseImplement/Migrations/20230517075030_NullCinferenceId.Designer.cs @@ -0,0 +1,565 @@ +// +using System; +using HotelDataBaseImplement; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace HotelDataBaseImplement.Migrations +{ + [DbContext(typeof(HotelDataBase))] + [Migration("20230517075030_NullCinferenceId")] + partial class NullCinferenceId + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.5") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Conference", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ConferenceName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OrganiserId") + .HasColumnType("int"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("OrganiserId"); + + b.ToTable("Conferences"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.ConferenceBooking", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ConferenceId") + .HasColumnType("int"); + + b.Property("HeadwaiterId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ConferenceId"); + + b.HasIndex("HeadwaiterId"); + + b.ToTable("ConferenceBookings"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.ConferenceBookingDinner", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ConferenceBookingId") + .HasColumnType("int"); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("DinnerId") + .HasColumnType("int"); + + b.Property("DinnercId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ConferenceBookingId"); + + b.HasIndex("DinnercId"); + + b.ToTable("ConferenceBookingDinners"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.ConferenceMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ConferenceId") + .HasColumnType("int"); + + b.Property("MemberId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ConferenceId"); + + b.HasIndex("MemberId"); + + b.ToTable("ConferenceMembers"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Dinner", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("DinnerName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DinnerPrice") + .HasColumnType("float"); + + b.Property("HeadwaiterId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("HeadwaiterId"); + + b.ToTable("Dinners"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Headwaiter", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("HeadwaiterEmail") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("HeadwaiterFIO") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("HeadwaiterLogin") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("HeadwaiterNumber") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("HeadwaiterPassword") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("Headwaiters"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.MealPlan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("MealPlanName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MealPlanPrice") + .HasColumnType("float"); + + b.Property("OrganiserId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("OrganiserId"); + + b.ToTable("MealPlans"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.MealPlanMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("MealPlanId") + .HasColumnType("int"); + + b.Property("MemberId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("MealPlanId"); + + b.HasIndex("MemberId"); + + b.ToTable("MealPlanMembers"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Member", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Citizenship") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MemberFIO") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OrganiserId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("OrganiserId"); + + b.ToTable("Members"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Organiser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("OrganiserEmail") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OrganiserFIO") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OrganiserLogin") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OrganiserNumber") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OrganiserPassword") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("Organisers"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Room", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("HeadwaiterId") + .HasColumnType("int"); + + b.Property("MealPlanId") + .HasColumnType("int"); + + b.Property("RoomFrame") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RoomName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RoomPrice") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.HasIndex("HeadwaiterId"); + + b.HasIndex("MealPlanId"); + + b.ToTable("Rooms"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.RoomDinner", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("DinnerId") + .HasColumnType("int"); + + b.Property("RoomId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("DinnerId"); + + b.HasIndex("RoomId"); + + b.ToTable("RoomDinners"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Conference", b => + { + b.HasOne("HotelDataBaseImplement.Models.Organiser", "Organiser") + .WithMany("Conferences") + .HasForeignKey("OrganiserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Organiser"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.ConferenceBooking", b => + { + b.HasOne("HotelDataBaseImplement.Models.Conference", "Conference") + .WithMany("ConferenceBookings") + .HasForeignKey("ConferenceId"); + + b.HasOne("HotelDataBaseImplement.Models.Headwaiter", "Headwaiter") + .WithMany("ConferenceBookings") + .HasForeignKey("HeadwaiterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Conference"); + + b.Navigation("Headwaiter"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.ConferenceBookingDinner", b => + { + b.HasOne("HotelDataBaseImplement.Models.ConferenceBooking", "ConferenceBooking") + .WithMany("Dinners") + .HasForeignKey("ConferenceBookingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HotelDataBaseImplement.Models.Dinner", "Dinner") + .WithMany("ConferenceBookingDinner") + .HasForeignKey("DinnercId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ConferenceBooking"); + + b.Navigation("Dinner"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.ConferenceMember", b => + { + b.HasOne("HotelDataBaseImplement.Models.Conference", "Conference") + .WithMany("Members") + .HasForeignKey("ConferenceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HotelDataBaseImplement.Models.Member", "Member") + .WithMany("ConferenceMembers") + .HasForeignKey("MemberId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Conference"); + + b.Navigation("Member"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Dinner", b => + { + b.HasOne("HotelDataBaseImplement.Models.Headwaiter", "Headwaiter") + .WithMany("Dinners") + .HasForeignKey("HeadwaiterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Headwaiter"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.MealPlan", b => + { + b.HasOne("HotelDataBaseImplement.Models.Organiser", "Organiser") + .WithMany("MealPlans") + .HasForeignKey("OrganiserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Organiser"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.MealPlanMember", b => + { + b.HasOne("HotelDataBaseImplement.Models.MealPlan", "MealPlan") + .WithMany("Members") + .HasForeignKey("MealPlanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HotelDataBaseImplement.Models.Member", "Member") + .WithMany("MealPlanMember") + .HasForeignKey("MemberId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MealPlan"); + + b.Navigation("Member"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Member", b => + { + b.HasOne("HotelDataBaseImplement.Models.Organiser", "Organiser") + .WithMany("Members") + .HasForeignKey("OrganiserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Organiser"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Room", b => + { + b.HasOne("HotelDataBaseImplement.Models.Headwaiter", "Headwaiter") + .WithMany("Rooms") + .HasForeignKey("HeadwaiterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HotelDataBaseImplement.Models.MealPlan", "MealPlan") + .WithMany("Rooms") + .HasForeignKey("MealPlanId"); + + b.Navigation("Headwaiter"); + + b.Navigation("MealPlan"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.RoomDinner", b => + { + b.HasOne("HotelDataBaseImplement.Models.Dinner", "Dinner") + .WithMany("RoomDinners") + .HasForeignKey("DinnerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("HotelDataBaseImplement.Models.Room", "Room") + .WithMany("Dinners") + .HasForeignKey("RoomId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dinner"); + + b.Navigation("Room"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Conference", b => + { + b.Navigation("ConferenceBookings"); + + b.Navigation("Members"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.ConferenceBooking", b => + { + b.Navigation("Dinners"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Dinner", b => + { + b.Navigation("ConferenceBookingDinner"); + + b.Navigation("RoomDinners"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Headwaiter", b => + { + b.Navigation("ConferenceBookings"); + + b.Navigation("Dinners"); + + b.Navigation("Rooms"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.MealPlan", b => + { + b.Navigation("Members"); + + b.Navigation("Rooms"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Member", b => + { + b.Navigation("ConferenceMembers"); + + b.Navigation("MealPlanMember"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Organiser", b => + { + b.Navigation("Conferences"); + + b.Navigation("MealPlans"); + + b.Navigation("Members"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Room", b => + { + b.Navigation("Dinners"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Hotel/HotelDataBaseImplement/Migrations/20230517075030_NullCinferenceId.cs b/Hotel/HotelDataBaseImplement/Migrations/20230517075030_NullCinferenceId.cs new file mode 100644 index 0000000..55a1fbe --- /dev/null +++ b/Hotel/HotelDataBaseImplement/Migrations/20230517075030_NullCinferenceId.cs @@ -0,0 +1,59 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace HotelDataBaseImplement.Migrations +{ + /// + public partial class NullCinferenceId : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_ConferenceBookings_Conferences_ConferenceId", + table: "ConferenceBookings"); + + migrationBuilder.AlterColumn( + name: "ConferenceId", + table: "ConferenceBookings", + type: "int", + nullable: true, + oldClrType: typeof(int), + oldType: "int"); + + migrationBuilder.AddForeignKey( + name: "FK_ConferenceBookings_Conferences_ConferenceId", + table: "ConferenceBookings", + column: "ConferenceId", + principalTable: "Conferences", + principalColumn: "Id"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_ConferenceBookings_Conferences_ConferenceId", + table: "ConferenceBookings"); + + migrationBuilder.AlterColumn( + name: "ConferenceId", + table: "ConferenceBookings", + type: "int", + nullable: false, + defaultValue: 0, + oldClrType: typeof(int), + oldType: "int", + oldNullable: true); + + migrationBuilder.AddForeignKey( + name: "FK_ConferenceBookings_Conferences_ConferenceId", + table: "ConferenceBookings", + column: "ConferenceId", + principalTable: "Conferences", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + } +} diff --git a/Hotel/HotelDataBaseImplement/Migrations/HotelDataBaseModelSnapshot.cs b/Hotel/HotelDataBaseImplement/Migrations/HotelDataBaseModelSnapshot.cs index b79817a..cecdcb0 100644 --- a/Hotel/HotelDataBaseImplement/Migrations/HotelDataBaseModelSnapshot.cs +++ b/Hotel/HotelDataBaseImplement/Migrations/HotelDataBaseModelSnapshot.cs @@ -55,7 +55,7 @@ namespace HotelDataBaseImplement.Migrations SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - b.Property("ConferenceId") + b.Property("ConferenceId") .HasColumnType("int"); b.Property("HeadwaiterId") @@ -362,9 +362,7 @@ namespace HotelDataBaseImplement.Migrations { b.HasOne("HotelDataBaseImplement.Models.Conference", "Conference") .WithMany("ConferenceBookings") - .HasForeignKey("ConferenceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + .HasForeignKey("ConferenceId"); b.HasOne("HotelDataBaseImplement.Models.Headwaiter", "Headwaiter") .WithMany("ConferenceBookings") diff --git a/Hotel/HotelDataBaseImplement/Models/ConferenceBooking.cs b/Hotel/HotelDataBaseImplement/Models/ConferenceBooking.cs index 042bf36..d22d548 100644 --- a/Hotel/HotelDataBaseImplement/Models/ConferenceBooking.cs +++ b/Hotel/HotelDataBaseImplement/Models/ConferenceBooking.cs @@ -14,10 +14,10 @@ namespace HotelDataBaseImplement.Models public class ConferenceBooking : IConferenceBookingModel { public int HeadwaiterId { get; private set; } - public int ConferenceId { get; private set; } + public int? ConferenceId { get; private set; } public int Id { get; private set; } public virtual Headwaiter Headwaiter { get; set; } - public virtual Conference Conference { get; set; } + public virtual Conference? Conference { get; set; } [ForeignKey("ConferenceBookingId")] public virtual List Dinners { get; set; } diff --git a/Hotel/HotelDataModels/Models/IConferenceBookingModel.cs b/Hotel/HotelDataModels/Models/IConferenceBookingModel.cs index 0e85adf..b45c5f9 100644 --- a/Hotel/HotelDataModels/Models/IConferenceBookingModel.cs +++ b/Hotel/HotelDataModels/Models/IConferenceBookingModel.cs @@ -3,7 +3,7 @@ public interface IConferenceBookingModel : IId { int HeadwaiterId { get;} - int ConferenceId { get; } + int? ConferenceId { get; } public Dictionary ConferenceBookingDinners { get; } } }