public async Task <IActionResult> Create([Bind("CuentaId,Saldo")] Cuenta cuenta) { if (ModelState.IsValid) { _context.Add(cuenta); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(cuenta)); }
public async Task <IActionResult> Create([Bind("MovimientoId,Importe,Descripcion,TipoMovimiento")] Movimiento movimiento) { if (ModelState.IsValid) { movimiento.Fecha = DateTime.Now; var consulta = _context.Cuentas.Where(s => s.CuentaId == HttpContext.Session.GetInt32("CuentaID")); var cuenta = consulta.FirstOrDefault <Cuenta>(); var saldo = cuenta.Saldo; var micuenta = cuenta.CuentaId; movimiento.CuentaId = micuenta; var esValido = true; //Si existe la cuenta if (movimiento.TipoMovimiento.Equals(TipoMovimiento.Ingreso)) { var aux = saldo + movimiento.Importe; cuenta.Saldo = aux; _context.SaveChanges(); HttpContext.Session.SetString("Saldo", aux.ToString()); } else { var aux = saldo - movimiento.Importe; if (aux >= 0) { HttpContext.Session.SetString("Saldo", aux.ToString()); cuenta.Saldo = aux; _context.SaveChanges(); } else { esValido = false; } } if (esValido) { _context.Add(movimiento); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } else { //Redirigir a error ModelState.AddModelError("Importe", "El monto ingresado supera el saldo de la cuenta"); return(View(movimiento)); } } return(View(movimiento)); }
public async Task <IActionResult> Create([Bind("UsuarioId,Nombre,Apellido,Email,Password")] Usuario usuario) { if (ModelState.IsValid) { Cuenta cuenta = new Cuenta(); cuenta.Saldo = 0; usuario.Cuenta = cuenta; _context.Add(usuario); await _context.SaveChangesAsync(); return(View("~/Views/Login.cshtml")); } return(View("~/Views/Login.cshtml")); }