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; } } } }
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; } } } }