public async Task <IActionResult> IssueShares([Bind("ShareId,Amount")] ShareBalance balance) { if (ModelState.IsValid) { var account = db.Accounts .Where(q => q.Id == int.Parse(User.Identity.Name)) .FirstOrDefault(); var shareBalance = db.ShareBalances .Where(q => q.Account.Id == account.Id && q.Type == Account.GetByteByType(AccountType.company)) .FirstOrDefault(); if (shareBalance == null) { balance.AccountId = account.Id; balance.Type = 2; db.ShareBalances.Add(balance); } else { shareBalance.Amount += balance.Amount; db.Update(shareBalance); } await db.SaveChangesAsync(); return(RedirectToAction(nameof(ProfileController.Index), "Profile", new { type = AccountType.company.ToString() })); } return(View(balance)); }
public async Task <IActionResult> Index([Bind("Type,ShareId,Amount")] ShareBalance newSellerShareBalance) { if (ModelState.IsValid && newSellerShareBalance.Amount > 0) { var share = db.Shares .Include(q => q.Company) .Where(q => q.Id == newSellerShareBalance.ShareId) .FirstOrDefault(); if (await db.ShareOperation( new UserInfo { Id = int.Parse(User.Identity.Name), Type = Account.GetByteByType((AccountType)newSellerShareBalance.Type) }, new UserInfo { Id = share.Company.AccountId, Type = Account.GetByteByType(AccountType.company) }, newSellerShareBalance)) { return(RedirectToAction(nameof(Index), new { shareId = newSellerShareBalance.ShareId, type = newSellerShareBalance.Type })); } } return(RedirectToAction(nameof(Index), new { shareId = newSellerShareBalance.ShareId, type = newSellerShareBalance.Type })); }