public async Task <IActionResult> InnerTransfer() { User user = userService.FindUserByName(HttpContext.User.Identity.Name); InnerTransferViewModel transfer = new InnerTransferViewModel(); InnerTransferViewModel model = transferService.GetMethodInnerTransfer(user, transfer); return(View(model)); }
public async Task <ModelStateDictionary> ValidateInnerTransfer(InnerTransferViewModel model, User user, Account sender, ModelStateDictionary ModelState) { decimal amount = 0; if (model.AccountSenderId == null) { ModelState.AddModelError("AccountSenderId", localizer["AccountSenderIdValidation"]); } else { EmployeeAccount Limit = accountService.FindEmployeeAccountByUserIdAndAccountId(user.Id, model.AccountSenderId.Value); if (sender.Locked) { ModelState.AddModelError("AccountSenderId", "*Счет заблокирован"); } else if (!await accountService.IsAccountExist(model.ReceiverAccountNumber)) { ModelState.AddModelError("ReceiverAccountNumber", localizer["ReceiverAccountNumberExistVlidation"]); } else if (await accountService.IsAccountExist(model.ReceiverAccountNumber) && await accountService.IsAccountSenderNotReceiver(model.ReceiverAccountNumber, user)) { ModelState.AddModelError("ReceiverAccountNumber", localizer["IsAccountSenderNotReceiverValidation"]); } else if (!await accountService.IsUserHaveRightsOnAccount(user, model.AccountSenderId.Value)) { ModelState.AddModelError("AccountSenderId", "У вас нет прав на совершение данного перевода."); } else if (await accountService.IsAccountExist(model.ReceiverAccountNumber) && await accountService.CompareAccountsCurrencies(model.ReceiverAccountNumber, (int)model.AccountSenderId)) { ModelState.AddModelError("ReceiverAccountNumber", localizer["CurrencyValidation"]); } if (!accountService.AmountTryParse(model.Amount, out amount)) { ModelState.AddModelError("Amount", localizer["AmountFormatValidation"]); } else if (amount <= 0) { ModelState.AddModelError("Amount", localizer["AmountNotNull"]); } else if (!await accountService.IsBalanceEnough((int)model.AccountSenderId, amount)) { ModelState.AddModelError("Amount", localizer["IsBalanceEnoughValidation"]); } else if (Limit != null) { if (Limit.limit.LimitAmount < amount) { ModelState.AddModelError("Amount", string.Format("{0} {1}", localizer["ExceededTheLimit"], Limit.limit.LimitAmount)); } } } return(ModelState); }
public IActionResult CreateTemplateInnerTransfer() { User user = userService.FindUserByName(HttpContext.User.Identity.Name); CreateTemplateInnerTransferViewModel model = new CreateTemplateInnerTransferViewModel(); InnerTransferViewModel transferModel = new InnerTransferViewModel(); model.Transfer = transferService.GetMethodInnerTransfer(user, transferModel); model.Template = new TemplateViewModel { PaymentScheduleViewModel = new PaymentScheduleViewModel { IntervalTypes = selectListService.GetIntervalTypes(), DateStart = DateTime.Now.AddDays(1) } }; return(View(model)); }
public InnerTransferViewModel GetMethodInnerTransfer(User user, InnerTransferViewModel model) { string userName = String.Empty; int userId = 0; UserInfo userInfo = userService.FindUserByIdInUserInfo(user.Id, ref userName, ref userId); EmployeeInfo employeeInfo = userService.FindUserByIdInCompany(user.Id, ref userName, ref userId); if (userInfo != null) { model.UserAccounts = selectListService.GetUserAccounts(userInfo.Id); } if (employeeInfo != null) { model.UserAccounts = selectListService.GetEmployeeAccounts(employeeInfo.Id); } model.SaveInTempalte = false; return(model); }
public async Task <ModelStateDictionary> ValidateInterTransfer(InnerTransferViewModel model, User user, Account receiver, ModelStateDictionary ModelState) { decimal amount = 0; if (model.AccountSenderId == null) { ModelState.AddModelError("Transfer.Transfer.AccountSenderId", localizer["AccountSenderIdValidation"]); } else { EmployeeAccount Limit = accountService.FindEmployeeAccountByUserIdAndAccountId(user.Id, model.AccountSenderId.Value); if (!await accountService.IsUserHaveRightsOnAccount(user, model.AccountSenderId.Value)) { ModelState.AddModelError("Transfer.Transfer.AccountSenderId", "У вас нет прав на совершение данного перевода."); } else if (await accountService.IsAccountExist(receiver.Number) && await accountService.CompareAccountsCurrencies(receiver.Number, (int)model.AccountSenderId)) { ModelState.AddModelError("Transfer.Transfer.AccountSenderId", localizer["*Межбанковский перевод провидиться в национальной валюте"]); } if (!accountService.AmountTryParse(model.Amount, out amount)) { ModelState.AddModelError("Transfer.Transfer.Amount", localizer["AmountFormatValidation"]); } else if (amount <= 0) { ModelState.AddModelError("Transfer.Transfer.Amount", localizer["AmountNotNull"]); } else if (!await accountService.IsBalanceEnough((int)model.AccountSenderId, amount)) { ModelState.AddModelError("Transfer.Transfer.Amount", localizer["IsBalanceEnoughValidation"]); } else if (Limit.limit.LimitAmount < amount) { ModelState.AddModelError("Transfer.Transfer.Amount", string.Format("{0} {1}", localizer["ExceededTheLimit"], Limit.limit.LimitAmount)); } } return(ModelState); }
public async Task <IActionResult> InnerTransfer(InnerTransferViewModel model) { decimal amount = 0; User user = userService.FindUserByName(HttpContext.User.Identity.Name); Account sender = accountService.FindAccountById((int)model.AccountSenderId).Result; await validationService.ValidateInnerTransfer(model, user, sender, ModelState); string comment = "Внутрибанковский платеж - " + model.Comment; model.Comment = comment; if (ModelState.IsValid) { amount = decimal.Parse(model.Amount); Account receiver = accountService.FindAccountByNumber(model.ReceiverAccountNumber).Result; //decimal amountReceive; //accountService.AmountTryParse(model.AmountReceive, out amountReceive); InnerTransfer transfer = await transferService.CreateInnerTransfer(sender, receiver, amount, model.Comment, null, null, null); transferService.AddTransfer(transfer); if (model.SaveInTempalte) { Template template = _templateServiceService.SaveTemplate(transfer, user); return(RedirectToAction("TemplateSave", "Template", new { tempalteId = template.Id })); } return(RedirectToAction("Transfer", "Transfer")); } model = transferService.GetMethodInnerTransfer(user, model); Template templates = _templateServiceService.FindTemplateById(model.TemplateId); if (templates != null) { model.Template = templates; } return(View(model)); }
public IActionResult InnerTransferTemplate(int templateId) { Template template = _templateServiceService.FindTemplateById(templateId); InnerTransferViewModel model = new InnerTransferViewModel { AccountSenderId = template.AccountSenderId, ReceiverAccountNumber = template.AccountReceiver.Number, Amount = template.Amount.ToString(), Comment = template.Comment, TemplateId = template.Id, Template = template, SaveInTempalte = false }; if (template.UserInfo != null) { model.UserAccounts = selectListService.GetUserAccounts(template.UserInfo.Id); } if (template.Company != null) { model.UserAccounts = selectListService.GetCompanyAccounts(template.Company.Id); } return(View("InnerTransfer", model)); }