From 57c5508b9a682c6152167480e6f69c7346160e75 Mon Sep 17 00:00:00 2001 From: Artyom_Yashin Date: Sat, 25 May 2024 21:57:02 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=81=D1=82=D0=B0=D0=BB=D0=BE=D1=81?= =?UTF-8?q?=D1=8C=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D1=8F=D0=B2=D0=BE=D0=BA=20=D0=B8=20=D0=BE?= =?UTF-8?q?=D1=82=D1=87=D0=B5=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessLogic/CardLogic.cs | 13 +++ .../BusinessLogic/OperationLogic.cs | 13 +++ .../BusinessLogic/RequestLogic.cs | 4 +- .../Controllers/HomeController.cs | 98 +++++++++++++++++-- .../BankClientApp/Views/Home/Operation.cshtml | 1 + .../Views/Home/OperationTransfer.cshtml | 22 ++--- .../Views/Home/RequestUpdate.cshtml | 14 +-- .../BindingModels/OperationBindingModel.cs | 1 + .../IOperationLogic.cs | 1 + .../BusinessLogicsContracts/IRequestLogic.cs | 2 +- .../SearchModels/CardSearchModel.cs | 1 + .../StoragesContracts/ICardStorage.cs | 1 + .../StoragesContracts/IOperationStorage.cs | 2 + .../StoragesContracts/IRequestStorage.cs | 2 +- .../Implements/CardStorage.cs | 9 ++ .../Implements/OperationStorage.cs | 31 +++++- .../Implements/RequestStorage.cs | 21 ++-- .../Migrations/BankDatabaseModelSnapshot.cs | 20 ++-- .../BankDatabaseImplement/Models/Operation.cs | 5 +- Bank/BankDatabaseImplement/Models/Request.cs | 7 +- .../BankRestApi/Controllers/CardController.cs | 18 ++++ .../Controllers/OperationController.cs | 16 ++- .../Controllers/RequestController.cs | 4 +- 23 files changed, 248 insertions(+), 58 deletions(-) diff --git a/Bank/BankBusinessLogic/BusinessLogic/CardLogic.cs b/Bank/BankBusinessLogic/BusinessLogic/CardLogic.cs index 95c368e..1e997cc 100644 --- a/Bank/BankBusinessLogic/BusinessLogic/CardLogic.cs +++ b/Bank/BankBusinessLogic/BusinessLogic/CardLogic.cs @@ -3,6 +3,7 @@ using BankContracts.BusinessLogicsContracts; using BankContracts.SearchModels; using BankContracts.StoragesContracts; using BankContracts.ViewModels; +using DocumentFormat.OpenXml.Wordprocessing; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; @@ -34,6 +35,18 @@ namespace BankBusinessLogic.BusinessLogic _logger.LogInformation("ReadList Count: {Count}", list.Count); return list; } + public List? ReadListByRequestId(CardSearchModel model) + { + _logger.LogInformation("ReadListByRequestId. Number: {Number}, Id: {Id}", model?.Number, model?.Id); + var list = _cardStorage.GetListForRequest(model); + if (list == null) + { + _logger.LogWarning("ReadListByRequestId return null list"); + return null; + } + _logger.LogInformation("ReadListByRequestId Count: {Count}", list.Count); + return list; + } public CardViewModel? ReadElement(CardSearchModel model) { _logger.LogInformation("ReadElement Number: {Number}, Id: {Id}", model?.Number, model?.Id); diff --git a/Bank/BankBusinessLogic/BusinessLogic/OperationLogic.cs b/Bank/BankBusinessLogic/BusinessLogic/OperationLogic.cs index b76ddd6..21af877 100644 --- a/Bank/BankBusinessLogic/BusinessLogic/OperationLogic.cs +++ b/Bank/BankBusinessLogic/BusinessLogic/OperationLogic.cs @@ -47,6 +47,19 @@ namespace BankBusinessLogic.BusinessLogic _logger.LogInformation("ReadElement find. Id: {Id}", element.Id); return element; } + + public bool LinkOperationTransfer(int operationId, int transferId) + { + if (operationId <= 0 || transferId <= 0) + return false; + if (_operationStorage.LinkOperationTransfer(operationId, transferId)) + { + _logger.LogWarning("link operation failed"); + return false; + } + return true; + } + public bool Create(OperationBindingModel model) { CheckModel(model); diff --git a/Bank/BankBusinessLogic/BusinessLogic/RequestLogic.cs b/Bank/BankBusinessLogic/BusinessLogic/RequestLogic.cs index 31c95de..d07ab36 100644 --- a/Bank/BankBusinessLogic/BusinessLogic/RequestLogic.cs +++ b/Bank/BankBusinessLogic/BusinessLogic/RequestLogic.cs @@ -23,10 +23,10 @@ namespace BankBusinessLogic.BusinessLogic _requestStorage = requestStorage; } - public List? ReadList(RequestSearchModel? model) + public List? ReadList(RequestSearchModel? model, int? clientId) { _logger.LogInformation("ReadList. Id: {Id}", model?.Id); - var list = model == null ? _requestStorage.GetFullList() : _requestStorage.GetFilteredList(model); + var list = model == null ? _requestStorage.GetFullList(clientId) : _requestStorage.GetFilteredList(model); if (list == null) { _logger.LogWarning("ReadList return null list"); diff --git a/Bank/BankClientApp/Controllers/HomeController.cs b/Bank/BankClientApp/Controllers/HomeController.cs index 0be97d2..fc0554e 100644 --- a/Bank/BankClientApp/Controllers/HomeController.cs +++ b/Bank/BankClientApp/Controllers/HomeController.cs @@ -1,7 +1,9 @@ using BankClientApp.Models; using BankContracts.BindingModels; +using BankContracts.SearchModels; using BankContracts.ViewModels; using BankDatabaseImplement.Models; +using BankDataModels.Models; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore.Metadata.Internal; using System.Diagnostics; @@ -183,6 +185,21 @@ namespace BankClientApp.Controllers return result; } + [HttpGet] + public List? GetCards(int requestId) + { + if (APIClient.Client == null) + { + throw new Exception("Вы как суда попали? Суда вход только авторизованным"); + } + var result = APIClient.GetRequest>($"api/card/getcards?requestid={requestId}"); + if (result == null) + { + return default; + } + return result; + } + [HttpGet] public IActionResult CardDelete() { @@ -335,13 +352,24 @@ namespace BankClientApp.Controllers { return Redirect("~/Home/Enter"); } + ViewBag.Operations = APIClient.GetRequest>($"api/operation/getoperationlist?clientid={APIClient.Client.Id}"); + ViewBag.Transfers = APIClient.GetRequest>($"api/transfer/gettransferlist"); return View(); } [HttpPost] public void OperationTransfer(int operation, int transfer) { - + if (APIClient.Client == null) + { + throw new Exception("Вы как суда попали? Суда вход только авторизованным"); + } + APIClient.PostRequest("api/operation/linkoperationtransfer", new OperationBindingModel + { + Id = operation, + TransferId = transfer, + }); + Response.Redirect("Operation"); } #endregion @@ -353,7 +381,7 @@ namespace BankClientApp.Controllers { return Redirect("~/Home/Enter"); } - return View(new List()); + return View(APIClient.GetRequest>($"api/request/getrequestlist?clientid={APIClient.Client.Id}")); } [HttpGet] @@ -363,10 +391,29 @@ namespace BankClientApp.Controllers { return Redirect("~/Home/Enter"); } - ViewBag.Cards = new List(); + ViewBag.Cards = APIClient.GetRequest>($"api/card/getcardlist?clientid={APIClient.Client.Id}"); return View(); } + [HttpPost] + public void RequestCreate(int sum, List cards) + { + if (APIClient.Client == null) + throw new Exception("Вы как суда попали? Суда вход только авторизованным"); + Dictionary a = new Dictionary(); + foreach(int card in cards) + { + a.Add(card, new CardSearchModel() { Id = card } as ICardModel); + } + APIClient.PostRequest("/api/request/createrequest", new RequestBindingModel + { + Sum = sum, + CardRequests = a, + Status = RequestStatus.Неизвестен + }); + Response.Redirect("Request"); + } + [HttpGet] public IActionResult RequestUpdate() { @@ -374,11 +421,30 @@ namespace BankClientApp.Controllers { return Redirect("~/Home/Enter"); } - ViewBag.Requests = new List(); - ViewBag.Cards = new List(); + ViewBag.Requests = APIClient.GetRequest>($"api/request/getrequestlist?clientid={APIClient.Client.Id}"); + ViewBag.Cards = APIClient.GetRequest>($"api/card/getcardlist?clientid={APIClient.Client.Id}"); return View(); } + [HttpPost] + public void RequestUpdate(int sum, List cards) + { + if (APIClient.Client == null) + throw new Exception("Вы как суда попали? Суда вход только авторизованным"); + Dictionary a = new Dictionary(); + foreach (int card in cards) + { + a.Add(card, new CardSearchModel() { Id = card } as ICardModel); + } + APIClient.PostRequest("/api/request/updaterequest", new RequestBindingModel + { + Sum = sum, + CardRequests = a, + Status = RequestStatus.Неизвестен + }); + Response.Redirect("Request"); + } + [HttpGet] public IActionResult RequestDelete() { @@ -386,13 +452,29 @@ namespace BankClientApp.Controllers { return Redirect("~/Home/Enter"); } - ViewBag.Requests = new List(); + ViewBag.Requests = APIClient.GetRequest>($"api/request/getrequestlist?clientid={APIClient.Client.Id}"); return View(); } - #endregion + + [HttpPost] + public void RequestDelete(int request) + { + if (APIClient.Client == null) + { + throw new Exception("Вы как суда попали? Суда вход только авторизованным"); + } + APIClient.PostRequest("api/request/deleterequest", new + RequestBindingModel + { + Id = request, + }); + Response.Redirect("Request"); + } + + #endregion #region//работа с отчетами - [HttpGet] + [HttpGet] public IActionResult Report() { if (APIClient.Client == null) diff --git a/Bank/BankClientApp/Views/Home/Operation.cshtml b/Bank/BankClientApp/Views/Home/Operation.cshtml index 0312f69..4275c39 100644 --- a/Bank/BankClientApp/Views/Home/Operation.cshtml +++ b/Bank/BankClientApp/Views/Home/Operation.cshtml @@ -17,6 +17,7 @@ Создать операцию Обновить операцию Удалить операцию + Привязать перевод

diff --git a/Bank/BankClientApp/Views/Home/OperationTransfer.cshtml b/Bank/BankClientApp/Views/Home/OperationTransfer.cshtml index f3a491a..17003c9 100644 --- a/Bank/BankClientApp/Views/Home/OperationTransfer.cshtml +++ b/Bank/BankClientApp/Views/Home/OperationTransfer.cshtml @@ -1,6 +1,4 @@ -//todo выводить список только для выбранного клиента - -@{ +@{ ViewData["Title"] = "OperationTransfer"; }
@@ -78,7 +76,7 @@
-
+
@@ -93,10 +91,10 @@ url: "/Home/GetTransfer", data: { transferId: transfer }, success: function (result) { - $('#sum').val(result.item1.Sum); - $('#transfersender-number').val(result.item1.senderAccountNumber); - $('#transferrecipient-number').val(result.item1.recipientAccountNumber); - $('#transferdate').val(result.item1.transferTime); + $('#sum').val(result.Sum); + $('#transfersender-number').val(result.senderAccountNumber); + $('#transferrecipient-number').val(result.recipientAccountNumber); + $('#transferdate').val(result.transferTime); } }); }; @@ -109,10 +107,10 @@ url: "/Home/GetOperation", data: { operationId: operation }, success: function (result) { - $('#sum').val(result.item1.Sum); - $('#operationsender-number').val(result.item1.senderCardNumber); - $('#operationrecipient-number').val(result.item1.recipientCardNumber); - $('#operationdate').val(result.item1.transferTime); + $('#sum').val(result.Sum); + $('#operationsender-number').val(result.senderCardNumber); + $('#operationrecipient-number').val(result.recipientCardNumber); + $('#operationdate').val(result.operationTime); } }); }; diff --git a/Bank/BankClientApp/Views/Home/RequestUpdate.cshtml b/Bank/BankClientApp/Views/Home/RequestUpdate.cshtml index 30c29bd..500c533 100644 --- a/Bank/BankClientApp/Views/Home/RequestUpdate.cshtml +++ b/Bank/BankClientApp/Views/Home/RequestUpdate.cshtml @@ -41,22 +41,22 @@