Esempio n. 1
0
        public IActionResult Put(int id, [FromBody] ModificarUsuarioDTO usuarioDTO)
        {
            using (EFContext ctx = new EFContext())
            {
                var usuario = ctx.Usuarios.Where(u => u.Id == id && u.Estatus == true).FirstOrDefault();

                if (usuario == null)
                {
                    return(NotFound());
                }

                usuario.Usuario = usuarioDTO.Usuario;
                usuario.Correo  = usuarioDTO.Correo;
                usuario.Sexo    = usuarioDTO.Sexo;

                if (usuarioDTO.Contrasena != null || usuarioDTO.Contrasena != "")
                {
                    var contrasena = HashContrasena.GetHash(usuarioDTO.Contrasena);
                    usuario.Contrasena = contrasena.Contrasena;
                    usuario.Sal        = contrasena.Sal;
                }

                try
                {
                    ctx.SaveChanges();
                    return(Ok(ctx.Usuarios
                              .Where(r => r.Id == usuario.Id)
                              .Select(r => new { r.Id, r.Correo, r.Usuario, r.Sexo, r.FechaCreacion })
                              .FirstOrDefault()));
                }
                catch (DbUpdateException ex)
                {
                    SqlException innerException = ex.InnerException as SqlException;
                    if (innerException != null && (innerException.Number == 2627 || innerException.Number == 2601))
                    {
                        return(Conflict(new { message = "No se puede modificar porque se el usuario o el correo ya están repetidos" }));
                    }
                    else
                    {
                        throw;
                    }
                }
            }
        }
Esempio n. 2
0
        public IActionResult Post([FromBody] CrearUsuarioDTO usuarioDTO)
        {
            using (EFContext ctx = new EFContext())
            {
                // Hasheamos la contraseña
                var hash = HashContrasena.GetHash(usuarioDTO.Contrasena);

                // Construimos nuestro modelo Usuario
                var usuarioModel = new UsuariosModel()
                {
                    Usuario    = usuarioDTO.Usuario,
                    Correo     = usuarioDTO.Correo,
                    Contrasena = hash.Contrasena,
                    Sal        = hash.Sal,
                    Sexo       = usuarioDTO.Sexo,
                };
                var usuario = ctx.Usuarios.Add(usuarioModel);

                try
                {
                    ctx.SaveChanges();
                    return(Created($"api/usuarios/{usuario.Entity.Id}/", ctx.Usuarios
                                   .Where(r => r.Id == usuario.Entity.Id)
                                   .Select(r => new { r.Id, r.Correo, r.Usuario, r.Sexo, r.FechaCreacion })
                                   .FirstOrDefault()));
                }
                catch (DbUpdateException ex)
                {
                    SqlException innerException = ex.InnerException as SqlException;
                    if (innerException != null && (innerException.Number == 2627 || innerException.Number == 2601))
                    {
                        return(Conflict(new { message = "El registro ya existe" }));
                    }
                    else
                    {
                        throw;
                    }
                }
            }
        }