Beispiel #1
0
        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));
        }
Beispiel #2
0
        //
        // 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));
        }
Beispiel #3
0
        //
        // 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);
        }