From 0d4201259ed42a0599a89960012ef2ebdd2bec4c Mon Sep 17 00:00:00 2001 From: Leozillo73 <76777036+Leozillo73@users.noreply.github.com> Date: Sun, 28 Apr 2024 18:17:38 +0400 Subject: [PATCH] =?UTF-8?q?ClientApp+,=20=D0=9C=D0=B8=D0=B3=D1=80=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- git/JurasicZoo/JurasicZoo/ZooView.csproj | 11 + git/JurasicZoo/ZooClientApp/Program.cs | 18 +- .../Implements/EmployeeStorage.cs | 5 +- .../20240428140917_InitialCreate.Designer.cs | 220 ++++++++++++++++++ .../20240428140917_InitialCreate.cs | 150 ++++++++++++ .../Migrations/ZooDatabaseModelSnapshot.cs | 217 +++++++++++++++++ .../ZooDataBaseImplement/Models/Preserve.cs | 2 +- .../ZooShowEmployeeApp/appsettings.json | 2 +- 8 files changed, 611 insertions(+), 14 deletions(-) create mode 100644 git/JurasicZoo/ZooDataBaseImplement/Migrations/20240428140917_InitialCreate.Designer.cs create mode 100644 git/JurasicZoo/ZooDataBaseImplement/Migrations/20240428140917_InitialCreate.cs create mode 100644 git/JurasicZoo/ZooDataBaseImplement/Migrations/ZooDatabaseModelSnapshot.cs diff --git a/git/JurasicZoo/JurasicZoo/ZooView.csproj b/git/JurasicZoo/JurasicZoo/ZooView.csproj index 13ee123..e82dbb3 100644 --- a/git/JurasicZoo/JurasicZoo/ZooView.csproj +++ b/git/JurasicZoo/JurasicZoo/ZooView.csproj @@ -8,6 +8,17 @@ enable + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + True diff --git a/git/JurasicZoo/ZooClientApp/Program.cs b/git/JurasicZoo/ZooClientApp/Program.cs index 559dd3a..8b72d1c 100644 --- a/git/JurasicZoo/ZooClientApp/Program.cs +++ b/git/JurasicZoo/ZooClientApp/Program.cs @@ -1,10 +1,12 @@ -var builder = WebApplication.CreateBuilder(args); +using ZooClientApp; +using Microsoft.EntityFrameworkCore.Infrastructure; + +var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllersWithViews(); - var app = builder.Build(); - +APIClient.Connect(builder.Configuration); // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { @@ -12,16 +14,12 @@ if (!app.Environment.IsDevelopment()) // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } - app.UseHttpsRedirection(); app.UseStaticFiles(); - app.UseRouting(); - app.UseAuthorization(); - app.MapControllerRoute( - name: "default", - pattern: "{controller=Home}/{action=Index}/{id?}"); - + name: "default", + pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run(); + diff --git a/git/JurasicZoo/ZooDataBaseImplement/Implements/EmployeeStorage.cs b/git/JurasicZoo/ZooDataBaseImplement/Implements/EmployeeStorage.cs index aa3409d..391c409 100644 --- a/git/JurasicZoo/ZooDataBaseImplement/Implements/EmployeeStorage.cs +++ b/git/JurasicZoo/ZooDataBaseImplement/Implements/EmployeeStorage.cs @@ -6,13 +6,14 @@ using System.Text; using System.Threading.Tasks; using ZooContracts.BindingModels; using ZooContracts.SearchModels; +using ZooContracts.StorageContracts; using ZooContracts.ViewModels; using ZooDataBaseImplement.Models; namespace ZooDataBaseImplement.Implements { - public class EmployeeStorage : DbContext - { + public class EmployeeStorage : IEmployeeStorage + { public EmployeeViewModel? Delete(EmployeeBindingModel model) { using var context = new ZooDatabase(); diff --git a/git/JurasicZoo/ZooDataBaseImplement/Migrations/20240428140917_InitialCreate.Designer.cs b/git/JurasicZoo/ZooDataBaseImplement/Migrations/20240428140917_InitialCreate.Designer.cs new file mode 100644 index 0000000..9b9d55d --- /dev/null +++ b/git/JurasicZoo/ZooDataBaseImplement/Migrations/20240428140917_InitialCreate.Designer.cs @@ -0,0 +1,220 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using ZooDataBaseImplement; + +#nullable disable + +namespace ZooDataBaseImplement.Migrations +{ + [DbContext(typeof(ZooDatabase))] + [Migration("20240428140917_InitialCreate")] + partial class InitialCreate + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.18") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Client", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClientFIO") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EMail") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("Clients"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Employee", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("EmployeeFIO") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Login") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("Employees"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Preserve", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("EmployeeId") + .HasColumnType("int"); + + b.Property("PreserveName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PreservePrice") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.HasIndex("EmployeeId"); + + b.ToTable("Preserves"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Route", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClientId") + .HasColumnType("int"); + + b.Property("DateFinish") + .HasColumnType("datetime2"); + + b.Property("DateStart") + .HasColumnType("datetime2"); + + b.Property("RouteName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RoutePrice") + .HasColumnType("float"); + + b.Property("Status") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("Routes"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.RoutePreserve", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("PreserveID") + .HasColumnType("int"); + + b.Property("RouteID") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("PreserveID"); + + b.ToTable("RoutePreserves"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Preserve", b => + { + b.HasOne("ZooDataBaseImplement.Models.Employee", null) + .WithMany("Preserves") + .HasForeignKey("EmployeeId"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Route", b => + { + b.HasOne("ZooDataBaseImplement.Models.Client", "Client") + .WithMany("Routes") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Client"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.RoutePreserve", b => + { + b.HasOne("ZooDataBaseImplement.Models.Preserve", "Preserve") + .WithMany("RoutePreserves") + .HasForeignKey("PreserveID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ZooDataBaseImplement.Models.Route", "Route") + .WithMany("Preserves") + .HasForeignKey("PreserveID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Preserve"); + + b.Navigation("Route"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Client", b => + { + b.Navigation("Routes"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Employee", b => + { + b.Navigation("Preserves"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Preserve", b => + { + b.Navigation("RoutePreserves"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Route", b => + { + b.Navigation("Preserves"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/git/JurasicZoo/ZooDataBaseImplement/Migrations/20240428140917_InitialCreate.cs b/git/JurasicZoo/ZooDataBaseImplement/Migrations/20240428140917_InitialCreate.cs new file mode 100644 index 0000000..9916061 --- /dev/null +++ b/git/JurasicZoo/ZooDataBaseImplement/Migrations/20240428140917_InitialCreate.cs @@ -0,0 +1,150 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace ZooDataBaseImplement.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"), + ClientFIO = table.Column(type: "nvarchar(max)", nullable: false), + EMail = table.Column(type: "nvarchar(max)", nullable: false), + Password = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Clients", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Employees", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + EmployeeFIO = table.Column(type: "nvarchar(max)", nullable: false), + Login = table.Column(type: "nvarchar(max)", nullable: false), + Password = table.Column(type: "nvarchar(max)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Employees", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Routes", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + ClientId = table.Column(type: "int", nullable: false), + RouteName = table.Column(type: "nvarchar(max)", nullable: false), + RoutePrice = table.Column(type: "float", nullable: false), + Status = table.Column(type: "int", nullable: false), + DateStart = table.Column(type: "datetime2", nullable: false), + DateFinish = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Routes", x => x.Id); + table.ForeignKey( + name: "FK_Routes_Clients_ClientId", + column: x => x.ClientId, + principalTable: "Clients", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "Preserves", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + PreserveName = table.Column(type: "nvarchar(max)", nullable: false), + PreservePrice = table.Column(type: "float", nullable: false), + EmployeeId = table.Column(type: "int", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Preserves", x => x.Id); + table.ForeignKey( + name: "FK_Preserves_Employees_EmployeeId", + column: x => x.EmployeeId, + principalTable: "Employees", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "RoutePreserves", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + RouteID = table.Column(type: "int", nullable: false), + PreserveID = table.Column(type: "int", nullable: false), + Count = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_RoutePreserves", x => x.Id); + table.ForeignKey( + name: "FK_RoutePreserves_Preserves_PreserveID", + column: x => x.PreserveID, + principalTable: "Preserves", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_RoutePreserves_Routes_PreserveID", + column: x => x.PreserveID, + principalTable: "Routes", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_Preserves_EmployeeId", + table: "Preserves", + column: "EmployeeId"); + + migrationBuilder.CreateIndex( + name: "IX_RoutePreserves_PreserveID", + table: "RoutePreserves", + column: "PreserveID"); + + migrationBuilder.CreateIndex( + name: "IX_Routes_ClientId", + table: "Routes", + column: "ClientId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "RoutePreserves"); + + migrationBuilder.DropTable( + name: "Preserves"); + + migrationBuilder.DropTable( + name: "Routes"); + + migrationBuilder.DropTable( + name: "Employees"); + + migrationBuilder.DropTable( + name: "Clients"); + } + } +} diff --git a/git/JurasicZoo/ZooDataBaseImplement/Migrations/ZooDatabaseModelSnapshot.cs b/git/JurasicZoo/ZooDataBaseImplement/Migrations/ZooDatabaseModelSnapshot.cs new file mode 100644 index 0000000..88d64c2 --- /dev/null +++ b/git/JurasicZoo/ZooDataBaseImplement/Migrations/ZooDatabaseModelSnapshot.cs @@ -0,0 +1,217 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using ZooDataBaseImplement; + +#nullable disable + +namespace ZooDataBaseImplement.Migrations +{ + [DbContext(typeof(ZooDatabase))] + partial class ZooDatabaseModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.18") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Client", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClientFIO") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EMail") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("Clients"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Employee", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("EmployeeFIO") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Login") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("Employees"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Preserve", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("EmployeeId") + .HasColumnType("int"); + + b.Property("PreserveName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PreservePrice") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.HasIndex("EmployeeId"); + + b.ToTable("Preserves"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Route", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClientId") + .HasColumnType("int"); + + b.Property("DateFinish") + .HasColumnType("datetime2"); + + b.Property("DateStart") + .HasColumnType("datetime2"); + + b.Property("RouteName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RoutePrice") + .HasColumnType("float"); + + b.Property("Status") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("Routes"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.RoutePreserve", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("PreserveID") + .HasColumnType("int"); + + b.Property("RouteID") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("PreserveID"); + + b.ToTable("RoutePreserves"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Preserve", b => + { + b.HasOne("ZooDataBaseImplement.Models.Employee", null) + .WithMany("Preserves") + .HasForeignKey("EmployeeId"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Route", b => + { + b.HasOne("ZooDataBaseImplement.Models.Client", "Client") + .WithMany("Routes") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Client"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.RoutePreserve", b => + { + b.HasOne("ZooDataBaseImplement.Models.Preserve", "Preserve") + .WithMany("RoutePreserves") + .HasForeignKey("PreserveID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ZooDataBaseImplement.Models.Route", "Route") + .WithMany("Preserves") + .HasForeignKey("PreserveID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Preserve"); + + b.Navigation("Route"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Client", b => + { + b.Navigation("Routes"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Employee", b => + { + b.Navigation("Preserves"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Preserve", b => + { + b.Navigation("RoutePreserves"); + }); + + modelBuilder.Entity("ZooDataBaseImplement.Models.Route", b => + { + b.Navigation("Preserves"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/git/JurasicZoo/ZooDataBaseImplement/Models/Preserve.cs b/git/JurasicZoo/ZooDataBaseImplement/Models/Preserve.cs index a051819..85421cd 100644 --- a/git/JurasicZoo/ZooDataBaseImplement/Models/Preserve.cs +++ b/git/JurasicZoo/ZooDataBaseImplement/Models/Preserve.cs @@ -18,7 +18,7 @@ namespace ZooDataBaseImplement.Models public string PreserveName { get; set; } = string.Empty; [Required] public double PreservePrice { get; set; } - [ForeignKey("PreserveId")] + [ForeignKey("PreserveID")] public virtual List RoutePreserves{ get; set; } = new(); public static Preserve? Create(PreserveBindingModel model) diff --git a/git/JurasicZoo/ZooShowEmployeeApp/appsettings.json b/git/JurasicZoo/ZooShowEmployeeApp/appsettings.json index 3de6c63..685c337 100644 --- a/git/JurasicZoo/ZooShowEmployeeApp/appsettings.json +++ b/git/JurasicZoo/ZooShowEmployeeApp/appsettings.json @@ -6,6 +6,6 @@ } }, "AllowedHosts": "*", - "IPAddress": "http://localhost:5044/" + "IPAddress": "http://localhost:7230/" }