Ejemplo n.º 1
0
        public async Task <List <IAlternativeModel> > Calculate(Guid id)
        {
            var criterias = await CriteriaService.GetCriteriasByProjectIdWithCRaAR(id);

            var array2d       = DataPreparation.Get2dArray(criterias);
            var criteriaRanks = DataPreparation.GetCriteriaRanks(criterias);

            var result = AHPMethod(criteriaRanks, array2d);

            var alternatives = await AlternativeService.GetAlternativesByProjectId(id, 1, 20);

            for (int i = 0; i < alternatives.Count(); i++)
            {
                alternatives[i].FinalPriority = result[i];
                await AlternativeService.Update(alternatives[i]);
            }
            var sorted = alternatives.OrderByDescending(alt => alt.FinalPriority).ToList();

            return(sorted);
        }