From c3c37efef6118db81ee1db5e1b0b2acd432b35bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F=20=D0=A4=D0=B5=D0=B4=D0=BE=D1=82?= =?UTF-8?q?=D0=BE=D0=B2?= Date: Sat, 1 Jun 2024 05:23:37 +0400 Subject: [PATCH] Paymeant is done --- .../BusinessLogic/ReportClientLogic.cs | 2 +- .../BindingModels/PaymeantBindingModel.cs | 2 ++ .../SearchModels/PaymeantSearchModel.cs | 1 + .../ViewModels/PaymeantViewModel.cs | 7 ++++--- .../Implements/PaymeantStorage.cs | 5 +++++ ... => 20240601012156_InitMigration.Designer.cs} | 5 ++++- ...ration.cs => 20240601012156_InitMigration.cs} | 1 + .../Migrations/DatabaseModelSnapshot.cs | 3 +++ .../Models/Paymeant.cs | 8 ++++++-- .../Models/IPaymentModel.cs | 1 + .../Controllers/ClientController.cs | 11 +++++++++++ .../Controllers/HomeController.cs | 7 ++++--- .../Views/Home/Index.cshtml | 16 +++++++++++----- 13 files changed, 54 insertions(+), 15 deletions(-) rename ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/{20240601002930_InitMigration.Designer.cs => 20240601012156_InitMigration.Designer.cs} (98%) rename ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/{20240601002930_InitMigration.cs => 20240601012156_InitMigration.cs} (99%) diff --git a/ElectronicsShop/ElectronicsShopBusinessLogic/BusinessLogic/ReportClientLogic.cs b/ElectronicsShop/ElectronicsShopBusinessLogic/BusinessLogic/ReportClientLogic.cs index e6bb4c3..9cf04ff 100644 --- a/ElectronicsShop/ElectronicsShopBusinessLogic/BusinessLogic/ReportClientLogic.cs +++ b/ElectronicsShop/ElectronicsShopBusinessLogic/BusinessLogic/ReportClientLogic.cs @@ -29,7 +29,7 @@ namespace ElectronicsShopBusinessLogic.BusinessLogic var record = new ReportPaymeantsViewModel { PaymeantID=paymeant.ID, - ProductID=paymeant.ProductID, + //ProductID=paymeant.ProductID, OrderID=paymeant.OrderID, PayOption=paymeant.PayOption, SumPayment=paymeant.SumPayment, diff --git a/ElectronicsShop/ElectronicsShopContracts/BindingModels/PaymeantBindingModel.cs b/ElectronicsShop/ElectronicsShopContracts/BindingModels/PaymeantBindingModel.cs index cd7840f..30c11b3 100644 --- a/ElectronicsShop/ElectronicsShopContracts/BindingModels/PaymeantBindingModel.cs +++ b/ElectronicsShop/ElectronicsShopContracts/BindingModels/PaymeantBindingModel.cs @@ -17,5 +17,7 @@ namespace ElectronicsShopContracts.BindingModels public double SumPayment { get; set; } public PaymeantOption PayOption { get; set; } = PaymeantOption.Неоплачено; + + public int ClientID { get; set; } } } diff --git a/ElectronicsShop/ElectronicsShopContracts/SearchModels/PaymeantSearchModel.cs b/ElectronicsShop/ElectronicsShopContracts/SearchModels/PaymeantSearchModel.cs index 6332616..450909c 100644 --- a/ElectronicsShop/ElectronicsShopContracts/SearchModels/PaymeantSearchModel.cs +++ b/ElectronicsShop/ElectronicsShopContracts/SearchModels/PaymeantSearchModel.cs @@ -12,5 +12,6 @@ namespace ElectronicsShopContracts.SearchModels public int? ProductID { get; set; } public int? OrderID { get; set; } public double? SumPay { get; set; } + public int? ClientID { get; set; } } } diff --git a/ElectronicsShop/ElectronicsShopContracts/ViewModels/PaymeantViewModel.cs b/ElectronicsShop/ElectronicsShopContracts/ViewModels/PaymeantViewModel.cs index 995f035..b26ba1e 100644 --- a/ElectronicsShop/ElectronicsShopContracts/ViewModels/PaymeantViewModel.cs +++ b/ElectronicsShop/ElectronicsShopContracts/ViewModels/PaymeantViewModel.cs @@ -12,8 +12,6 @@ namespace ElectronicsShopContracts.ViewModels public class PaymeantViewModel : IPaymentModel { public int ID { get; set; } - public int ProductID { get; set; } - public int OrderID { get; set; } [DisplayName("Cумма оплаты продукта")] @@ -21,5 +19,8 @@ namespace ElectronicsShopContracts.ViewModels [DisplayName("Статус оплаты")] public PaymeantOption PayOption { get; set; } = PaymeantOption.Неоплачено; - } + + [DisplayName("Клиент")] + public int ClientID { get; set; } + } } diff --git a/ElectronicsShop/ElectronicsShopDataBaseImplement/Implements/PaymeantStorage.cs b/ElectronicsShop/ElectronicsShopDataBaseImplement/Implements/PaymeantStorage.cs index f3d10a9..0445b3d 100644 --- a/ElectronicsShop/ElectronicsShopDataBaseImplement/Implements/PaymeantStorage.cs +++ b/ElectronicsShop/ElectronicsShopDataBaseImplement/Implements/PaymeantStorage.cs @@ -48,6 +48,11 @@ namespace ElectronicsShopDataBaseImplement.Implements { return new(); } using var context = new Database(); + if (model.ClientID.HasValue) { + return context.Paymeants + .Where(x => x.ClientID == model.ClientID) + .Select(x => x.GetViewModel).ToList(); + } return context.Paymeants .Where(x => x.ID == model.ID) .Select(x => x.GetViewModel).ToList(); diff --git a/ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/20240601002930_InitMigration.Designer.cs b/ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/20240601012156_InitMigration.Designer.cs similarity index 98% rename from ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/20240601002930_InitMigration.Designer.cs rename to ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/20240601012156_InitMigration.Designer.cs index a04775f..31a2e6b 100644 --- a/ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/20240601002930_InitMigration.Designer.cs +++ b/ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/20240601012156_InitMigration.Designer.cs @@ -12,7 +12,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace ElectronicsShopDataBaseImplement.Migrations { [DbContext(typeof(Database))] - [Migration("20240601002930_InitMigration")] + [Migration("20240601012156_InitMigration")] partial class InitMigration { /// @@ -191,6 +191,9 @@ namespace ElectronicsShopDataBaseImplement.Migrations SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + b.Property("ClientID") + .HasColumnType("int"); + b.Property("OrderID") .HasColumnType("int"); diff --git a/ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/20240601002930_InitMigration.cs b/ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/20240601012156_InitMigration.cs similarity index 99% rename from ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/20240601002930_InitMigration.cs rename to ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/20240601012156_InitMigration.cs index d34bb38..780ffb3 100644 --- a/ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/20240601002930_InitMigration.cs +++ b/ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/20240601012156_InitMigration.cs @@ -112,6 +112,7 @@ namespace ElectronicsShopDataBaseImplement.Migrations ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), OrderID = table.Column(type: "int", nullable: false), + ClientID = table.Column(type: "int", nullable: false), SumPayment = table.Column(type: "float", nullable: false), PayOption = table.Column(type: "int", nullable: false), PaymentID = table.Column(type: "int", nullable: true) diff --git a/ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/DatabaseModelSnapshot.cs b/ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/DatabaseModelSnapshot.cs index bafcd57..0869eef 100644 --- a/ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/DatabaseModelSnapshot.cs +++ b/ElectronicsShop/ElectronicsShopDataBaseImplement/Migrations/DatabaseModelSnapshot.cs @@ -188,6 +188,9 @@ namespace ElectronicsShopDataBaseImplement.Migrations SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + b.Property("ClientID") + .HasColumnType("int"); + b.Property("OrderID") .HasColumnType("int"); diff --git a/ElectronicsShop/ElectronicsShopDataBaseImplement/Models/Paymeant.cs b/ElectronicsShop/ElectronicsShopDataBaseImplement/Models/Paymeant.cs index 8005f9f..851e53c 100644 --- a/ElectronicsShop/ElectronicsShopDataBaseImplement/Models/Paymeant.cs +++ b/ElectronicsShop/ElectronicsShopDataBaseImplement/Models/Paymeant.cs @@ -21,6 +21,9 @@ namespace ElectronicsShopDataBaseImplement.Models public int OrderID { get; set; } [Required] + public int ClientID { get; set; } + + [Required] public double SumPayment { get; set; } [Required] @@ -38,6 +41,7 @@ namespace ElectronicsShopDataBaseImplement.Models OrderID = model.OrderID, SumPayment = model.SumPayment, PayOption = model.PayOption, + ClientID = model.ClientID, }; } public void Update(PaymeantBindingModel? model) @@ -57,7 +61,7 @@ namespace ElectronicsShopDataBaseImplement.Models OrderID = OrderID, SumPayment = SumPayment, PayOption = PayOption, + ClientID = ClientID, }; - - } + } } diff --git a/ElectronicsShop/ElectronicsShopDataModels/Models/IPaymentModel.cs b/ElectronicsShop/ElectronicsShopDataModels/Models/IPaymentModel.cs index 77e5897..1170593 100644 --- a/ElectronicsShop/ElectronicsShopDataModels/Models/IPaymentModel.cs +++ b/ElectronicsShop/ElectronicsShopDataModels/Models/IPaymentModel.cs @@ -13,5 +13,6 @@ namespace ElectronicsShopDataModels.Models int OrderID { get; } double SumPayment { get; } PaymeantOption PayOption { get; } + int ClientID { get; } } } diff --git a/ElectronicsShop/ElectronicsShopRestAPI/Controllers/ClientController.cs b/ElectronicsShop/ElectronicsShopRestAPI/Controllers/ClientController.cs index 843d622..8598ce9 100644 --- a/ElectronicsShop/ElectronicsShopRestAPI/Controllers/ClientController.cs +++ b/ElectronicsShop/ElectronicsShopRestAPI/Controllers/ClientController.cs @@ -66,5 +66,16 @@ namespace ElectronicsShopRestAPI.Controllers { _logger.LogError(ex, "Ошибка создания оплаты"); } } + + [HttpPost] + public List? GetPaymeants(int _clientID) { + try { + return _payLogic.ReadList(new PaymeantSearchModel { ClientID = _clientID }); + } + catch (Exception ex) { + _logger.LogError(ex, $"Ошибка получения списка оплат клиента id = {_clientID}"); + throw; + } + } } } diff --git a/ElectronicsShop/ElectronicsShopShopClientApp/Controllers/HomeController.cs b/ElectronicsShop/ElectronicsShopShopClientApp/Controllers/HomeController.cs index 59c1b26..2ceec77 100644 --- a/ElectronicsShop/ElectronicsShopShopClientApp/Controllers/HomeController.cs +++ b/ElectronicsShop/ElectronicsShopShopClientApp/Controllers/HomeController.cs @@ -29,7 +29,7 @@ namespace ElectronicsShopUserApp.Controllers { if (APIClient.Client == null) { return Redirect("~/Home/Enter"); } - return View(APIClient.GetRequset>($"api/main/getorders?_clientid={APIClient.Client.ID}")); + return View(APIClient.GetRequset>($"api/client/getpaymeants?_clientid={APIClient.Client.ID}")); } [HttpGet] @@ -267,8 +267,9 @@ namespace ElectronicsShopUserApp.Controllers { } APIClient.PostRequest("api/client/createpaymeant", new PaymeantBindingModel { OrderID = id, - SumPayment = sum, - PayOption = PayOptionCalc(sum, paysum) + SumPayment = paysum, + PayOption = PayOptionCalc(sum, paysum), + ClientID = APIClient.Client.ID }); Response.Redirect("Index"); } diff --git a/ElectronicsShop/ElectronicsShopShopClientApp/Views/Home/Index.cshtml b/ElectronicsShop/ElectronicsShopShopClientApp/Views/Home/Index.cshtml index 3464ddf..ff68e3e 100644 --- a/ElectronicsShop/ElectronicsShopShopClientApp/Views/Home/Index.cshtml +++ b/ElectronicsShop/ElectronicsShopShopClientApp/Views/Home/Index.cshtml @@ -1,6 +1,6 @@ @using ElectronicsShopContracts.ViewModels -@model List +@model List @{ ViewData["Title"] = "Home Page"; @@ -20,14 +20,17 @@ + @@ -38,10 +41,13 @@ @Html.DisplayFor(modelItem => item.ID) + }
+ Номер + Номер заказа - Дата создания + Сумма к оплате - Сумма + Статус оплаты
- @Html.DisplayFor(modelItem => item.DateCreate) + @Html.DisplayFor(modelItem => item.OrderID) - @Html.DisplayFor(modelItem => item.Sum) + @Html.DisplayFor(modelItem => item.SumPayment) + + @Html.DisplayFor(modelItem => item.PayOption)