public ICommandResult Atualizar([FromBody] AtualizarUsuarioBaseCommand command) { var result = (CommandResult)_handler.Handle(command); return(result); }
public ICommandResult Handle(AtualizarUsuarioBaseCommand command) { if (!command.IsValidCommand()) { return(new CommandResult(false, "Por favor, corrigir os campos abaixo", command.Notifications)); } var usuario = _repository.UsuarioBase(command.Id); if (usuario == null) { return(new CommandResult(false, $"O usuario não existe na base de dados. Id de usuário informado: { command.Id }", new { })); } if (command.Usuario != usuario.Login.Usuario) { if (_repository.UsuarioExistente(command.Usuario)) { AddNotification("Usuario", $"Nome de usuário já cadastrado na base de dados. Nome informado: { command.Usuario }"); } } if (command.Documento != usuario.Documento.Documento) { if (_repository.DocumentoExistente(command.Documento)) { AddNotification("CPF/CNPJ", $"CPF/CNPJ já cadastrado na base de dados. Doc. informado: { command.Documento }"); } } if (command.Email != usuario.Email.Email) { if (_repository.EmailExistente(command.Email)) { AddNotification("E-mail", $"E-mail já cadastrado na base de dados. E-mail informado: { command.Email }"); } } var login = new LoginVO(command.Usuario); var email = new EmailVO(command.Email); var documento = new DocumentoVO(command.Documento); if (usuario.Login.Senha != command.Senha) { login = new LoginVO(command.Usuario, command.Senha); } else { login.AtribuirSenha(command.Senha); } if (command.Ativo.Equals(EBoolean.False)) { usuario.Desativar(); } else { usuario.Ativar(); } usuario.AtribuirUsuario( login, email, documento, command.PerfilAcesso, command.ImpressoraZebra); AddNotifications(usuario, login, email, documento); if (Invalid) { return(new CommandResult(false, "Por favor, corrigir os campos abaixo", Notifications)); } _repository.Atualizar(usuario); return(new CommandResult(true, "Usuário atualizado com sucesso", new { Id = usuario.Id, Usuario = usuario.Login.Usuario, Documento = usuario.Documento.Documento })); }