diff --git a/SewingDresses/SewingDressesClientApp/APIClient.cs b/SewingDresses/SewingDressesClientApp/APIClient.cs index d1f9ccb..74e0f82 100644 --- a/SewingDresses/SewingDressesClientApp/APIClient.cs +++ b/SewingDresses/SewingDressesClientApp/APIClient.cs @@ -10,7 +10,7 @@ namespace SewingDressesClientApp public static ClientViewModel? Client { get; set; } = null; public static void Connect(IConfiguration configuration) { - _client.BaseAddress = new Uri(configuration["IPAddress"]); + _client.BaseAddress = new Uri(configuration["IPAddress"]!); _client.DefaultRequestHeaders.Accept.Clear(); _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); } diff --git a/SewingDresses/SewingDressesClientApp/Controllers/HomeController.cs b/SewingDresses/SewingDressesClientApp/Controllers/HomeController.cs index f05fac0..e2e565a 100644 --- a/SewingDresses/SewingDressesClientApp/Controllers/HomeController.cs +++ b/SewingDresses/SewingDressesClientApp/Controllers/HomeController.cs @@ -3,9 +3,8 @@ using SewingDressesContracts.ViewModels; using SewingDressesClientApp.Models; using Microsoft.AspNetCore.Mvc; using System.Diagnostics; -using SewingDressesClientApp; -namespace AbstractShowClientApp.Controllers +namespace SewingDressesClientApp.Controllers { public class HomeController : Controller { @@ -18,7 +17,7 @@ namespace AbstractShowClientApp.Controllers { if (APIClient.Client == null) { - return Redirect("~/Home/Enter"); + return View("Enter"); } return View(APIClient.GetRequest>($"api/main/getorders?clientId={APIClient.Client.Id}")); @@ -28,7 +27,7 @@ namespace AbstractShowClientApp.Controllers { if (APIClient.Client == null) { - return Redirect("~/Home/Enter"); + return View("Enter"); } return View(APIClient.Client); } @@ -57,8 +56,7 @@ namespace AbstractShowClientApp.Controllers APIClient.Client.Password = password; Response.Redirect("Index"); } - [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, - NoStore = true)] + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] public IActionResult Error() { return View(new ErrorViewModel diff --git a/SewingDresses/SewingDressesClientApp/Program.cs b/SewingDresses/SewingDressesClientApp/Program.cs index d4a802f..019c990 100644 --- a/SewingDresses/SewingDressesClientApp/Program.cs +++ b/SewingDresses/SewingDressesClientApp/Program.cs @@ -1,20 +1,28 @@ -using AbstractShowClientApp; using SewingDressesClientApp; var builder = WebApplication.CreateBuilder(args); -builder.Services.AddControllersWithViews(); + +builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation(); + var app = builder.Build(); + APIClient.Connect(builder.Configuration); + if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } + app.UseHttpsRedirection(); app.UseStaticFiles(); + app.UseRouting(); + app.UseAuthorization(); + app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); -app.Run(); + +app.Run(); \ No newline at end of file diff --git a/SewingDresses/SewingDressesClientApp/SewingDressesClientApp.csproj b/SewingDresses/SewingDressesClientApp/SewingDressesClientApp.csproj index f91383f..a5c72d4 100644 --- a/SewingDresses/SewingDressesClientApp/SewingDressesClientApp.csproj +++ b/SewingDresses/SewingDressesClientApp/SewingDressesClientApp.csproj @@ -7,20 +7,12 @@ + - - - - - - - - Never - - + diff --git a/SewingDresses/SewingDressesClientApp/Views/Home/Create.cshtml b/SewingDresses/SewingDressesClientApp/Views/Home/Create.cshtml index cc52e67..5213a3e 100644 --- a/SewingDresses/SewingDressesClientApp/Views/Home/Create.cshtml +++ b/SewingDresses/SewingDressesClientApp/Views/Home/Create.cshtml @@ -6,7 +6,7 @@
-
Изделие:
+
Платье:
diff --git a/SewingDresses/SewingDressesClientApp/Views/Shared/_Layout.cshtml b/SewingDresses/SewingDressesClientApp/Views/Shared/_Layout.cshtml index 9c0cf60..4e72d75 100644 --- a/SewingDresses/SewingDressesClientApp/Views/Shared/_Layout.cshtml +++ b/SewingDresses/SewingDressesClientApp/Views/Shared/_Layout.cshtml @@ -3,10 +3,10 @@ - @ViewData["Title"] - AbstractShowClientApp + @ViewData["Title"] - SewingDressesClientApp - +
@@ -44,7 +44,7 @@
- © 2023 - AbstractShowClientApp - Privacy + © 2023 - SewingDressesClientApp - Privacy
diff --git a/SewingDresses/SewingDressesClientApp/appsettings.json b/SewingDresses/SewingDressesClientApp/appsettings.json index 519786a..db9a63b 100644 --- a/SewingDresses/SewingDressesClientApp/appsettings.json +++ b/SewingDresses/SewingDressesClientApp/appsettings.json @@ -6,6 +6,5 @@ } }, "AllowedHosts": "*", - - "IPAddress" : "http://localhost:5159/" -} + "IPAddress": "http://localhost:7225/" +} \ No newline at end of file diff --git a/SewingDresses/SewingDressesDatabaseImplement/Migrations/20240308104531_InitialCreate.Designer.cs b/SewingDresses/SewingDressesDatabaseImplement/Migrations/20240403180823_InitialCreate.Designer.cs similarity index 77% rename from SewingDresses/SewingDressesDatabaseImplement/Migrations/20240308104531_InitialCreate.Designer.cs rename to SewingDresses/SewingDressesDatabaseImplement/Migrations/20240403180823_InitialCreate.Designer.cs index 46f8028..d620a73 100644 --- a/SewingDresses/SewingDressesDatabaseImplement/Migrations/20240308104531_InitialCreate.Designer.cs +++ b/SewingDresses/SewingDressesDatabaseImplement/Migrations/20240403180823_InitialCreate.Designer.cs @@ -9,10 +9,10 @@ using SewingDressesDatabaseImplement; #nullable disable -namespace SewingDressesDatabaseImplement1.Migrations +namespace SewingDressesDatabaseImplement.Migrations { [DbContext(typeof(SewingDressesDatabase))] - [Migration("20240308104531_InitialCreate")] + [Migration("20240403180823_InitialCreate")] partial class InitialCreate { /// @@ -20,11 +20,36 @@ namespace SewingDressesDatabaseImplement1.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "8.0.2") + .HasAnnotation("ProductVersion", "7.0.16") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + modelBuilder.Entity("SewingDressesDatabaseImplement.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("SewingDressesDatabaseImplement.Models.Component", b => { b.Property("Id") @@ -99,6 +124,9 @@ namespace SewingDressesDatabaseImplement1.Migrations SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + b.Property("ClientId") + .HasColumnType("int"); + b.Property("Count") .HasColumnType("int"); @@ -119,6 +147,8 @@ namespace SewingDressesDatabaseImplement1.Migrations b.HasKey("Id"); + b.HasIndex("ClientId"); + b.HasIndex("DressId"); b.ToTable("Orders"); @@ -145,6 +175,12 @@ namespace SewingDressesDatabaseImplement1.Migrations modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Order", b => { + b.HasOne("SewingDressesDatabaseImplement.Models.Client", null) + .WithMany("Orders") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + b.HasOne("SewingDressesDatabaseImplement.Models.Dress", null) .WithMany("Orders") .HasForeignKey("DressId") @@ -152,6 +188,11 @@ namespace SewingDressesDatabaseImplement1.Migrations .IsRequired(); }); + modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Client", b => + { + b.Navigation("Orders"); + }); + modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Component", b => { b.Navigation("DressComponents"); diff --git a/SewingDresses/SewingDressesDatabaseImplement/Migrations/20240308104531_InitialCreate.cs b/SewingDresses/SewingDressesDatabaseImplement/Migrations/20240403180823_InitialCreate.cs similarity index 78% rename from SewingDresses/SewingDressesDatabaseImplement/Migrations/20240308104531_InitialCreate.cs rename to SewingDresses/SewingDressesDatabaseImplement/Migrations/20240403180823_InitialCreate.cs index a84c1b1..9f21d04 100644 --- a/SewingDresses/SewingDressesDatabaseImplement/Migrations/20240308104531_InitialCreate.cs +++ b/SewingDresses/SewingDressesDatabaseImplement/Migrations/20240403180823_InitialCreate.cs @@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations; #nullable disable -namespace SewingDressesDatabaseImplement1.Migrations +namespace SewingDressesDatabaseImplement.Migrations { /// public partial class InitialCreate : Migration @@ -11,6 +11,21 @@ namespace SewingDressesDatabaseImplement1.Migrations /// 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: "Components", columns: table => new @@ -73,6 +88,7 @@ namespace SewingDressesDatabaseImplement1.Migrations Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), DressId = table.Column(type: "int", nullable: false), + ClientId = table.Column(type: "int", nullable: false), Count = table.Column(type: "int", nullable: false), Sum = table.Column(type: "float", nullable: false), Status = table.Column(type: "int", nullable: false), @@ -82,6 +98,12 @@ namespace SewingDressesDatabaseImplement1.Migrations 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); table.ForeignKey( name: "FK_Orders_Dresses_DressId", column: x => x.DressId, @@ -100,6 +122,11 @@ namespace SewingDressesDatabaseImplement1.Migrations table: "DressComponents", column: "DressId"); + migrationBuilder.CreateIndex( + name: "IX_Orders_ClientId", + table: "Orders", + column: "ClientId"); + migrationBuilder.CreateIndex( name: "IX_Orders_DressId", table: "Orders", @@ -118,6 +145,9 @@ namespace SewingDressesDatabaseImplement1.Migrations migrationBuilder.DropTable( name: "Components"); + migrationBuilder.DropTable( + name: "Clients"); + migrationBuilder.DropTable( name: "Dresses"); } diff --git a/SewingDresses/SewingDressesDatabaseImplement/Migrations/SewingDressesDatabaseModelSnapshot.cs b/SewingDresses/SewingDressesDatabaseImplement/Migrations/SewingDressesDatabaseModelSnapshot.cs index c67a266..c8ce769 100644 --- a/SewingDresses/SewingDressesDatabaseImplement/Migrations/SewingDressesDatabaseModelSnapshot.cs +++ b/SewingDresses/SewingDressesDatabaseImplement/Migrations/SewingDressesDatabaseModelSnapshot.cs @@ -8,7 +8,7 @@ using SewingDressesDatabaseImplement; #nullable disable -namespace SewingDressesDatabaseImplement1.Migrations +namespace SewingDressesDatabaseImplement.Migrations { [DbContext(typeof(SewingDressesDatabase))] partial class SewingDressesDatabaseModelSnapshot : ModelSnapshot @@ -17,11 +17,36 @@ namespace SewingDressesDatabaseImplement1.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "8.0.2") + .HasAnnotation("ProductVersion", "7.0.16") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + modelBuilder.Entity("SewingDressesDatabaseImplement.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("SewingDressesDatabaseImplement.Models.Component", b => { b.Property("Id") @@ -96,6 +121,9 @@ namespace SewingDressesDatabaseImplement1.Migrations SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + b.Property("ClientId") + .HasColumnType("int"); + b.Property("Count") .HasColumnType("int"); @@ -116,6 +144,8 @@ namespace SewingDressesDatabaseImplement1.Migrations b.HasKey("Id"); + b.HasIndex("ClientId"); + b.HasIndex("DressId"); b.ToTable("Orders"); @@ -142,6 +172,12 @@ namespace SewingDressesDatabaseImplement1.Migrations modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Order", b => { + b.HasOne("SewingDressesDatabaseImplement.Models.Client", null) + .WithMany("Orders") + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + b.HasOne("SewingDressesDatabaseImplement.Models.Dress", null) .WithMany("Orders") .HasForeignKey("DressId") @@ -149,6 +185,11 @@ namespace SewingDressesDatabaseImplement1.Migrations .IsRequired(); }); + modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Client", b => + { + b.Navigation("Orders"); + }); + modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Component", b => { b.Navigation("DressComponents"); diff --git a/SewingDresses/SewingDressesDatabaseImplement/SewingDressesDatabaseImplement.csproj b/SewingDresses/SewingDressesDatabaseImplement/SewingDressesDatabaseImplement.csproj index 2574adc..020576c 100644 --- a/SewingDresses/SewingDressesDatabaseImplement/SewingDressesDatabaseImplement.csproj +++ b/SewingDresses/SewingDressesDatabaseImplement/SewingDressesDatabaseImplement.csproj @@ -20,4 +20,8 @@ + + + +