Example #1
0
        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" }));
        }