public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } DepositAndTransferViewModel depositAndTransferViewModel = new DepositAndTransferViewModel(); DepositAccount depositAccount = await _context.DepositAccounts.FindAsync(id); depositAndTransferViewModel.DepositAccountId = depositAccount.DepositAccountId; depositAndTransferViewModel.Donor = depositAccount.Donor; depositAndTransferViewModel.DepositCode = depositAccount.DepositCode; depositAndTransferViewModel.DepositDate = depositAccount.DepositDate; depositAndTransferViewModel.DepositType = depositAccount.DepositType; depositAndTransferViewModel.DepositAmount = depositAccount.DepositAmount; depositAndTransferViewModel.Balance = depositAccount.Balance; //depositAndTransferViewModel.Balance = depositAccount.DepositAmount - _context.TransferAccounts.Where(c=>c.DepositAccountId == depositAccount.DepositAccountId).Sum(s=>s.TransferAmount); depositAndTransferViewModel.TransferAccounts = _context.TransferAccounts.Where(d => d.DepositAccountId == depositAccount.DepositAccountId).ToList(); if (depositAccount == null) { return(NotFound()); } return(View(depositAndTransferViewModel)); }
public async Task <IActionResult> CreateOrEdit(TransferAccount transferAccount) { if (ModelState.IsValid) { if (transferAccount.TransferAccountId > 0) { try { _context.Update(transferAccount); //await _context.SaveChangesAsync(); //double oldAmount = _context.TransferAccounts.Find(transferAccount.TransferAccountId).TransferAmount; //double differnceAmount = transferAccount.TransferAmount - oldAmount; //DepositAccount dAcount = _context.DepositAccounts.Find(transferAccount.DepositAccountId); //dAcount.Balance -= differnceAmount; //_context.Update(dAcount); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } } else { DepositAccount depositAccount1 = _context.DepositAccounts.Find(transferAccount.DepositAccountId); depositAccount1.Balance -= transferAccount.TransferAmount; _context.Update(depositAccount1); _context.Add(transferAccount); await _context.SaveChangesAsync(); ViewData["DepositAccountId"] = new SelectList(_context.DepositAccounts, "DepositAccountId", "DepositCode", transferAccount.DepositAccountId); } DepositAndTransferViewModel depositAndTransferViewModel = new DepositAndTransferViewModel(); DepositAccount depositAccount = await _context.DepositAccounts.FindAsync(transferAccount.DepositAccountId); depositAndTransferViewModel.DepositAccountId = depositAccount.DepositAccountId; depositAndTransferViewModel.Donor = depositAccount.Donor; depositAndTransferViewModel.DepositCode = depositAccount.DepositCode; depositAndTransferViewModel.DepositDate = depositAccount.DepositDate; depositAndTransferViewModel.DepositType = depositAccount.DepositType; depositAndTransferViewModel.DepositAmount = depositAccount.DepositAmount; depositAndTransferViewModel.Balance = depositAccount.Balance; depositAndTransferViewModel.TransferAccounts = _context.TransferAccounts.Where(d => d.DepositAccountId == depositAccount.DepositAccountId).ToList(); return(Json(new { isValid = true, html = Helper.RenderRazorViewToString(this, "_EditDeposit", depositAndTransferViewModel) })); } ViewData["DepositAccountId"] = new SelectList(_context.DepositAccounts, "DepositAccountId", "DepositCode", transferAccount.DepositAccountId); return(Json(new { isValid = false, html = Helper.RenderRazorViewToString(this, "CreateOrEdit", transferAccount) })); }