public async Task <IActionResult> InterTransfer(InterBankTransferViewModel model) { decimal amount = 0; Account receiver = accountService.OurBankAccount(); Account sender = accountService.FindAccountById((int)model.Transfer.AccountSenderId).Result; User user = userService.FindUserByName(HttpContext.User.Identity.Name); EmployeeAccount Limit = new EmployeeAccount(); string comment = "Межбанковский платеж - " + model.Transfer.Comment; model.Transfer.Comment = comment; if (model.Transfer.AccountSenderId == null) { ModelState.AddModelError("Transfer.AccountSenderId", localizer["AccountSenderIdValidation"]); } else { Limit = accountService.FindEmployeeAccountByUserIdAndAccountId(user.Id, model.Transfer.AccountSenderId.Value); if (sender.Locked) { ModelState.AddModelError("Transfer.AccountSenderId", "*Счет заблокирован"); } else if (!await accountService.IsUserHaveRightsOnAccount(user, model.Transfer.AccountSenderId.Value)) { ModelState.AddModelError("Transfer.AccountSenderId", "У вас нет прав на совершение данного перевода."); } else if (await accountService.IsAccountExist(receiver.Number) && await accountService.CompareAccountsCurrencies(receiver.Number, (int)model.Transfer.AccountSenderId)) { ModelState.AddModelError("Transfer.AccountSenderId", localizer["*Межбанковский перевод провидиться в национальной валюте"]); } if (!accountService.AmountTryParse(model.Transfer.Amount, out amount)) { ModelState.AddModelError("Transfer.Amount", localizer["AmountFormatValidation"]); } else if (amount <= 0) { ModelState.AddModelError("Transfer.Amount", localizer["AmountNotNull"]); } else if (!await accountService.IsBalanceEnough((int)model.Transfer.AccountSenderId, amount)) { ModelState.AddModelError("Transfer.Amount", localizer["IsBalanceEnoughValidation"]); } else if (Limit.limit.LimitAmount < amount) { ModelState.AddModelError("Transfer.Amount", string.Format("{0} {1}", localizer["ExceededTheLimit"], Limit.limit.LimitAmount)); } } if (ModelState.IsValid) { InnerTransfer transfer = await transferService.CreateInnerTransfer(sender, receiver, amount, model.Transfer.Comment, null, null, null); transferService.AddTransfer(transfer); InterBankTransfer interTransfer = transferService.CreateInterBankTransfer(model, transfer); if (model.Transfer.SaveInTempalte) { Template template = _templateServiceService.SaveTemplateInterTransfer(interTransfer, user); return(RedirectToAction("TemplateSave", "Template", new { tempalteId = template.Id })); } return(RedirectToAction("Transfer", "Transfer")); } Template templates = _templateServiceService.FindTemplateById(model.Transfer.TemplateId); if (templates != null) { model.Transfer.Template = templates; } model.Banks = selectListService.GetBankList(); model.PaymentCode = selectListService.GetPayemntCodeList(); model.Transfer = transferService.GetMethodInnerTransfer(user, model.Transfer); return(View(model)); }