public List <Alternativa> ProcessarMatriz(int idProjeto)
        {
            var criterios                       = _criterioService.SelecionarCriterios(idProjeto);
            var alternativas                    = _alternativaService.SelecionarAlternativas(idProjeto);
            var matrizNormalizada               = NormalizarMatriz(idProjeto, criterios);
            var matrizNormalizadaPonderada      = MatrizNormalizadaPonderada(matrizNormalizada, criterios);
            var matrizNormalizadaPonderadaClone = matrizNormalizadaPonderada.ConvertAll(x => new ItemMatrizDeDecisao()
            {
                Id          = x.Id,
                Alternativa = x.Alternativa,
                Criterio    = x.Criterio,
                Projeto     = x.Projeto,
                Valor       = x.Valor
            });
            var vetorIdealPositivo          = ObterVetorIdealPositivo(matrizNormalizadaPonderada, criterios);
            var vetorIdealNegativo          = ObterVetorIdealNegativo(matrizNormalizadaPonderadaClone, criterios);
            var distanciaEuclidianaPositiva = ObterDistanciaEuclidianaDoVetor(matrizNormalizadaPonderada, vetorIdealPositivo, idProjeto, criterios, alternativas);
            var distanciaEuclidianaNegativa = ObterDistanciaEuclidianaDoVetor(matrizNormalizadaPonderadaClone, vetorIdealNegativo, idProjeto, criterios, alternativas);

            GerarResultado(alternativas, distanciaEuclidianaPositiva, distanciaEuclidianaNegativa);
            alternativas.ForEach(alternativa => _alternativaService.Atualizar(alternativa));
            return(alternativas);
        }