예제 #1
0
        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));
        }
예제 #2
0
        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)));
        }