From f7436c0d17e61980217221961da4c9c6cadd57af Mon Sep 17 00:00:00 2001 From: Artyom_Yashin Date: Sun, 26 May 2024 23:49:23 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A7=D1=82=D0=BE=20=D1=82=D0=BE=20=D1=81?= =?UTF-8?q?=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/OperationStorage.cs | 10 ++++++++++ .../BankDatabaseImplement/Implements/RequestStorage.cs | 10 +++++++++- Bank/BankDatabaseImplement/Models/Request.cs | 4 ++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Bank/BankDatabaseImplement/Implements/OperationStorage.cs b/Bank/BankDatabaseImplement/Implements/OperationStorage.cs index 07e5085..9c4a430 100644 --- a/Bank/BankDatabaseImplement/Implements/OperationStorage.cs +++ b/Bank/BankDatabaseImplement/Implements/OperationStorage.cs @@ -55,6 +55,11 @@ namespace BankDatabaseImplement.Implements { using var context = new BankDatabase(); var operation = context.Operations.Include(x => x.SenderCard).Include(x => x.RecipientCard).Include(x => x.Transfer).FirstOrDefault(x => x.Id == model.Id); + var transfer = context.Transfers.FirstOrDefault(x => x.OperationId == model.Id); + if (transfer != null) + { + return null; + } if (operation == null) { return null; @@ -67,6 +72,11 @@ namespace BankDatabaseImplement.Implements { using var context = new BankDatabase(); var operation = context.Operations.Include(x => x.SenderCard).Include(x => x.RecipientCard).Include(x => x.Transfer).FirstOrDefault(rec => rec.Id == model.Id); + var transfer = context.Transfers.FirstOrDefault(x => x.OperationId == model.Id); + if (transfer != null) + { + return null; + } if (operation != null) { context.Operations.Remove(operation); diff --git a/Bank/BankDatabaseImplement/Implements/RequestStorage.cs b/Bank/BankDatabaseImplement/Implements/RequestStorage.cs index c529353..086bae4 100644 --- a/Bank/BankDatabaseImplement/Implements/RequestStorage.cs +++ b/Bank/BankDatabaseImplement/Implements/RequestStorage.cs @@ -73,7 +73,11 @@ namespace BankDatabaseImplement.Implements var Request = context.Requests.FirstOrDefault(rec => rec.Id == model.Id); if (Request == null) { - return null; + throw new Exception("Заявка не найдена"); + } + if (Request.Status != RequestStatus.Принята) + { + throw new InvalidOperationException("Заявка уже выполнена"); } Request.Update(model); context.SaveChanges(); @@ -93,6 +97,10 @@ namespace BankDatabaseImplement.Implements var element = context.Requests .Include(x => x.Cards) .FirstOrDefault(rec => rec.Id == model.Id); + if (element?.Status != RequestStatus.Принята) + { + return null; + } if (element != null) { context.Requests.Remove(element); diff --git a/Bank/BankDatabaseImplement/Models/Request.cs b/Bank/BankDatabaseImplement/Models/Request.cs index 764f083..66743e2 100644 --- a/Bank/BankDatabaseImplement/Models/Request.cs +++ b/Bank/BankDatabaseImplement/Models/Request.cs @@ -57,11 +57,11 @@ namespace BankDatabaseImplement.Models Sum = model.Sum; } - public bool ChangeStatus(RequestStatus status) + public bool Execute() { if(Status == RequestStatus.Принята) { - Status = status; + Status = RequestStatus.Выполнена; return true; } return false;