diff --git a/FurnitureAssembly/FurnitureAssemblyBusinessLogic/BusinessLogics/SetLogic.cs b/FurnitureAssembly/FurnitureAssemblyBusinessLogic/BusinessLogics/SetLogic.cs index 4b59ff0..8c84d0b 100644 --- a/FurnitureAssembly/FurnitureAssemblyBusinessLogic/BusinessLogics/SetLogic.cs +++ b/FurnitureAssembly/FurnitureAssemblyBusinessLogic/BusinessLogics/SetLogic.cs @@ -50,15 +50,16 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics _logger.LogInformation("ReadElement find. Id:{Id}", element.Id); return element; } - public bool Create(SetBindingModel model) + public SetViewModel? Create(SetBindingModel model) { CheckModel(model); - if (_SetStorage.Insert(model) == null) + var set = _SetStorage.Insert(model); + if (set == null) { _logger.LogWarning("Insert operation failed"); - return false; + return null; } - return true; + return set; } public bool Update(SetBindingModel model) { diff --git a/FurnitureAssembly/FurnitureAssemblyContracts/BusinessLogicContracts/ISetLogic.cs b/FurnitureAssembly/FurnitureAssemblyContracts/BusinessLogicContracts/ISetLogic.cs index 4e60c4b..e54f717 100644 --- a/FurnitureAssembly/FurnitureAssemblyContracts/BusinessLogicContracts/ISetLogic.cs +++ b/FurnitureAssembly/FurnitureAssemblyContracts/BusinessLogicContracts/ISetLogic.cs @@ -14,7 +14,7 @@ namespace FurnitureAssemblyContracts.BusinessLogicContracts { List? ReadList(SetSearchModel? model); SetViewModel? ReadElement(SetSearchModel model); - bool Create(SetBindingModel model); + SetViewModel? Create(SetBindingModel model); bool Update(SetBindingModel model); bool AddFurnitureModuleInSet(SetSearchModel model, IFurnitureModuleModel furnitureModule, int count); bool Delete(SetBindingModel model); diff --git a/FurnitureAssembly/FurnitureAssemblyRestApi/Controllers/SetController.cs b/FurnitureAssembly/FurnitureAssemblyRestApi/Controllers/SetController.cs index c9ca543..59cbebc 100644 --- a/FurnitureAssembly/FurnitureAssemblyRestApi/Controllers/SetController.cs +++ b/FurnitureAssembly/FurnitureAssemblyRestApi/Controllers/SetController.cs @@ -108,11 +108,11 @@ namespace FurnitureAssemblyRestApi.Controllers } } [HttpPost] - public void AddSet(SetBindingModel model) + public SetViewModel? AddSet(SetBindingModel model) { try { - _set.Create(model); + return _set.Create(model); } catch (Exception ex) { diff --git a/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Controllers/HomeController.cs b/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Controllers/HomeController.cs index cd9ac83..234229f 100644 --- a/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Controllers/HomeController.cs +++ b/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Controllers/HomeController.cs @@ -11,6 +11,7 @@ using System.Web.Helpers; using System.Reflection; using FurnitureAssemblyBusinessLogic.BusinessLogics; using FurnitureAssemblyContracts.BusinessLogicContracts; +using FurnitureAssemblyDatabaseImplement.Models; namespace FurnitureAssemblyWorkerClientApp.Controllers { @@ -132,10 +133,10 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers [HttpGet] public IActionResult CreateSet() { - return View(); + return View((APIClient.GetRequest>($"api/furnituremodule/getfurnituremodulelistbyuser?userId={APIClient.User.Id}"))); } [HttpPost] - public void CreateSet(string name, double cost) + public void CreateSet(string name, double cost, int[] furnitureModuleIds, int[] counts) { if (APIClient.User == null) { @@ -149,12 +150,23 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers { throw new Exception("Стоимость гарнитура не корректна"); } - APIClient.PostRequest("api/set/addset", new SetBindingModel + var set = APIClient.PostRequest("api/set/addset", new SetBindingModel { Name = name, Cost = cost, UserId = APIClient.User.Id }); + if (furnitureModuleIds != null && furnitureModuleIds.Length > 0 && counts != null && furnitureModuleIds.Length == counts.Length) + { + for (int i = 0; i < counts.Length; i++) + { + APIClient.PostRequest("api/set/addfurnituremoduleinset", Tuple.Create( + new SetSearchModel() { Id = set.Id }, + new FurnitureModuleViewModel() { Id = furnitureModuleIds[i] }, + counts[i] + )); + } + } Response.Redirect("Sets"); } [HttpGet] diff --git a/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Models/ErrorViewModel.cs b/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Models/ErrorViewModel.cs index 1bce34f..9bf341a 100644 --- a/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Models/ErrorViewModel.cs +++ b/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Models/ErrorViewModel.cs @@ -4,6 +4,7 @@ namespace FurnitureAssemblyWorkerClientApp.Models { public string? RequestId { get; set; } public int? Code { get; set; } + public string? Content { get; set; } public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); } } \ No newline at end of file diff --git a/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Program.cs b/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Program.cs index 5fee363..02cbc58 100644 --- a/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Program.cs +++ b/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Program.cs @@ -23,12 +23,12 @@ builder.Services.AddControllersWithViews(); var app = builder.Build(); APIClient.Connect(builder.Configuration); // Configure the HTTP request pipeline. -//if (app.Environment.IsDevelopment()) -//{ +if (!app.Environment.IsDevelopment()) +{ app.UseExceptionHandler("/Home/Error"); // 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(); diff --git a/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Views/Home/CreateSet.cshtml b/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Views/Home/CreateSet.cshtml index 72fb957..d5f1e30 100644 --- a/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Views/Home/CreateSet.cshtml +++ b/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Views/Home/CreateSet.cshtml @@ -1,6 +1,8 @@ -@{ +@using FurnitureAssemblyContracts.ViewModels; +@{ ViewData["Title"] = "Создание гарнитура"; } +@model List

Создание гарнитура

@@ -13,6 +15,49 @@
Стоимость:
+ + + + + + + + + + + + @foreach (var item in Model) + { + + + + + + + + } + +
+ + + Название + + Стоимость + + Дата создания + + Количество +
+ + + @Html.DisplayFor(modelItem => item.Name) + + @Html.DisplayFor(modelItem => item.Cost) + + @Html.DisplayFor(modelItem => item.DateCreate) + + +
diff --git a/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Views/Home/Error.cshtml b/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Views/Home/Error.cshtml index c846dba..0800809 100644 --- a/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Views/Home/Error.cshtml +++ b/FurnitureAssembly/FurnitureAssemblyWorkerClientApp/Views/Home/Error.cshtml @@ -1,8 +1,4 @@ -@page "{code?}" -@model ErrorViewModel -@{ - ViewData["Title"] = "Ошибка"; -} +@model FurnitureAssemblyWorkerClientApp.Models.ErrorViewModel

Произошла ошибка

@if (Model.ShowRequestId)