diff --git a/BeautySalonView/BeatySalonRestApi/Controllers/ClientControlles.cs b/BeautySalonView/BeatySalonRestApi/Controllers/ClientControlles.cs index 8e736fd..0c8cfdf 100644 --- a/BeautySalonView/BeatySalonRestApi/Controllers/ClientControlles.cs +++ b/BeautySalonView/BeatySalonRestApi/Controllers/ClientControlles.cs @@ -1,82 +1,69 @@ -using Microsoft.AspNetCore.Http; +using BeautySalonBusinessLogic.BusinessLogics; +using BeautySalonContracts.BindingModels; +using BeautySalonContracts.BusinessLogicContracts; +using BeautySalonContracts.SearchModels; +using BeautySalonContracts.ViewModels; using Microsoft.AspNetCore.Mvc; -namespace BeatySalonRestApi.Controllers +namespace BeautySalonRestApi.Controllers { - public class ClientControlles : Controller + [Route("api/[controller]/[action]")] + [ApiController] + public class ClientController : Controller { - // GET: ClientControlles - public ActionResult Index() + private readonly ILogger _logger; + + private readonly IClientLogic _logic; + + public ClientController(IClientLogic logic, ILogger logger) { - return View(); + _logger = logger; + _logic = logic; } - // GET: ClientControlles/Details/5 - public ActionResult Details(int id) - { - return View(); - } - - // GET: ClientControlles/Create - public ActionResult Create() - { - return View(); - } - - // POST: ClientControlles/Create - [HttpPost] - [ValidateAntiForgeryToken] - public ActionResult Create(IFormCollection collection) + [HttpGet] + public ClientViewModel? Login(string login, string password) { try { - return RedirectToAction(nameof(Index)); + return _logic.ReadElement(new ClientSearchModel + { + ClientLogin = login, + ClientPassword = password + }); } - catch + catch (Exception ex) { - return View(); + _logger.LogError(ex, "Ошибка входа в систему"); + throw; } } - // GET: ClientControlles/Edit/5 - public ActionResult Edit(int id) - { - return View(); - } - - // POST: ClientControlles/Edit/5 [HttpPost] - [ValidateAntiForgeryToken] - public ActionResult Edit(int id, IFormCollection collection) + public void Register(ClientBindingModel model) { try { - return RedirectToAction(nameof(Index)); + _logic.Create(model); } - catch + catch (Exception ex) { - return View(); + _logger.LogError(ex, "Ошибка регистрации"); + throw; } } - // GET: ClientControlles/Delete/5 - public ActionResult Delete(int id) - { - return View(); - } - - // POST: ClientControlles/Delete/5 [HttpPost] - [ValidateAntiForgeryToken] - public ActionResult Delete(int id, IFormCollection collection) + public void UpdateData(ClientBindingModel model) { try { - return RedirectToAction(nameof(Index)); + _logic.Update(model); } - catch + catch (Exception ex) { - return View(); + _logger.LogError(ex, "Ошибка обновления данных"); + throw; } } } diff --git a/BeautySalonView/BeautySalonContracts/ViewModels/EvaluationViewModel.cs b/BeautySalonView/BeautySalonContracts/ViewModels/EvaluationViewModel.cs index a831c03..8364f63 100644 --- a/BeautySalonView/BeautySalonContracts/ViewModels/EvaluationViewModel.cs +++ b/BeautySalonView/BeautySalonContracts/ViewModels/EvaluationViewModel.cs @@ -10,15 +10,18 @@ namespace BeautySalonContracts.ViewModels { public class EvaluationViewModel : IEvaluationModel { + public int Id { get; set; } + [DisplayName("Баллы за процедуру")] public double PointsProcedure { get; set; } [DisplayName("Баллы за косметику")] public double PointsCosmetics { get; set; } public int ClientId { get; set; } - public int Id { get; set; } + public string Client_Name { get; set; } = string.Empty; + public int ProcedureId { get; set; } - public string ProcedureName { get; set; } = string.Empty; + public string Procedure_Name { get; set; } = string.Empty; } } diff --git a/BeautySalonView/BeautySalonDatabaseImplement/Implements/EvaluationStorage.cs b/BeautySalonView/BeautySalonDatabaseImplement/Implements/EvaluationStorage.cs index 201c305..db8a0fc 100644 --- a/BeautySalonView/BeautySalonDatabaseImplement/Implements/EvaluationStorage.cs +++ b/BeautySalonView/BeautySalonDatabaseImplement/Implements/EvaluationStorage.cs @@ -19,6 +19,7 @@ namespace BeautySalonDatabaseImplement.Implements using var context = new BeautySalonDatabase(); return context.Evaluations .Include(x => x.Procedure) + .Include(x => x.Client) .ToList() .Select(x => x.GetViewModel) .ToList(); @@ -31,6 +32,7 @@ namespace BeautySalonDatabaseImplement.Implements { return context.Evaluations .Include(x => x.Procedure) + .Include(x => x.Client) .Where(x => x.Id == model.Id) .Select(x => x.GetViewModel) .ToList(); @@ -39,6 +41,7 @@ namespace BeautySalonDatabaseImplement.Implements { return context.Evaluations .Include(x => x.Procedure) + .Include(x => x.Client) .Where(x => x.ClientId == model.ClientId) .Select(x => x.GetViewModel) .ToList(); @@ -55,6 +58,7 @@ namespace BeautySalonDatabaseImplement.Implements using var context = new BeautySalonDatabase(); return context.Evaluations .Include(x => x.Procedure) + .Include(x => x.Client) .FirstOrDefault(x => model.Id.HasValue && x.Id == model.Id) ?.GetViewModel; } @@ -71,6 +75,7 @@ namespace BeautySalonDatabaseImplement.Implements context.SaveChanges(); return context.Evaluations .Include(x => x.Procedure) + .Include(x => x.Client) .FirstOrDefault(x => x.Id == newRating.Id) ?.GetViewModel; } @@ -80,6 +85,7 @@ namespace BeautySalonDatabaseImplement.Implements using var context = new BeautySalonDatabase(); var сosmetic = context.Evaluations .Include(x => x.Procedure) + .Include(x => x.Client) .FirstOrDefault(x => x.Id == model.Id); if (сosmetic == null) { @@ -95,6 +101,7 @@ namespace BeautySalonDatabaseImplement.Implements using var context = new BeautySalonDatabase(); var element = context.Evaluations .Include(x => x.Procedure) + .Include(x => x.Client) .FirstOrDefault(rec => rec.Id == model.Id); if (element != null) { diff --git a/BeautySalonView/BeautySalonDatabaseImplement/Migrations/20240430144857_InitialCreate.Designer.cs b/BeautySalonView/BeautySalonDatabaseImplement/Migrations/20240430144857_InitialCreate.Designer.cs new file mode 100644 index 0000000..4998f71 --- /dev/null +++ b/BeautySalonView/BeautySalonDatabaseImplement/Migrations/20240430144857_InitialCreate.Designer.cs @@ -0,0 +1,615 @@ +// +using System; +using BeautySalonDatabaseImplement; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace BeautySalonDatabaseImplement.Migrations +{ + [DbContext(typeof(BeautySalonDatabase))] + [Migration("20240430144857_InitialCreate")] + partial class InitialCreate + { + /// + 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("BeautySalonDatabaseImplement.Models.Client", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClientEmail") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ClientFIO") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ClientLogin") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ClientPassword") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("Clients"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Cosmetic", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Brand") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CosmeticName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CosmeticPrice") + .HasColumnType("float"); + + b.Property("LaborCostId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("LaborCostId"); + + b.ToTable("Cosmetics"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.CosmeticProcedure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CosmeticId") + .HasColumnType("int"); + + b.Property("ProcedureCosmeticCount") + .HasColumnType("int"); + + b.Property("ProcedureId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CosmeticId"); + + b.HasIndex("ProcedureId"); + + b.ToTable("CosmeticProcedures"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Evaluation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClientId") + .HasColumnType("int"); + + b.Property("PointsCosmetics") + .HasColumnType("float"); + + b.Property("PointsProcedure") + .HasColumnType("float"); + + b.Property("ProcedureId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("ProcedureId"); + + b.ToTable("Evaluations"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.LaborCosts", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Difficulty") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberHours") + .HasColumnType("int"); + + b.Property("StaffMemberId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("StaffMemberId"); + + b.ToTable("LaborCosts"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.OrderCosmetic", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CosmeticId") + .HasColumnType("int"); + + b.Property("OrderId") + .HasColumnType("int"); + + b.Property("ProcedureId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CosmeticId"); + + b.HasIndex("OrderId"); + + b.HasIndex("ProcedureId"); + + b.ToTable("OrderCosmetics"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.OrderProcedure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("OrderId") + .HasColumnType("int"); + + b.Property("OrderProcedureCount") + .HasColumnType("int"); + + b.Property("ProcedureId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("OrderId"); + + b.HasIndex("ProcedureId"); + + b.ToTable("OrderProcedures"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.OrderService", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("OrderId") + .HasColumnType("int"); + + b.Property("OrderServiceCount") + .HasColumnType("int"); + + b.Property("ServiceId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("OrderId"); + + b.HasIndex("ServiceId"); + + b.ToTable("OrderServices"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Order_", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClientId") + .HasColumnType("int"); + + b.Property("OrderAmount") + .HasColumnType("float"); + + b.Property("OrderDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("Orders"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Procedure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClientId") + .HasColumnType("int"); + + b.Property("ProcedureName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ProcedurePrice") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("Procedures"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Service", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ServiceName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ServicePrice") + .HasColumnType("float"); + + b.Property("StaffMemberId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("StaffMemberId"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.ServiceCosmetic", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CosmeticId") + .HasColumnType("int"); + + b.Property("ServiceCosmeticCount") + .HasColumnType("int"); + + b.Property("ServiceId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CosmeticId"); + + b.HasIndex("ServiceId"); + + b.ToTable("ServiceCosmetics"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.StaffMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("StaffMemberEmail") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StaffMemberLogin") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StaffMemberName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StaffMemberPassword") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StaffMemberPhone") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StaffMemberSpecialty") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StaffMemberSurname") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("StaffMembers"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Cosmetic", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.LaborCosts", "LaborCost") + .WithMany("Cosmetics") + .HasForeignKey("LaborCostId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("LaborCost"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.CosmeticProcedure", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Cosmetic", "Cosmetic") + .WithMany("Procedures") + .HasForeignKey("CosmeticId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Procedure", "Procedure") + .WithMany("Cosmetics") + .HasForeignKey("ProcedureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Cosmetic"); + + b.Navigation("Procedure"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Evaluation", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Client", "Client") + .WithMany("Evaluations") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Procedure", "Procedure") + .WithMany("Evaluations") + .HasForeignKey("ProcedureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Client"); + + b.Navigation("Procedure"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.LaborCosts", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.StaffMember", "StaffMember") + .WithMany("LaborsCosts") + .HasForeignKey("StaffMemberId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("StaffMember"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.OrderCosmetic", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Cosmetic", "Cosmetic") + .WithMany() + .HasForeignKey("CosmeticId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Order_", "Order") + .WithMany("Cosmetics") + .HasForeignKey("OrderId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Procedure", null) + .WithMany("Orders") + .HasForeignKey("ProcedureId"); + + b.Navigation("Cosmetic"); + + b.Navigation("Order"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.OrderProcedure", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Order_", "Order") + .WithMany("Procedures") + .HasForeignKey("OrderId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Procedure", "Procedure") + .WithMany() + .HasForeignKey("ProcedureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Order"); + + b.Navigation("Procedure"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.OrderService", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Order_", "Order") + .WithMany("Services") + .HasForeignKey("OrderId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Service", "Service") + .WithMany("Orders") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Order"); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Order_", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Client", "Client") + .WithMany("Orders") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Client"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Procedure", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Client", "Client") + .WithMany("Procedures") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Client"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Service", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.StaffMember", "StaffMember") + .WithMany("Services") + .HasForeignKey("StaffMemberId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("StaffMember"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.ServiceCosmetic", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Cosmetic", "Cosmetic") + .WithMany("Services") + .HasForeignKey("CosmeticId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Service", "Service") + .WithMany("Cosmetics") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Cosmetic"); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Client", b => + { + b.Navigation("Evaluations"); + + b.Navigation("Orders"); + + b.Navigation("Procedures"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Cosmetic", b => + { + b.Navigation("Procedures"); + + b.Navigation("Services"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.LaborCosts", b => + { + b.Navigation("Cosmetics"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Order_", b => + { + b.Navigation("Cosmetics"); + + b.Navigation("Procedures"); + + b.Navigation("Services"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Procedure", b => + { + b.Navigation("Cosmetics"); + + b.Navigation("Evaluations"); + + b.Navigation("Orders"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Service", b => + { + b.Navigation("Cosmetics"); + + b.Navigation("Orders"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.StaffMember", b => + { + b.Navigation("LaborsCosts"); + + b.Navigation("Services"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/BeautySalonView/BeautySalonDatabaseImplement/Migrations/20240430144857_InitialCreate.cs b/BeautySalonView/BeautySalonDatabaseImplement/Migrations/20240430144857_InitialCreate.cs new file mode 100644 index 0000000..614d89a --- /dev/null +++ b/BeautySalonView/BeautySalonDatabaseImplement/Migrations/20240430144857_InitialCreate.cs @@ -0,0 +1,457 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace BeautySalonDatabaseImplement.Migrations +{ + /// + public partial class InitialCreate : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Clients", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + ClientLogin = table.Column(type: "nvarchar(max)", nullable: false), + ClientFIO = table.Column(type: "nvarchar(max)", nullable: false), + ClientEmail = table.Column(type: "nvarchar(max)", nullable: false), + ClientPassword = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Clients", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "StaffMembers", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + StaffMemberName = table.Column(type: "nvarchar(max)", nullable: false), + StaffMemberSurname = table.Column(type: "nvarchar(max)", nullable: false), + StaffMemberSpecialty = table.Column(type: "nvarchar(max)", nullable: false), + StaffMemberLogin = table.Column(type: "nvarchar(max)", nullable: false), + StaffMemberEmail = table.Column(type: "nvarchar(max)", nullable: false), + StaffMemberPassword = table.Column(type: "nvarchar(max)", nullable: false), + StaffMemberPhone = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_StaffMembers", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Orders", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + OrderDate = table.Column(type: "datetime2", nullable: false), + OrderAmount = table.Column(type: "float", nullable: false), + ClientId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Orders", x => x.Id); + table.ForeignKey( + name: "FK_Orders_Clients_ClientId", + column: x => x.ClientId, + principalTable: "Clients", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Procedures", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + ProcedureName = table.Column(type: "nvarchar(max)", nullable: false), + ProcedurePrice = table.Column(type: "float", nullable: false), + ClientId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Procedures", x => x.Id); + table.ForeignKey( + name: "FK_Procedures_Clients_ClientId", + column: x => x.ClientId, + principalTable: "Clients", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "LaborCosts", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + NumberHours = table.Column(type: "int", nullable: false), + Difficulty = table.Column(type: "nvarchar(max)", nullable: false), + StaffMemberId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_LaborCosts", x => x.Id); + table.ForeignKey( + name: "FK_LaborCosts_StaffMembers_StaffMemberId", + column: x => x.StaffMemberId, + principalTable: "StaffMembers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Services", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + ServiceName = table.Column(type: "nvarchar(max)", nullable: false), + ServicePrice = table.Column(type: "float", nullable: false), + StaffMemberId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Services", x => x.Id); + table.ForeignKey( + name: "FK_Services_StaffMembers_StaffMemberId", + column: x => x.StaffMemberId, + principalTable: "StaffMembers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Evaluations", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + PointsProcedure = table.Column(type: "float", nullable: false), + PointsCosmetics = table.Column(type: "float", nullable: false), + ProcedureId = table.Column(type: "int", nullable: false), + ClientId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Evaluations", x => x.Id); + table.ForeignKey( + name: "FK_Evaluations_Clients_ClientId", + column: x => x.ClientId, + principalTable: "Clients", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Evaluations_Procedures_ProcedureId", + column: x => x.ProcedureId, + principalTable: "Procedures", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "OrderProcedures", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + OrderId = table.Column(type: "int", nullable: false), + ProcedureId = table.Column(type: "int", nullable: false), + OrderProcedureCount = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_OrderProcedures", x => x.Id); + table.ForeignKey( + name: "FK_OrderProcedures_Orders_OrderId", + column: x => x.OrderId, + principalTable: "Orders", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_OrderProcedures_Procedures_ProcedureId", + column: x => x.ProcedureId, + principalTable: "Procedures", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Cosmetics", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + Brand = table.Column(type: "nvarchar(max)", nullable: false), + CosmeticName = table.Column(type: "nvarchar(max)", nullable: false), + CosmeticPrice = table.Column(type: "float", nullable: false), + LaborCostId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Cosmetics", x => x.Id); + table.ForeignKey( + name: "FK_Cosmetics_LaborCosts_LaborCostId", + column: x => x.LaborCostId, + principalTable: "LaborCosts", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "OrderServices", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + OrderId = table.Column(type: "int", nullable: false), + ServiceId = table.Column(type: "int", nullable: false), + OrderServiceCount = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_OrderServices", x => x.Id); + table.ForeignKey( + name: "FK_OrderServices_Orders_OrderId", + column: x => x.OrderId, + principalTable: "Orders", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_OrderServices_Services_ServiceId", + column: x => x.ServiceId, + principalTable: "Services", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "CosmeticProcedures", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + CosmeticId = table.Column(type: "int", nullable: false), + ProcedureId = table.Column(type: "int", nullable: false), + ProcedureCosmeticCount = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_CosmeticProcedures", x => x.Id); + table.ForeignKey( + name: "FK_CosmeticProcedures_Cosmetics_CosmeticId", + column: x => x.CosmeticId, + principalTable: "Cosmetics", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_CosmeticProcedures_Procedures_ProcedureId", + column: x => x.ProcedureId, + principalTable: "Procedures", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "OrderCosmetics", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + OrderId = table.Column(type: "int", nullable: false), + CosmeticId = table.Column(type: "int", nullable: false), + ProcedureId = table.Column(type: "int", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_OrderCosmetics", x => x.Id); + table.ForeignKey( + name: "FK_OrderCosmetics_Cosmetics_CosmeticId", + column: x => x.CosmeticId, + principalTable: "Cosmetics", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_OrderCosmetics_Orders_OrderId", + column: x => x.OrderId, + principalTable: "Orders", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_OrderCosmetics_Procedures_ProcedureId", + column: x => x.ProcedureId, + principalTable: "Procedures", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "ServiceCosmetics", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + CosmeticId = table.Column(type: "int", nullable: false), + ServiceId = table.Column(type: "int", nullable: false), + ServiceCosmeticCount = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ServiceCosmetics", x => x.Id); + table.ForeignKey( + name: "FK_ServiceCosmetics_Cosmetics_CosmeticId", + column: x => x.CosmeticId, + principalTable: "Cosmetics", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_ServiceCosmetics_Services_ServiceId", + column: x => x.ServiceId, + principalTable: "Services", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_CosmeticProcedures_CosmeticId", + table: "CosmeticProcedures", + column: "CosmeticId"); + + migrationBuilder.CreateIndex( + name: "IX_CosmeticProcedures_ProcedureId", + table: "CosmeticProcedures", + column: "ProcedureId"); + + migrationBuilder.CreateIndex( + name: "IX_Cosmetics_LaborCostId", + table: "Cosmetics", + column: "LaborCostId"); + + migrationBuilder.CreateIndex( + name: "IX_Evaluations_ClientId", + table: "Evaluations", + column: "ClientId"); + + migrationBuilder.CreateIndex( + name: "IX_Evaluations_ProcedureId", + table: "Evaluations", + column: "ProcedureId"); + + migrationBuilder.CreateIndex( + name: "IX_LaborCosts_StaffMemberId", + table: "LaborCosts", + column: "StaffMemberId"); + + migrationBuilder.CreateIndex( + name: "IX_OrderCosmetics_CosmeticId", + table: "OrderCosmetics", + column: "CosmeticId"); + + migrationBuilder.CreateIndex( + name: "IX_OrderCosmetics_OrderId", + table: "OrderCosmetics", + column: "OrderId"); + + migrationBuilder.CreateIndex( + name: "IX_OrderCosmetics_ProcedureId", + table: "OrderCosmetics", + column: "ProcedureId"); + + migrationBuilder.CreateIndex( + name: "IX_OrderProcedures_OrderId", + table: "OrderProcedures", + column: "OrderId"); + + migrationBuilder.CreateIndex( + name: "IX_OrderProcedures_ProcedureId", + table: "OrderProcedures", + column: "ProcedureId"); + + migrationBuilder.CreateIndex( + name: "IX_Orders_ClientId", + table: "Orders", + column: "ClientId"); + + migrationBuilder.CreateIndex( + name: "IX_OrderServices_OrderId", + table: "OrderServices", + column: "OrderId"); + + migrationBuilder.CreateIndex( + name: "IX_OrderServices_ServiceId", + table: "OrderServices", + column: "ServiceId"); + + migrationBuilder.CreateIndex( + name: "IX_Procedures_ClientId", + table: "Procedures", + column: "ClientId"); + + migrationBuilder.CreateIndex( + name: "IX_ServiceCosmetics_CosmeticId", + table: "ServiceCosmetics", + column: "CosmeticId"); + + migrationBuilder.CreateIndex( + name: "IX_ServiceCosmetics_ServiceId", + table: "ServiceCosmetics", + column: "ServiceId"); + + migrationBuilder.CreateIndex( + name: "IX_Services_StaffMemberId", + table: "Services", + column: "StaffMemberId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "CosmeticProcedures"); + + migrationBuilder.DropTable( + name: "Evaluations"); + + migrationBuilder.DropTable( + name: "OrderCosmetics"); + + migrationBuilder.DropTable( + name: "OrderProcedures"); + + migrationBuilder.DropTable( + name: "OrderServices"); + + migrationBuilder.DropTable( + name: "ServiceCosmetics"); + + migrationBuilder.DropTable( + name: "Procedures"); + + migrationBuilder.DropTable( + name: "Orders"); + + migrationBuilder.DropTable( + name: "Cosmetics"); + + migrationBuilder.DropTable( + name: "Services"); + + migrationBuilder.DropTable( + name: "Clients"); + + migrationBuilder.DropTable( + name: "LaborCosts"); + + migrationBuilder.DropTable( + name: "StaffMembers"); + } + } +} diff --git a/BeautySalonView/BeautySalonDatabaseImplement/Migrations/BeautySalonDatabaseModelSnapshot.cs b/BeautySalonView/BeautySalonDatabaseImplement/Migrations/BeautySalonDatabaseModelSnapshot.cs new file mode 100644 index 0000000..5fdde51 --- /dev/null +++ b/BeautySalonView/BeautySalonDatabaseImplement/Migrations/BeautySalonDatabaseModelSnapshot.cs @@ -0,0 +1,612 @@ +// +using System; +using BeautySalonDatabaseImplement; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace BeautySalonDatabaseImplement.Migrations +{ + [DbContext(typeof(BeautySalonDatabase))] + partial class BeautySalonDatabaseModelSnapshot : 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("BeautySalonDatabaseImplement.Models.Client", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClientEmail") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ClientFIO") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ClientLogin") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ClientPassword") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("Clients"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Cosmetic", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Brand") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CosmeticName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CosmeticPrice") + .HasColumnType("float"); + + b.Property("LaborCostId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("LaborCostId"); + + b.ToTable("Cosmetics"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.CosmeticProcedure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CosmeticId") + .HasColumnType("int"); + + b.Property("ProcedureCosmeticCount") + .HasColumnType("int"); + + b.Property("ProcedureId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CosmeticId"); + + b.HasIndex("ProcedureId"); + + b.ToTable("CosmeticProcedures"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Evaluation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClientId") + .HasColumnType("int"); + + b.Property("PointsCosmetics") + .HasColumnType("float"); + + b.Property("PointsProcedure") + .HasColumnType("float"); + + b.Property("ProcedureId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.HasIndex("ProcedureId"); + + b.ToTable("Evaluations"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.LaborCosts", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Difficulty") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberHours") + .HasColumnType("int"); + + b.Property("StaffMemberId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("StaffMemberId"); + + b.ToTable("LaborCosts"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.OrderCosmetic", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CosmeticId") + .HasColumnType("int"); + + b.Property("OrderId") + .HasColumnType("int"); + + b.Property("ProcedureId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CosmeticId"); + + b.HasIndex("OrderId"); + + b.HasIndex("ProcedureId"); + + b.ToTable("OrderCosmetics"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.OrderProcedure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("OrderId") + .HasColumnType("int"); + + b.Property("OrderProcedureCount") + .HasColumnType("int"); + + b.Property("ProcedureId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("OrderId"); + + b.HasIndex("ProcedureId"); + + b.ToTable("OrderProcedures"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.OrderService", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("OrderId") + .HasColumnType("int"); + + b.Property("OrderServiceCount") + .HasColumnType("int"); + + b.Property("ServiceId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("OrderId"); + + b.HasIndex("ServiceId"); + + b.ToTable("OrderServices"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Order_", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClientId") + .HasColumnType("int"); + + b.Property("OrderAmount") + .HasColumnType("float"); + + b.Property("OrderDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("Orders"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Procedure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClientId") + .HasColumnType("int"); + + b.Property("ProcedureName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ProcedurePrice") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("Procedures"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Service", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ServiceName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ServicePrice") + .HasColumnType("float"); + + b.Property("StaffMemberId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("StaffMemberId"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.ServiceCosmetic", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("CosmeticId") + .HasColumnType("int"); + + b.Property("ServiceCosmeticCount") + .HasColumnType("int"); + + b.Property("ServiceId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CosmeticId"); + + b.HasIndex("ServiceId"); + + b.ToTable("ServiceCosmetics"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.StaffMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("StaffMemberEmail") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StaffMemberLogin") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StaffMemberName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StaffMemberPassword") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StaffMemberPhone") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StaffMemberSpecialty") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StaffMemberSurname") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("StaffMembers"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Cosmetic", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.LaborCosts", "LaborCost") + .WithMany("Cosmetics") + .HasForeignKey("LaborCostId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("LaborCost"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.CosmeticProcedure", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Cosmetic", "Cosmetic") + .WithMany("Procedures") + .HasForeignKey("CosmeticId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Procedure", "Procedure") + .WithMany("Cosmetics") + .HasForeignKey("ProcedureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Cosmetic"); + + b.Navigation("Procedure"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Evaluation", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Client", "Client") + .WithMany("Evaluations") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Procedure", "Procedure") + .WithMany("Evaluations") + .HasForeignKey("ProcedureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Client"); + + b.Navigation("Procedure"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.LaborCosts", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.StaffMember", "StaffMember") + .WithMany("LaborsCosts") + .HasForeignKey("StaffMemberId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("StaffMember"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.OrderCosmetic", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Cosmetic", "Cosmetic") + .WithMany() + .HasForeignKey("CosmeticId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Order_", "Order") + .WithMany("Cosmetics") + .HasForeignKey("OrderId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Procedure", null) + .WithMany("Orders") + .HasForeignKey("ProcedureId"); + + b.Navigation("Cosmetic"); + + b.Navigation("Order"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.OrderProcedure", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Order_", "Order") + .WithMany("Procedures") + .HasForeignKey("OrderId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Procedure", "Procedure") + .WithMany() + .HasForeignKey("ProcedureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Order"); + + b.Navigation("Procedure"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.OrderService", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Order_", "Order") + .WithMany("Services") + .HasForeignKey("OrderId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Service", "Service") + .WithMany("Orders") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Order"); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Order_", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Client", "Client") + .WithMany("Orders") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Client"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Procedure", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Client", "Client") + .WithMany("Procedures") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Client"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Service", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.StaffMember", "StaffMember") + .WithMany("Services") + .HasForeignKey("StaffMemberId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("StaffMember"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.ServiceCosmetic", b => + { + b.HasOne("BeautySalonDatabaseImplement.Models.Cosmetic", "Cosmetic") + .WithMany("Services") + .HasForeignKey("CosmeticId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BeautySalonDatabaseImplement.Models.Service", "Service") + .WithMany("Cosmetics") + .HasForeignKey("ServiceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Cosmetic"); + + b.Navigation("Service"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Client", b => + { + b.Navigation("Evaluations"); + + b.Navigation("Orders"); + + b.Navigation("Procedures"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Cosmetic", b => + { + b.Navigation("Procedures"); + + b.Navigation("Services"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.LaborCosts", b => + { + b.Navigation("Cosmetics"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Order_", b => + { + b.Navigation("Cosmetics"); + + b.Navigation("Procedures"); + + b.Navigation("Services"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Procedure", b => + { + b.Navigation("Cosmetics"); + + b.Navigation("Evaluations"); + + b.Navigation("Orders"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.Service", b => + { + b.Navigation("Cosmetics"); + + b.Navigation("Orders"); + }); + + modelBuilder.Entity("BeautySalonDatabaseImplement.Models.StaffMember", b => + { + b.Navigation("LaborsCosts"); + + b.Navigation("Services"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/BeautySalonView/BeautySalonDatabaseImplement/Models/Evaluation.cs b/BeautySalonView/BeautySalonDatabaseImplement/Models/Evaluation.cs index 4d55a68..ab71292 100644 --- a/BeautySalonView/BeautySalonDatabaseImplement/Models/Evaluation.cs +++ b/BeautySalonView/BeautySalonDatabaseImplement/Models/Evaluation.cs @@ -22,12 +22,11 @@ namespace BeautySalonDatabaseImplement.Models [Required] public int ProcedureId { get; set; } + public virtual Procedure Procedure { get; set; } = new(); + [Required] public int ClientId { get; set; } - - public virtual Client Client { get; set; } - - public virtual Procedure Procedure { get; set; } + public virtual Client Client { get; set; } = new(); public static Evaluation? Create(EvaluationBindingModel? model) { @@ -63,7 +62,8 @@ namespace BeautySalonDatabaseImplement.Models PointsCosmetics=PointsCosmetics, ProcedureId=ProcedureId, ClientId=ClientId, - ProcedureName = Procedure.ProcedureName + Procedure_Name = Procedure.ProcedureName, + Client_Name = Client.ClientFIO }; } } diff --git a/BeautySalonView/BeautySalonDatabaseImplement/Models/Order_.cs b/BeautySalonView/BeautySalonDatabaseImplement/Models/Order_.cs index 24a7026..1de3e6c 100644 --- a/BeautySalonView/BeautySalonDatabaseImplement/Models/Order_.cs +++ b/BeautySalonView/BeautySalonDatabaseImplement/Models/Order_.cs @@ -55,6 +55,7 @@ namespace BeautySalonDatabaseImplement.Models } } + [NotMapped] public List OrderCosmetics { get @@ -114,6 +115,7 @@ namespace BeautySalonDatabaseImplement.Models OrderAmount = OrderAmount, OrderServices = OrderServices, OrderProcedures = OrderProcedures, + OrderCosmetics = OrderCosmetics, ClientId = ClientId };