Esempio n. 1
0
 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));
     }
 }
Esempio n. 2
0
        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));
            }
        }
Esempio n. 3
0
        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));
            }
        }
Esempio n. 4
0
        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));
            }
        }
Esempio n. 5
0
        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));
            }
        }
Esempio n. 6
0
        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));
                }
            }
        }