public void Executar(int idConcurso)
        {
            var concurso = concursoRepo.AtivoByIdConcurso(idConcurso);

            Assegure.NaoNulo(concurso, "idConcurso não encontrado");


            var apostas = apostaRepo.ByIdConcurso(concurso.IdConcurso);

            var jogo = jogoRepo.GetByIdJogo(concurso.IdJogo);

            var resultado = resultadoService.GetResultado(jogo);


            var finalizarCommand = new Concurso.FinalizarCommand
            {
                Apostas       = apostas,
                DataConclusao = DateTime.Now,
                Resultado     = resultado
            };

            /// em um cenário real a implementação seria outra.
            /// Primeiro que não seria em uma thread web e sim em uma fila...

            concurso.Finalizar(finalizarCommand);
        }