public HttpResponseMessage AddUsuario([FromBody] Usuario usu) { if (ModelState.IsValid) { dbContext.Usuarios.Add(usu); dbContext.SaveChanges(); return(RespuestaHelper.GestionaOKHttpResponse("Usuario creado correctamente", usu)); } else { return(RespuestaHelper.GestionaErrorHttpResponse("Error", "Error en la petición Add", httpStatusCode: HttpStatusCode.BadRequest)); } }
public HttpResponseMessage DeleteUsuario(int id) { var usu = dbContext.Usuarios.Find(id); if (usu != null) { dbContext.Usuarios.Remove(usu); dbContext.SaveChanges(); return(RespuestaHelper.GestionaOKHttpResponse("Usuario con Id " + usu.Id + " borrado correctamente", null)); } else { return(RespuestaHelper.GestionaErrorHttpResponse("Error", "Usuario no encontrado", httpStatusCode: HttpStatusCode.BadRequest)); } }
public HttpResponseMessage Transfiere(EntradaDatosTx data) { string mensaje; bool err = false; var usuario = dbContext.Usuarios.FirstOrDefault(u => u.Id == data.IdUsuario); var usuarioDestino = dbContext.Usuarios.FirstOrDefault(u => u.Login == data.LoginUsuarioDestino); if (data.Cantidad <= 0) { err = true; mensaje = "La cantidad a transferir debe ser superior a 0"; } else { if (usuario != null && usuarioDestino != null) { string errs = ""; if (!transfiereBalance(usuario, usuarioDestino, data.Cantidad, ref errs)) { err = true; mensaje = errs; } else { mensaje = data.Cantidad + " € transferidos al usuario " + usuarioDestino.Login + ".Su nuevo balance es de " + usuario.Balance + "€."; } } else { err = true; mensaje = "Usuario de origen o destino no encontrados"; } } if (err) { return(RespuestaHelper.GestionaErrorHttpResponse("Error", mensaje, httpStatusCode: HttpStatusCode.BadRequest)); } else { User u = new User { Id = usuarioDestino.Id, Login = usuarioDestino.Login, Balance = usuarioDestino.Balance, Administrador = usuarioDestino.Administrador }; return(RespuestaHelper.GestionaOKHttpResponse(mensaje, u)); } }
public HttpResponseMessage UpdateUsuario([FromBody] Usuario usu) { string mensaje; bool err = false; if (ModelState.IsValid) { //compruebo que login no exista, excepto para usuario actual var usuarioExiste = dbContext.Usuarios.Count(u => u.Id == usu.Id) > 0; var loginrepetido = dbContext.Usuarios.Count(u => u.Id != usu.Id && u.Login == usu.Login) > 0; if (usuarioExiste && !loginrepetido) { dbContext.Entry(usu).State = EntityState.Modified; //indicamos que no modifica balance dbContext.Entry(usu).Property(u => u.Balance).IsModified = false; dbContext.SaveChanges(); mensaje = "Usuario con Id " + usu.Id + " modificado correctamente"; } else if (loginrepetido) { err = true; mensaje = "Login existente, elija otro nombre"; } else { err = true; mensaje = "Usuario no encontrado"; } } else { mensaje = "Error en la petición Add"; } if (err) { return(RespuestaHelper.GestionaErrorHttpResponse("Error", mensaje, httpStatusCode: HttpStatusCode.BadRequest)); } else { var balanceUsuario = dbContext.Usuarios.Where(us => us.Id == usu.Id).Select(v => v.Balance).First(); User u = new User { Id = usu.Id, Login = usu.Login, Balance = (decimal)balanceUsuario, Administrador = usu.Administrador }; return(RespuestaHelper.GestionaOKHttpResponse(mensaje, u)); } }
public HttpResponseMessage ModificaBalance(int id, decimal cantidad) { string mensaje; bool err = false; var usr = dbContext.Usuarios.FirstOrDefault(u => u.Id == id); //modifico balance if (usr != null) { //compruebo que balance resultante de operación sea mayor o igual a 0 if (usr.Balance + cantidad < 0) { err = true; mensaje = "El balance resultante del usuario no puede resultar negativo"; } else { usr.Balance += cantidad; //indicamos que se modifica el balance dbContext.Entry(usr).Property(u => u.Balance).IsModified = true; dbContext.SaveChanges(); mensaje = "Balance del usuario modificado correctamente"; } } else { err = true; mensaje = "Usuario no encontrado"; } if (err) { return(RespuestaHelper.GestionaErrorHttpResponse("Error", mensaje, httpStatusCode: HttpStatusCode.BadRequest)); } else { User u = new User { Id = usr.Id, Login = usr.Login, Balance = usr.Balance, Administrador = usr.Administrador }; return(RespuestaHelper.GestionaOKHttpResponse(mensaje, u)); } }
public HttpResponseMessage Get(int id) { using (UsuariosEntities ue = new UsuariosEntities()) { var result = from u in dbContext.Usuarios where u.Id == id select new User { Id = u.Id, Login = u.Login, Balance = (decimal)u.Balance, Administrador = u.Administrador }; if (result.Any()) { return(RespuestaHelper.GestionaOKHttpResponse("Ok", result)); } else { return(RespuestaHelper.GestionaErrorHttpResponse("Error", "Usuario no encontrado", httpStatusCode: HttpStatusCode.BadRequest)); } } }