public IActionResult Put(Guid usuarioId, [FromBody] UpdateUsuarioModel usuarioModel) { if (usuarioModel == null) { return(BadRequest()); } var usuarioEntity = _repository.RetornaUsuario(usuarioId); if (usuarioEntity == null) { return(NotFound()); } // Valida email duplicado if (_repository.EmailExists(usuarioModel.Email, usuarioId)) { ModelState.AddModelError("Email", "O e-mail informado já está sendo utilizado"); } if (!ModelState.IsValid) { return(new UnprocessableEntityObjectResult(ModelState)); } if (!_repository.UsuarioExists(usuarioId)) { return(NotFound()); } _mapper.Map(usuarioModel, usuarioEntity); _repository.AtualizaUsuario(usuarioEntity); if (!_repository.Save()) { throw new Exception("Ocorreu um erro inesperado ao atualizar o usuário"); } return(NoContent()); }
public async Task <IActionResult> Put(string id, [FromBody] UpdateUsuarioModel model) { model.Id = Guid.Parse(id); if (!Context.Usuarios.Any(x => x.Id == Guid.Parse(id))) { return(NotFound()); } if (string.IsNullOrEmpty(model.Nome) || string.IsNullOrEmpty(model.Email)) { return(NotFound(new { error = "Nome ou email nao podem ser alterados para nulos" })); } var usuario = ConsultaUsuario(id); var user = new Usuario(); user.Nome = model.Nome; user.Email = model.Email; user.Cpf = model.Cpf.Replace(".", "").Replace("-", ""); user.DataNacimento = Util.convertDateTime(model.DataNacimento); string dateInput = model.DataNacimento; if (!string.IsNullOrEmpty(model.Senha)) { user.Senha = model.Senha; } var permissao = getPermissao().FirstOrDefault(x => x.Nivel.Equals(model.perfilUsuario)); usuario.Atualizar(user, Context); if (!Context.UsuarioPermissoes.Any(x => x.UsuarioId == model.Id && x.PermissaoId == permissao.Id)) { var up = Context.UsuarioPermissoes.FirstOrDefault(x => x.UsuarioId == model.Id && x.PermissaoId == permissao.Id); Context.UsuarioPermissoes.Remove(up); usuario.UsuarioPermissoes = new UsuarioPermissao(usuario, permissao); } Context.Usuarios.Update(usuario); await Context.SaveChangesAsync(); MemoryCache.Remove("usuarios"); return(Ok(new { ok = true, Response = "Usuário salvo com sucesso" })); }
public async Task <IActionResult> Post([FromBody] UpdateUsuarioModel model) { if (model == null) { return(BadRequest()); } if (RestornaUsuariosList().Any(x => x.Email == model.Email)) { throw new ArgumentException($"O Email {model.Email} já esta em uso"); } var Permissao = Context.Permissoes.FirstOrDefault(x => x.Nivel == model.perfilUsuario); var usuario = new Usuario(model.Nome, model.Email, model.Cpf, Util.convertDateTime(model.DataNacimento), model.Senha); var usuarioPermissoes = new UsuarioPermissao(usuario, Permissao); Context.Usuarios.Add(usuario); Context.UsuarioPermissoes.Add(usuarioPermissoes); await Context.SaveChangesAsync(); MemoryCache.Remove("usuarios"); return(Ok(new { ok = true, Response = "Usuário salvo com sucesso" })); }