diff --git a/Hotel/HotelDataBaseImplement/HotelDataBaseImplement.csproj b/Hotel/HotelDataBaseImplement/HotelDataBaseImplement.csproj index d73b487..5269faa 100644 --- a/Hotel/HotelDataBaseImplement/HotelDataBaseImplement.csproj +++ b/Hotel/HotelDataBaseImplement/HotelDataBaseImplement.csproj @@ -9,6 +9,10 @@ + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/Hotel/HotelDataBaseImplement/Migrations/20230405210621_InitialCreate.Designer.cs b/Hotel/HotelDataBaseImplement/Migrations/20230405210621_InitialCreate.Designer.cs new file mode 100644 index 0000000..f7d7eae --- /dev/null +++ b/Hotel/HotelDataBaseImplement/Migrations/20230405210621_InitialCreate.Designer.cs @@ -0,0 +1,569 @@ +// +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("20230405210621_InitialCreate")] + partial class InitialCreate + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.4") + .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("DinnetPrice") + .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") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + 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("ConferenceBookingDinners") + .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("ConferenceMember") + .HasForeignKey("MemberId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Conference"); + + b.Navigation("Member"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Dinner", b => + { + b.HasOne("HotelDataBaseImplement.Models.Headwaiter", "Headwaiters") + .WithMany("Dinners") + .HasForeignKey("HeadwaiterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Headwaiters"); + }); + + 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") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + 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("ConferenceBookingDinners"); + + 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("ConferenceMember"); + + 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/20230405210621_InitialCreate.cs b/Hotel/HotelDataBaseImplement/Migrations/20230405210621_InitialCreate.cs new file mode 100644 index 0000000..a053bcd --- /dev/null +++ b/Hotel/HotelDataBaseImplement/Migrations/20230405210621_InitialCreate.cs @@ -0,0 +1,415 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace HotelDataBaseImplement.Migrations +{ + /// + public partial class InitialCreate : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Headwaiters", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + HeadwaiterFIO = table.Column(type: "nvarchar(max)", nullable: false), + HeadwaiterEmail = table.Column(type: "nvarchar(max)", nullable: false), + HeadwaiterPassword = table.Column(type: "nvarchar(max)", nullable: false), + HeadwaiterLogin = table.Column(type: "nvarchar(max)", nullable: false), + HeadwaiterNumber = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Headwaiters", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Organisers", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + OrganiserFIO = table.Column(type: "nvarchar(max)", nullable: false), + OrganiserPassword = table.Column(type: "nvarchar(max)", nullable: false), + OrganiserLogin = table.Column(type: "nvarchar(max)", nullable: false), + OrganiserEmail = table.Column(type: "nvarchar(max)", nullable: false), + OrganiserNumber = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Organisers", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Dinners", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + HeadwaiterId = table.Column(type: "int", nullable: false), + DinnerName = table.Column(type: "nvarchar(max)", nullable: false), + DinnetPrice = table.Column(type: "float", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Dinners", x => x.Id); + table.ForeignKey( + name: "FK_Dinners_Headwaiters_HeadwaiterId", + column: x => x.HeadwaiterId, + principalTable: "Headwaiters", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Conferences", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + ConferenceName = table.Column(type: "nvarchar(max)", nullable: false), + StartDate = table.Column(type: "datetime2", nullable: false), + OrganiserId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Conferences", x => x.Id); + table.ForeignKey( + name: "FK_Conferences_Organisers_OrganiserId", + column: x => x.OrganiserId, + principalTable: "Organisers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "MealPlans", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + MealPlanName = table.Column(type: "nvarchar(max)", nullable: false), + MealPlanPrice = table.Column(type: "float", nullable: false), + OrganiserId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_MealPlans", x => x.Id); + table.ForeignKey( + name: "FK_MealPlans_Organisers_OrganiserId", + column: x => x.OrganiserId, + principalTable: "Organisers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Members", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + MemberFIO = table.Column(type: "nvarchar(max)", nullable: false), + Citizenship = table.Column(type: "nvarchar(max)", nullable: false), + OrganiserId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Members", x => x.Id); + table.ForeignKey( + name: "FK_Members_Organisers_OrganiserId", + column: x => x.OrganiserId, + principalTable: "Organisers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "ConferenceBookings", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + HeadwaiterId = table.Column(type: "int", nullable: false), + ConferenceId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ConferenceBookings", x => x.Id); + table.ForeignKey( + name: "FK_ConferenceBookings_Conferences_ConferenceId", + column: x => x.ConferenceId, + principalTable: "Conferences", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_ConferenceBookings_Headwaiters_HeadwaiterId", + column: x => x.HeadwaiterId, + principalTable: "Headwaiters", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Rooms", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + RoomName = table.Column(type: "nvarchar(max)", nullable: false), + RoomFrame = table.Column(type: "nvarchar(max)", nullable: false), + RoomPrice = table.Column(type: "float", nullable: false), + HeadwaiterId = table.Column(type: "int", nullable: false), + MealPlanId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Rooms", x => x.Id); + table.ForeignKey( + name: "FK_Rooms_Headwaiters_HeadwaiterId", + column: x => x.HeadwaiterId, + principalTable: "Headwaiters", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Rooms_MealPlans_MealPlanId", + column: x => x.MealPlanId, + principalTable: "MealPlans", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "ConferenceMembers", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + MemberId = table.Column(type: "int", nullable: false), + ConferenceId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ConferenceMembers", x => x.Id); + table.ForeignKey( + name: "FK_ConferenceMembers_Conferences_ConferenceId", + column: x => x.ConferenceId, + principalTable: "Conferences", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_ConferenceMembers_Members_MemberId", + column: x => x.MemberId, + principalTable: "Members", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "MealPlanMembers", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + MemberId = table.Column(type: "int", nullable: false), + MealPlanId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_MealPlanMembers", x => x.Id); + table.ForeignKey( + name: "FK_MealPlanMembers_MealPlans_MealPlanId", + column: x => x.MealPlanId, + principalTable: "MealPlans", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_MealPlanMembers_Members_MemberId", + column: x => x.MemberId, + principalTable: "Members", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "ConferenceBookingDinners", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + ConferenceBookingId = table.Column(type: "int", nullable: false), + DinnerId = table.Column(type: "int", nullable: false), + Count = table.Column(type: "int", nullable: false), + DinnercId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ConferenceBookingDinners", x => x.Id); + table.ForeignKey( + name: "FK_ConferenceBookingDinners_ConferenceBookings_ConferenceBookingId", + column: x => x.ConferenceBookingId, + principalTable: "ConferenceBookings", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_ConferenceBookingDinners_Dinners_DinnercId", + column: x => x.DinnercId, + principalTable: "Dinners", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "RoomDinners", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + RoomId = table.Column(type: "int", nullable: false), + DinnerId = table.Column(type: "int", nullable: false), + Count = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_RoomDinners", x => x.Id); + table.ForeignKey( + name: "FK_RoomDinners_Dinners_DinnerId", + column: x => x.DinnerId, + principalTable: "Dinners", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_RoomDinners_Rooms_RoomId", + column: x => x.RoomId, + principalTable: "Rooms", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateIndex( + name: "IX_ConferenceBookingDinners_ConferenceBookingId", + table: "ConferenceBookingDinners", + column: "ConferenceBookingId"); + + migrationBuilder.CreateIndex( + name: "IX_ConferenceBookingDinners_DinnercId", + table: "ConferenceBookingDinners", + column: "DinnercId"); + + migrationBuilder.CreateIndex( + name: "IX_ConferenceBookings_ConferenceId", + table: "ConferenceBookings", + column: "ConferenceId"); + + migrationBuilder.CreateIndex( + name: "IX_ConferenceBookings_HeadwaiterId", + table: "ConferenceBookings", + column: "HeadwaiterId"); + + migrationBuilder.CreateIndex( + name: "IX_ConferenceMembers_ConferenceId", + table: "ConferenceMembers", + column: "ConferenceId"); + + migrationBuilder.CreateIndex( + name: "IX_ConferenceMembers_MemberId", + table: "ConferenceMembers", + column: "MemberId"); + + migrationBuilder.CreateIndex( + name: "IX_Conferences_OrganiserId", + table: "Conferences", + column: "OrganiserId"); + + migrationBuilder.CreateIndex( + name: "IX_Dinners_HeadwaiterId", + table: "Dinners", + column: "HeadwaiterId"); + + migrationBuilder.CreateIndex( + name: "IX_MealPlanMembers_MealPlanId", + table: "MealPlanMembers", + column: "MealPlanId"); + + migrationBuilder.CreateIndex( + name: "IX_MealPlanMembers_MemberId", + table: "MealPlanMembers", + column: "MemberId"); + + migrationBuilder.CreateIndex( + name: "IX_MealPlans_OrganiserId", + table: "MealPlans", + column: "OrganiserId"); + + migrationBuilder.CreateIndex( + name: "IX_Members_OrganiserId", + table: "Members", + column: "OrganiserId"); + + migrationBuilder.CreateIndex( + name: "IX_RoomDinners_DinnerId", + table: "RoomDinners", + column: "DinnerId"); + + migrationBuilder.CreateIndex( + name: "IX_RoomDinners_RoomId", + table: "RoomDinners", + column: "RoomId"); + + migrationBuilder.CreateIndex( + name: "IX_Rooms_HeadwaiterId", + table: "Rooms", + column: "HeadwaiterId"); + + migrationBuilder.CreateIndex( + name: "IX_Rooms_MealPlanId", + table: "Rooms", + column: "MealPlanId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "ConferenceBookingDinners"); + + migrationBuilder.DropTable( + name: "ConferenceMembers"); + + migrationBuilder.DropTable( + name: "MealPlanMembers"); + + migrationBuilder.DropTable( + name: "RoomDinners"); + + migrationBuilder.DropTable( + name: "ConferenceBookings"); + + migrationBuilder.DropTable( + name: "Members"); + + migrationBuilder.DropTable( + name: "Dinners"); + + migrationBuilder.DropTable( + name: "Rooms"); + + migrationBuilder.DropTable( + name: "Conferences"); + + migrationBuilder.DropTable( + name: "Headwaiters"); + + migrationBuilder.DropTable( + name: "MealPlans"); + + migrationBuilder.DropTable( + name: "Organisers"); + } + } +} diff --git a/Hotel/HotelDataBaseImplement/Migrations/HotelDataBaseModelSnapshot.cs b/Hotel/HotelDataBaseImplement/Migrations/HotelDataBaseModelSnapshot.cs new file mode 100644 index 0000000..8faf864 --- /dev/null +++ b/Hotel/HotelDataBaseImplement/Migrations/HotelDataBaseModelSnapshot.cs @@ -0,0 +1,566 @@ +// +using System; +using HotelDataBaseImplement; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace HotelDataBaseImplement.Migrations +{ + [DbContext(typeof(HotelDataBase))] + partial class HotelDataBaseModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.4") + .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("DinnetPrice") + .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") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + 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("ConferenceBookingDinners") + .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("ConferenceMember") + .HasForeignKey("MemberId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Conference"); + + b.Navigation("Member"); + }); + + modelBuilder.Entity("HotelDataBaseImplement.Models.Dinner", b => + { + b.HasOne("HotelDataBaseImplement.Models.Headwaiter", "Headwaiters") + .WithMany("Dinners") + .HasForeignKey("HeadwaiterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Headwaiters"); + }); + + 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") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + 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("ConferenceBookingDinners"); + + 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("ConferenceMember"); + + 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/HotelView/HotelView.csproj b/Hotel/HotelView/HotelView.csproj index b57c89e..057a330 100644 --- a/Hotel/HotelView/HotelView.csproj +++ b/Hotel/HotelView/HotelView.csproj @@ -8,4 +8,15 @@ enable + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + \ No newline at end of file