public async Task <ActionResult> EditWallet(EditWalletViewModel model) { var ownedStocks = GetUserOwnedStocksManage(); model.OwnedStocks = ownedStocks; model.CompanyCount = ownedStocks.Count; model.NumberOfColumns = ownedStocks.Count / 3; if (!ModelState.IsValid) { return(PartialView(model)); } var currentUser = UserManager.FindById(User.Identity.GetUserId()); for (var i = 0; i < currentUser.OwnedStocks.Count; i++) { currentUser.OwnedStocks[i].Value = model.ModifiedOwnedStocks[i].Value; } currentUser.AccountBalance = model.ModifiedAccountBalance; var result = await UserManager.UpdateAsync(currentUser); if (result.Succeeded) { model.Message = StockExResr.ManageWalletChangeSuccess; return(PartialView(model)); } AddErrors(result); return(PartialView(model)); }
// // GET: /Manage/Index public async Task <ActionResult> Index() { // Dependency injection var userId = User.Identity.GetUserId(); var currentUser = UserManager.FindById(userId); var ownedStocks = GetUserOwnedStocksManage(); var editWalletViewModel = new EditWalletViewModel() { OwnedStocks = ownedStocks, AccountBalance = GetUserAccountBalanceManage(), CompanyCount = ownedStocks.Count, NumberOfColumns = ownedStocks.Count / 3, }; var model = new IndexViewModel { HasPassword = HasPassword(), TwoFactor = await UserManager.GetTwoFactorEnabledAsync(userId), Logins = await UserManager.GetLoginsAsync(userId), BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId), EditWalletViewModel = editWalletViewModel }; return(View(model)); }
// // GET: Manage/EditWallet public ActionResult EditWallet() { var ownedStocks = GetUserOwnedStocksManage(); var model = new EditWalletViewModel() { OwnedStocks = ownedStocks, AccountBalance = GetUserAccountBalanceManage(), CompanyCount = ownedStocks.Count, NumberOfColumns = ownedStocks.Count / 3, }; return(PartialView(model)); }
public async Task <IActionResult> Edit(EditWalletViewModel input) { try { var user = await this.userManager.GetUserAsync(this.User); if (!this.ModelState.IsValid) { if (!await this.walletsService.IsUserOwnWalletAsync(user.Id, input.Id)) { return(this.Redirect($"/Home/Error?message={GlobalConstants.NoPermissionForEditWallet}")); } var walletInfo = await this.walletsService.GetWalletInfoForEditAsync(user.Id, input.Id); input.Currencies = walletInfo.Currencies.Select(c => new CurrencyViewModel { Code = c.Code, CurrencyId = c.CurrencyId, Name = c.Name, }) .ToList(); input.CurrencyId = walletInfo.CurrencyId; input.Amount = walletInfo.Amount; input.CurrentCurrencyName = walletInfo.CurrentCurrencyName; input.CurrentCurrencyCode = walletInfo.CurrentCurrencyCode; input.Name = walletInfo.Name; input.Id = walletInfo.Id; return(this.View(input)); } if (!await this.walletsService.IsUserOwnWalletAsync(user.Id, input.Id)) { return(this.Redirect($"/Home/Error?message={GlobalConstants.NoPermissionForEditWallet}")); } await this.walletsService.EditAsync(user.Id, input.Id, input.Name, input.Amount, input.CurrencyId); return(this.Redirect($"/Wallets/Details/{input.Id}")); } catch (Exception ex) { return(this.Redirect($"/Home/Error?message={ex.Message}")); } }
public async Task <IActionResult> Edit(int id) { try { var user = await this.userManager.GetUserAsync(this.User); if (!await this.walletsService.IsUserOwnWalletAsync(user.Id, id)) { return(this.Redirect($"/Home/Error?message={GlobalConstants.NoPermissionForEditWallet}")); } var model = new EditWalletViewModel(); var walletInfo = await this.walletsService.GetWalletInfoForEditAsync(user.Id, id); model.Currencies = walletInfo.Currencies.Select(c => new CurrencyViewModel { Code = c.Code, CurrencyId = c.CurrencyId, Name = c.Name, }) .ToList(); model.CurrencyId = walletInfo.CurrencyId; model.Amount = walletInfo.Amount; model.CurrentCurrencyName = walletInfo.CurrentCurrencyName; model.CurrentCurrencyCode = walletInfo.CurrentCurrencyCode; model.Name = walletInfo.Name; model.Id = walletInfo.Id; return(this.View(model)); } catch (Exception ex) { return(this.Redirect($"/Home/Error?message={ex.Message}")); } }
public async Task EditShouldEditWalletSuccessfully() { // Arrange this.FillDatabase(); this.editModel = new EditWalletViewModel { Id = 1, Amount = 560, Name = "Test Edit Wallet", CurrencyId = 5, }; // Act var result = await this.controller.Edit(this.editModel); // Assert var redirectResult = Assert.IsType <RedirectResult>(result); var editedWallet = this.db.Wallets.Find(1); Assert.Equal(1, editedWallet.Id); Assert.Equal("Test Edit Wallet", editedWallet.Name); Assert.Equal(5, editedWallet.CurrencyId); Assert.Equal(560, editedWallet.MoneyAmount); }