From b5694ed1ca6c81e74a504a8fa68c7b7de0aa5a02 Mon Sep 17 00:00:00 2001 From: Tuan Anh Nguyen Manh Date: Fri, 27 Aug 2021 11:26:19 +0700 Subject: [PATCH] Update notify cheque admin --- .../Admin/Controllers/ChequesController.cs | 83 ++++++++++++++----- Backend/Controllers/ChequesController.cs | 20 +++-- 2 files changed, 73 insertions(+), 30 deletions(-) diff --git a/Backend/Areas/Admin/Controllers/ChequesController.cs b/Backend/Areas/Admin/Controllers/ChequesController.cs index 81e5d85..2b180c5 100644 --- a/Backend/Areas/Admin/Controllers/ChequesController.cs +++ b/Backend/Areas/Admin/Controllers/ChequesController.cs @@ -114,7 +114,7 @@ public ActionResult PostData(Cheques chequeInformation) var fromBankAccount = _context.BankAccounts.FirstOrDefault(x => x.BankAccountId == chequeInformation.FromBankAccountId); - if (fromBankAccount.Status != (int) BankAccountStatus.Actived) + if (fromBankAccount != null && fromBankAccount.Status != (int) BankAccountStatus.Actived) { errors.Add("FromBankAccountId", "This bank account is not actived"); return Json(new @@ -127,7 +127,7 @@ public ActionResult PostData(Cheques chequeInformation) var chequeBook = _context.ChequeBooks.FirstOrDefault(x => x.ChequeBookId == chequeInformation.ChequeBookId); - if (chequeBook.Status != (int) ChequeBookStatus.Opened) + if (chequeBook != null && chequeBook.Status != (int) ChequeBookStatus.Opened) { return Json(new { @@ -145,7 +145,7 @@ public ActionResult PostData(Cheques chequeInformation) chequeInformation.Code = code; chequeInformation.Status = (int) ChequeStatus.Actived; - if (fromBankAccount.Balance < chequeInformation.Amount) + if (fromBankAccount != null && fromBankAccount.Balance < chequeInformation.Amount) { errors.Add("Amount", "Your balance is not enough"); return Json(new @@ -171,18 +171,23 @@ public ActionResult PostData(Cheques chequeInformation) _context.Cheques.Add(chequeInformation); _context.SaveChanges(); - fromBankAccount.Balance -= chequeInformation.Amount; - // bankAccounts.Update(fromBankAccount); - // _context.Entry(fromBankAccount).State = EntityState.Modified; - _context.SaveChanges(); + List newNotifications = null; + if (fromBankAccount != null) + { + fromBankAccount.Balance -= chequeInformation.Amount; + // bankAccounts.Update(fromBankAccount); + // _context.Entry(fromBankAccount).State = EntityState.Modified; + _context.SaveChanges(); + + var message = "Your account balance -" + chequeInformation.Amount + + ", available balance: " + fromBankAccount.Balance; + + newNotifications = CreateNotification(chequeInformation, message); + } transaction.Commit(); - return Json(new - { - message = "Success", - statusCode = 200, - }, JsonRequestBehavior.AllowGet); + ChatHub.Instance().SendNotifications(newNotifications); } catch (Exception ex) { @@ -193,8 +198,13 @@ public ActionResult PostData(Cheques chequeInformation) message = "error", statuscode = 404 }, JsonRequestBehavior.AllowGet); - throw; } + + return Json(new + { + message = "Success", + statusCode = 200, + }, JsonRequestBehavior.AllowGet); } } } @@ -435,7 +445,7 @@ public ActionResult ChequeExec(ChequesExecViewModel chequeExec) var newNotifications = CreateNotifications(newTransaction); transaction.Commit(); - + ChatHub.Instance().SendNotifications(newNotifications); return Json(new @@ -573,6 +583,8 @@ public ActionResult DeleteData(int chequeId) var fromBankAccount = _context.BankAccounts.FirstOrDefault(x => x.BankAccountId == cheque.FromBankAccountId); + List newNotifications = null; + if (fromBankAccount != null) { fromBankAccount.Balance += cheque.Amount; @@ -580,33 +592,58 @@ public ActionResult DeleteData(int chequeId) // cheques.Delete(cheque); // bankAccounts.Edit(fromBankAccount); - _context.Cheques.Remove(cheque); - _context.SaveChanges(); + + var message = "Your account balance +" + cheque.Amount + + ", available balance: " + cheque.FromBankAccount.Balance; + + newNotifications = CreateNotification(cheque, message); } + _context.Cheques.Remove(cheque); _context.SaveChanges(); transaction.Commit(); - return Json(new - { - message = "Success", - data = "Delete Successfully", - statusCode = 200, - }, JsonRequestBehavior.AllowGet); + ChatHub.Instance().SendNotifications(newNotifications); } catch (Exception ex) { transaction.Rollback(); + return Json(new { data = ex, message = "error", statuscode = 404 }, JsonRequestBehavior.AllowGet); - throw; } + + return Json(new + { + message = "Success", + data = "Delete Successfully", + statusCode = 200, + }, JsonRequestBehavior.AllowGet); } } } + + private List CreateNotification(Cheques cheque, string message) + { + var lstNotification = new List() + { + new Notifications + { + AccountId = cheque.FromBankAccount.AccountId, + Content = message, + Status = (int) NotificationStatus.Unread, + PkType = (int) NotificationType.Cheque, + PkId = cheque.ChequeBookId, + } + }; + + _context.Set().AddRange(lstNotification); + _context.SaveChanges(); + return lstNotification; + } } } \ No newline at end of file diff --git a/Backend/Controllers/ChequesController.cs b/Backend/Controllers/ChequesController.cs index 72656d9..f74e9f5 100644 --- a/Backend/Controllers/ChequesController.cs +++ b/Backend/Controllers/ChequesController.cs @@ -179,7 +179,7 @@ public ActionResult PostData(Cheques chequeInformation) chequeInformation.Code = code; chequeInformation.Status = (int) ChequeStatus.Actived; - if (fromBankAccount.Balance < chequeInformation.Amount) + if (fromBankAccount != null && fromBankAccount.Balance < chequeInformation.Amount) { errors.Add("Amount", "Your balance is not enough"); return Json(new @@ -205,14 +205,18 @@ public ActionResult PostData(Cheques chequeInformation) _context.Cheques.Add(chequeInformation); _context.SaveChanges(); - fromBankAccount.Balance -= chequeInformation.Amount; - // bankAccounts.Update(fromBankAccount); - _context.SaveChanges(); + List newNotifications = null; + if (fromBankAccount != null) + { + fromBankAccount.Balance -= chequeInformation.Amount; + // bankAccounts.Update(fromBankAccount); + _context.SaveChanges(); - var message = "Your account balance -" + chequeInformation.Amount + - ", available balance: " + fromBankAccount.Balance; + var message = "Your account balance -" + chequeInformation.Amount + + ", available balance: " + fromBankAccount.Balance; - var newNotifications = CreateNotification(chequeInformation, message); + newNotifications = CreateNotification(chequeInformation, message); + } transaction.Commit(); @@ -373,7 +377,9 @@ public ActionResult DeleteData(int chequeId) var fromBankAccount = _context.BankAccounts.FirstOrDefault(x => x.BankAccountId == cheque.FromBankAccountId); + List newNotifications = null; + if (fromBankAccount != null) { fromBankAccount.Balance += cheque.Amount;