/// <summary> /// Upserts an account /// </summary> /// <param name="model">Model to use for upsert</param> /// <returns>ActionResult with the outcome</returns> public async Task <IActionResult> UpsertAccount(BankAccountModel model) { ActionResult result = View(model); if (ModelState.IsValid) { try { if (model.Id > 0) { await _bankAccountService.UpdateBankAccountForCurrentUser(model); TempDataHelper.SetTemporaryMessage(TempData, MessageState.Success, Resources.BankAccountCreated); } else { await _bankAccountService.CreateBankAccountForCurrentUser(model); TempDataHelper.SetTemporaryMessage(TempData, MessageState.Success, Resources.BankAccountUpdated); } } catch (NotFoundException) { ModelState.AddModelError("Message", Resources.BankAccountNotFound); } catch (AlreadyExistsException) { ModelState.AddModelError("Message", Resources.BankAccountNotFound); } catch (ArgumentException exc) { ModelState.AddModelError("Message", exc.Message); } return(RedirectToAction("Index")); } return(result); }