public HttpResponseMessage Put([ValidKey(ValidKeyAttribute.Entities.Usuario)] string samaccount, UpdateUsuarioViewModel user)
 {
     UsuarioServices.AtualizaUsuario(samaccount, user);
     return(Request.CreateResponse(HttpStatusCode.OK, new DescriptionMessage(HttpStatusCode.OK, "User Updated", "User updated")));
 }
示例#2
0
        public ActionResult <ReturnUserViewModel> UpdateUser(UpdateUsuarioViewModel usuario)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var user = _usuarioRepository.GetUsuarioById(usuario.Id).FirstOrDefault();

                if (user == null)
                {
                    return(BadRequest(new Response
                    {
                        Code = Models.Response.ResponseCode.Error.ToString(),
                        Message = "Error: El usuario no existe o no se pudo encontrar",
                        Description = "User es nulo"
                    }));
                }

                user.NombreCompleto = usuario.NombreCompleto;
                user.NombreUsuario  = usuario.NombreUsuario;
                user.Edad           = usuario.Edad;

                if (!string.IsNullOrEmpty(usuario.Contraseña) && !string.IsNullOrEmpty(usuario.ContraseñaConfirmada))
                {
                    if (!usuario.Contraseña.Equals(usuario.ContraseñaConfirmada))
                    {
                        return(BadRequest(new Response
                        {
                            Code = Models.Response.ResponseCode.Error.ToString(),
                            Message = "Error: Las contraseñas no coinciden",
                            Description = "Contraseña y ContraseñaConfirmada son diferentes"
                        }));
                    }

                    var encryptedPassword = EncryptionService.GetSHA256(usuario.Contraseña);

                    user.Contraseña = encryptedPassword;
                }

                _usuarioRepository.UpdateUsuario(user);

                return(Ok(new Response
                {
                    Code = Models.Response.ResponseCode.Ok.ToString(),
                    Message = "OK",
                    Description = "OK"
                }));
            }
            catch (Exception e)
            {
                return(BadRequest(new Response
                {
                    Code = Models.Response.ResponseCode.Error.ToString(),
                    Message = "Error: Ah ocurrido un error",
                    Description = e.Message
                }));
            }
        }