public async Task <IActionResult> PagosBeneficiario(BeneficiarioViewModel bvm) { ViewData["Nombre"] = User.Identity.Name; CuentasyPagos cp = new CuentasyPagos(_context, _userManager, _cuentaRepository, _tarjetasRepository, _prestamosRepository, _usuarioRepository, _transaccionesRepository, _mapper); if (ModelState.IsValid) { var cuenta = await _context.Cuenta.FirstOrDefaultAsync(x => x.NumeroCuenta == bvm.NumeroCuenta); var cuenta2 = await _context.Cuenta.FirstOrDefaultAsync(x => x.NumeroCuenta == bvm.NumeroCuentaPagar); if (cuenta == null || cuenta2 == null) { ModelState.AddModelError("", "Cuenta o cuentas inexistentes"); return(View(await cp.Beneficiarios(User.Identity.Name))); } if (bvm.NumeroCuenta == bvm.NumeroCuentaPagar) { ModelState.AddModelError("", "No puedes tranferirte el dinero que ya tienes por favor verifique la cuenta desitinataria."); return(View(await cp.Beneficiarios(User.Identity.Name))); } if (cuenta.Balance < bvm.Monto) { ModelState.AddModelError("", "No tiene suficiente balance"); return(View(await cp.Beneficiarios(User.Identity.Name))); } cuenta.Balance = cuenta.Balance - bvm.Monto; cuenta2.Balance = cuenta2.Balance + bvm.Monto; try { //await _cuentaRepository.Update(cuenta); //await _cuentaRepository.Update(cuenta2); ModelState.AddModelError("", "Tu cuenta si tiene dinero"); var UsuarioDestinatario = await _usuarioRepository.GetByIdAsync(cuenta2.IdUsuario); TransaccionesViewModels Transacciones = new TransaccionesViewModels(); Transacciones.NumeroCuenta = cuenta.NumeroCuenta; Transacciones.NumeroCuentaDestinatario = bvm.NumeroCuentaPagar; Transacciones.Monto = bvm.Monto; Transacciones.Nombre = UsuarioDestinatario.Nombre; Transacciones.Apellido = UsuarioDestinatario.Apellido; Transacciones.TipoTransaccion = 1; return(RedirectToAction("ConfirmPagosBeneficiario", "Client", Transacciones)); } catch { } return(RedirectToAction("Index")); } return(View(bvm)); }
public async Task <IActionResult> PagosBeneficiario() { CuentasyPagos cp = new CuentasyPagos(_context, _userManager, _cuentaRepository, _tarjetasRepository, _prestamosRepository, _usuarioRepository, _transaccionesRepository, _mapper); return(View(await cp.Beneficiarios(User.Identity.Name))); }