public async Task <ICommandResult> Handle(RemoverFuncionarioCommand command, CancellationToken cancellationToken)
        {
            var result = new CommandResult(true, "Não foi possível atualizar Funcionário!");

            if (!command.IsValid())
            {
                return(result.AddNotifications("Dados Inválidos"));
            }

            try
            {
                var funcionario = service.BuscarPorId(command.Id);

                if (funcionario == null)
                {
                    return(result.AddNotifications("Funcionário não cadastrado"));
                }

                service.Remover(funcionario);
            }
            catch (Exception ex)
            {
                return(new CommandResult(false, $"Ocorreu um erro ao remover Funcionário. Erro.: {ex.Message}"));
            }

            // Invocar eventos

            if (!await service.SaveChanges())
            {
                return(result);
            }

            return(new CommandResult(true, "Funcionário removido com sucesso!"));
        }