From 60c507bb4b5b1796949ea008db338ef1fd045209 Mon Sep 17 00:00:00 2001 From: dasha Date: Fri, 19 May 2023 16:49:20 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=BB=D0=B8=D1=82=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B4=D0=B5=D0=BD=D1=86=D0=B8?= =?UTF-8?q?=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HardwareShopDatabase.cs | 2 +- .../Implements/Worker/BuildStorage.cs | 3 +- .../Implements/Worker/PurchaseStorage.cs | 2 +- .../Controllers/BuildController.cs | 72 ++++---------- .../Controllers/PurchaseController.cs | 4 +- .../Controllers/HomeController.cs | 8 +- .../Views/Home/Builds.cshtml | 2 +- .../Views/Home/LinkPurchase.cshtml | 97 ++----------------- .../Views/Home/UpdatePurchase.cshtml | 5 +- 9 files changed, 39 insertions(+), 156 deletions(-) diff --git a/HardwareShop/HardwareShopDatabaseImplement/HardwareShopDatabase.cs b/HardwareShop/HardwareShopDatabaseImplement/HardwareShopDatabase.cs index 4246e31..36bfb0d 100644 --- a/HardwareShop/HardwareShopDatabaseImplement/HardwareShopDatabase.cs +++ b/HardwareShop/HardwareShopDatabaseImplement/HardwareShopDatabase.cs @@ -10,7 +10,7 @@ namespace HardwareShopDatabaseImplement { protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - optionsBuilder.UseNpgsql("Host=localhost;Port=5432;Database=Computer_Hardware_Store4;Username=postgres;Password=1234"); + optionsBuilder.UseNpgsql("Host=localhost;Port=5433;Database=Computer_Hardware_Store;Username=user;Password=12345"); AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); } diff --git a/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/BuildStorage.cs b/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/BuildStorage.cs index cfe1fbb..355c344 100644 --- a/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/BuildStorage.cs +++ b/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/BuildStorage.cs @@ -2,6 +2,7 @@ using HardwareShopContracts.SearchModels; using HardwareShopContracts.StoragesContracts; using HardwareShopContracts.ViewModels; +using HardwareShopDatabaseImplement.Models.Storekeeper; using HardwareShopDatabaseImplement.Models.Worker; using Microsoft.EntityFrameworkCore; @@ -89,7 +90,7 @@ namespace HardwareShopDatabaseImplement.Implements.Worker .Include(x => x.Purchases) .ThenInclude(x => x.Purchase) .FirstOrDefault(x => x.Id == model.Id); - if (build == null) + if (build == null || build.UserId != build.UserId) { return null; } diff --git a/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/PurchaseStorage.cs b/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/PurchaseStorage.cs index 610a11d..6545a62 100644 --- a/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/PurchaseStorage.cs +++ b/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/PurchaseStorage.cs @@ -118,7 +118,7 @@ namespace HardwareShopDatabaseImplement.Implements.Worker .Include(x => x.Goods) .ThenInclude(x => x.Good) .FirstOrDefault(x => x.Id == model.Id); - if (purchase == null) + if (purchase == null || purchase.UserId != model.UserId) { return null; } diff --git a/HardwareShop/HardwareShopRestApi/Controllers/BuildController.cs b/HardwareShop/HardwareShopRestApi/Controllers/BuildController.cs index f10fe82..83259f9 100644 --- a/HardwareShop/HardwareShopRestApi/Controllers/BuildController.cs +++ b/HardwareShop/HardwareShopRestApi/Controllers/BuildController.cs @@ -108,6 +108,8 @@ namespace HardwareShopRestApi.Controllers { try { + var build = _buildLogic.ReadElement(new() { Id = model.Id }); + model.Price = build.Price; _buildLogic.Update(model); } catch (Exception ex) @@ -117,46 +119,6 @@ namespace HardwareShopRestApi.Controllers } } - [HttpGet] - public bool LinkPurchase(int buildId, int purchaseId, int count) - { - try - { - var build = GetBuild(buildId);//APIClient.GetRequest($"api/build/getBuild?buildId={buildId}"); - var purchase = _purchaseLogic.ReadElement(new() { Id = purchaseId }); - if (purchase.PurchaseStatus == PurchaseStatus.Выдан) return false; - if (build.BuildPurchases.ContainsKey(purchaseId)) - { - - build.BuildPurchases[purchaseId] = (purchase, build.BuildPurchases[purchaseId].Item2 + count); - } - else - { - build.BuildPurchases.Add(purchaseId, (purchase as IPurchaseModel, count)); - } - Update(new BuildBindingModel - { - Id = buildId, - Price = build.Price, - BuildName = build.BuildName, - BuildPurchases = build.BuildPurchases - }); - purchase.Sum = Calc(purchase.Id); - _purchaseLogic.Update(new PurchaseBindingModel - { - Id = purchase.Id, - Sum = purchase.Sum, - PurchaseStatus = purchase.PurchaseStatus, - PurchaseGoods = purchase.PurchaseGoods, - }); - return true; - } - catch (Exception ex) - { - _logger.LogError(ex, "Ошибка обновления данных"); - throw; - } - } private double Calc(int purchaseId) { var purchase = _purchaseLogic.ReadElement(new() { Id = purchaseId }); @@ -173,16 +135,17 @@ namespace HardwareShopRestApi.Controllers } [HttpGet] - public bool DeleteLinkPurchase(int deleteBuildId, int deletePurchaseId) + public bool DeleteLinkPurchase(int deleteBuildId, int deletePurchaseId, int userId) { try { - var build = GetBuild(deleteBuildId);//APIClient.GetRequest($"api/build/getBuild?buildId={buildId}"); + var build = _buildLogic.ReadElement(new() { Id = deleteBuildId }); var purchase = _purchaseLogic.ReadElement(new() { Id = deletePurchaseId }); - if (purchase.PurchaseStatus == PurchaseStatus.Выдан) return false; - build.BuildPurchases.Remove(deletePurchaseId);//Add(purchaseId, (purchase as IPurchaseModel, count)); + if (purchase == null || build == null || build.UserId != userId || purchase.UserId != userId + || purchase.PurchaseStatus == PurchaseStatus.Выдан) return false; + build.BuildPurchases.Remove(deletePurchaseId); - Update(new BuildBindingModel + _buildLogic.Update(new BuildBindingModel { Id = deleteBuildId, Price = build.Price, @@ -208,24 +171,25 @@ namespace HardwareShopRestApi.Controllers } [HttpGet] - public bool UpdateLinkPurchase(int updateBuildId, int updatePurchaseId, int count) + public bool UpdateLinkPurchase(int buildId, int purchaseId, int count, int userId) { try { - var build = GetBuild(updateBuildId);//APIClient.GetRequest($"api/build/getBuild?buildId={buildId}"); - var purchase = _purchaseLogic.ReadElement(new() { Id = updatePurchaseId }); - if (purchase.PurchaseStatus == PurchaseStatus.Выдан) return false; - if (build.BuildPurchases.ContainsKey(updatePurchaseId)) + var build = _buildLogic.ReadElement(new() { Id = buildId }); + var purchase = _purchaseLogic.ReadElement(new() { Id = purchaseId }); + if (purchase == null || build == null || build.UserId != userId || purchase.UserId != userId + || purchase.PurchaseStatus == PurchaseStatus.Выдан) return false; + if (build.BuildPurchases.ContainsKey(purchaseId)) { - build.BuildPurchases[updatePurchaseId] = (build.BuildPurchases[updatePurchaseId].Item1, count); + build.BuildPurchases[purchaseId] = (build.BuildPurchases[purchaseId].Item1, count); } else { - return false; + build.BuildPurchases.Add(purchaseId, (purchase, count)); } - Update(new BuildBindingModel + _buildLogic.Update(new BuildBindingModel { - Id = updateBuildId, + Id = buildId, Price = build.Price, BuildName = build.BuildName, BuildPurchases = build.BuildPurchases diff --git a/HardwareShop/HardwareShopRestApi/Controllers/PurchaseController.cs b/HardwareShop/HardwareShopRestApi/Controllers/PurchaseController.cs index 06d0d52..6574119 100644 --- a/HardwareShop/HardwareShopRestApi/Controllers/PurchaseController.cs +++ b/HardwareShop/HardwareShopRestApi/Controllers/PurchaseController.cs @@ -26,12 +26,12 @@ namespace HardwareShopRestApi.Controllers } [HttpGet] - public Tuple>>? GetPurchaseUpdate(int purchaseId) + public Tuple>>? GetPurchaseUpdate(int purchaseId, int userId) { try { var purchase = _purchaseLogic.ReadElement(new() { Id = purchaseId }); - if (purchase == null) + if (purchase == null || purchase.UserId != userId) return null; var tuple = Tuple.Create(purchase, purchase.PurchaseGoods.Select(x => Tuple.Create(new GoodViewModel diff --git a/HardwareShop/HardwareShopWorkerApp/Controllers/HomeController.cs b/HardwareShop/HardwareShopWorkerApp/Controllers/HomeController.cs index d669790..c93ef27 100644 --- a/HardwareShop/HardwareShopWorkerApp/Controllers/HomeController.cs +++ b/HardwareShop/HardwareShopWorkerApp/Controllers/HomeController.cs @@ -198,7 +198,7 @@ namespace HardwareShopWorkerApp.Controllers { throw new Exception($"Количество сборок в покупке не может быть ниже или равен 0"); } - APIClient.GetRequest($"api/build/linkPurchase?buildId={buildId}&purchaseId={purchaseId}&count={count}"); + APIClient.GetRequest($"api/build/UpdateLinkPurchase?buildId={buildId}&purchaseId={purchaseId}&count={count}&userId={APIClient.User.Id}"); Response.Redirect($"LinkPurchase?buildId={buildId}"); } @@ -490,7 +490,7 @@ namespace HardwareShopWorkerApp.Controllers { throw new Exception("Вы как сюда попали? Сюда вход только авторизованным"); } - var result = APIClient.GetRequest>>?>($"api/purchase/getpurchaseupdate?purchaseId={purchaseId}"); + var result = APIClient.GetRequest>>?>($"api/purchase/getpurchaseupdate?purchaseId={purchaseId}&userId={APIClient.User.Id}"); return result; } @@ -541,7 +541,7 @@ namespace HardwareShopWorkerApp.Controllers { throw new Exception($"Идентификтаор покупки не может быть ниже или равен 0"); } - APIClient.GetRequest($"api/build/deleteLinkPurchase?deleteBuildId={deleteBuildId}&deletePurchaseId={deletePurchaseId}"); + APIClient.GetRequest($"api/build/deleteLinkPurchase?deleteBuildId={deleteBuildId}&deletePurchaseId={deletePurchaseId}&userId={APIClient.User.Id}"); Response.Redirect($"LinkPurchase?buildId={deleteBuildId}"); } @@ -560,7 +560,7 @@ namespace HardwareShopWorkerApp.Controllers { throw new Exception($"Идентификтаор покупки не может быть ниже или равен 0"); } - APIClient.GetRequest($"api/build/UpdateLinkPurchase?updateBuildId={updateBuildId}&updatePurchaseId={updatePurchaseId}&count={count}"); + APIClient.GetRequest($"api/build/UpdateLinkPurchase?updateBuildId={updateBuildId}&updatePurchaseId={updatePurchaseId}&count={count}&userId={APIClient.User.Id}"); Response.Redirect($"LinkPurchase?buildId={updateBuildId}"); } diff --git a/HardwareShop/HardwareShopWorkerApp/Views/Home/Builds.cshtml b/HardwareShop/HardwareShopWorkerApp/Views/Home/Builds.cshtml index fdcf77d..5fe7d48 100644 --- a/HardwareShop/HardwareShopWorkerApp/Views/Home/Builds.cshtml +++ b/HardwareShop/HardwareShopWorkerApp/Views/Home/Builds.cshtml @@ -98,7 +98,7 @@ diff --git a/HardwareShop/HardwareShopWorkerApp/Views/Home/LinkPurchase.cshtml b/HardwareShop/HardwareShopWorkerApp/Views/Home/LinkPurchase.cshtml index 4a7cc40..7c8bad6 100644 --- a/HardwareShop/HardwareShopWorkerApp/Views/Home/LinkPurchase.cshtml +++ b/HardwareShop/HardwareShopWorkerApp/Views/Home/LinkPurchase.cshtml @@ -74,16 +74,16 @@