コード例 #1
0
        //Расчет конечных приоритетов и сортировка
        private void FinalCalculate()
        {
            //Пролистываем результатты первого критерия и добавляем в общий список (учитывая приогритет критерия)
            for (int i = 0; i < FirstCriterionContainer.Count; i++)
            {
                if ((AllCriterionContainer.FindIndex(x => x.databaseId == FirstCriterionContainer[i].databaseId)) >= 0)
                {
                    //DUNNO LOL
                }
                else
                {
                    TotalResultUnit EntrantFinal = new TotalResultUnit();
                    EntrantFinal.databaseId = FirstCriterionContainer[i].databaseId;
                    AllCriterionContainer.Add(EntrantFinal);
                }

                AllCriterionContainer.Find(x => x.databaseId == FirstCriterionContainer[i].databaseId).firstCriterionFinalPriority =
                    FirstCriterionContainer[i].localPriority * _settings.FirstCriterionPriority;
            }
            //Потом тоже самое для 2 критерия
            for (int i = 0; i < SecondCriterionContainer.Count; i++)
            {
                if ((AllCriterionContainer.FindIndex(x => x.databaseId == SecondCriterionContainer[i].databaseId)) >= 0)
                {
                    //DUNNO LOL
                }
                else
                {
                    TotalResultUnit EntrantFinal = new TotalResultUnit();
                    EntrantFinal.databaseId = SecondCriterionContainer[i].databaseId;
                    AllCriterionContainer.Add(EntrantFinal);
                }

                AllCriterionContainer.Find(x => x.databaseId == SecondCriterionContainer[i].databaseId).secondCriterionFinalPriority =
                    SecondCriterionContainer[i].localPriority * _settings.SecondCriterionPriority;
            }
            //Потом тоже самое для 3 критерия
            for (int i = 0; i < ThirdCriterionContainer.Count; i++)
            {
                if ((AllCriterionContainer.FindIndex(x => x.databaseId == ThirdCriterionContainer[i].databaseId)) >= 0)
                {
                    //DUNNO LOL
                }
                else
                {
                    TotalResultUnit EntrantFinal = new TotalResultUnit();
                    EntrantFinal.databaseId = ThirdCriterionContainer[i].databaseId;
                    AllCriterionContainer.Add(EntrantFinal);
                }

                AllCriterionContainer.Find(x => x.databaseId == ThirdCriterionContainer[i].databaseId).thirdCriterionFinalPriority =
                    ThirdCriterionContainer[i].localPriority * _settings.ThirdCriterionPriority;
            }



            //Завершающее сложение и заполнение выходного словарая
            foreach (TotalResultUnit UserFinal in AllCriterionContainer)
            {
                UserFinal.absolutePriority = UserFinal.firstCriterionFinalPriority + UserFinal.secondCriterionFinalPriority + UserFinal.thirdCriterionFinalPriority;
            }

            //Сортировка
            AllCriterionContainer.Sort((x, y) => y.absolutePriority.CompareTo(x.absolutePriority));
        }
コード例 #2
0
        //Критерий расстояний - расчеты приоритетов для всех подходящих направлений
        //Расчет конечных приоритетов и сортировка
        private List <TotalResultUnit> FinalCalculate()
        {
            //Пролистываем результатты первого критерия и добавляем в общий список (учитывая приогритет критерия)
            for (var i = 0; i < _firstCriterionContainer.Count; i++)
            {
                if ((_allCriterionContainer.FindIndex(x => x.DatabaseId == _firstCriterionContainer[i].DatabaseId)) >= 0)
                {
                    //DUNNO LOL
                }
                else
                {
                    var educationLineFinal = new TotalResultUnit();
                    educationLineFinal.DatabaseId = _firstCriterionContainer[i].DatabaseId;
                    _allCriterionContainer.Add(educationLineFinal);
                }

                _allCriterionContainer.Find(x => x.DatabaseId == _firstCriterionContainer[i].DatabaseId)
                .FirstCriterionFinalPriority =
                    _firstCriterionContainer[i].LocalPriority * _settings.FirstCriterionPriority;
            }
            //Потом тоже самое для 2 критерия
            for (var i = 0; i < _secondCriterionContainer.Count; i++)
            {
                if ((_allCriterionContainer.FindIndex(x => x.DatabaseId == _secondCriterionContainer[i].DatabaseId)) >=
                    0)
                {
                    //DUNNO LOL
                }
                else
                {
                    var educationLineFinal = new TotalResultUnit();
                    educationLineFinal.DatabaseId = _secondCriterionContainer[i].DatabaseId;
                    _allCriterionContainer.Add(educationLineFinal);
                }

                _allCriterionContainer.Find(x => x.DatabaseId == _secondCriterionContainer[i].DatabaseId)
                .SecondCriterionFinalPriority =
                    _secondCriterionContainer[i].LocalPriority * _settings.SecondCriterionPriority;
            }
            //Потом тоже самое для 3-го
            for (var i = 0; i < _thirdCriterionContainer.Count; i++)
            {
                if ((_allCriterionContainer.FindIndex(x => x.DatabaseId == _thirdCriterionContainer[i].DatabaseId)) >= 0)
                {
                    //DUNNO LOL
                }
                else
                {
                    var educationLineFinal = new TotalResultUnit();
                    educationLineFinal.DatabaseId = _thirdCriterionContainer[i].DatabaseId;
                    _allCriterionContainer.Add(educationLineFinal);
                }

                _allCriterionContainer.Find(x => x.DatabaseId == _thirdCriterionContainer[i].DatabaseId)
                .ThirdCriterionFinalPriority =
                    _thirdCriterionContainer[i].LocalPriorityFaculty * _settings.ThirdCriterionPriority *
                    (1 - HeIprestigePart) +
                    _thirdCriterionContainer[i].LocalPriorityHei * _settings.ThirdCriterionPriority * HeIprestigePart;
            }
            //Потом тоже самое для 4 критерия
            for (var i = 0; i < _fourthCriterionContainer.Count; i++)
            {
                if ((_allCriterionContainer.FindIndex(x => x.DatabaseId == _fourthCriterionContainer[i].DatabaseId)) >=
                    0)
                {
                    //DUNNO LOL
                    //ЕВГЕНИЙ: БЛЯЯЯ. ЧИтающий этот говнокод, да узри же тот же ужас и батхерт, который испытал я, пытаясь причесать его...
                }
                else
                {
                    var educationLineFinal = new TotalResultUnit();
                    educationLineFinal.DatabaseId = _fourthCriterionContainer[i].DatabaseId;
                    _allCriterionContainer.Add(educationLineFinal);
                }

                _allCriterionContainer.Find(x => x.DatabaseId == _fourthCriterionContainer[i].DatabaseId)
                .FourthCriterionFinalPriority =
                    _fourthCriterionContainer[i].LocalPriority * _settings.FourthCriterionPriority;
            }

            //Завершающее сложение и заполнение выходного словарая
            foreach (var edLineFinal in _allCriterionContainer)
            {
                edLineFinal.AbsolutePriority = edLineFinal.FirstCriterionFinalPriority +
                                               edLineFinal.SecondCriterionFinalPriority +
                                               edLineFinal.ThirdCriterionFinalPriority +
                                               edLineFinal.FourthCriterionFinalPriority;
            }

            //Сортировка
            _allCriterionContainer.Sort((x, y) => y.AbsolutePriority.CompareTo(x.AbsolutePriority));

            return(_allCriterionContainer);
        }
コード例 #3
0
        //Расчет конечных приоритетов и сортировка
        private void FinalCalculate()
        {
            //Пролистываем результатты первого критерия и добавляем в общий список (учитывая приогритет критерия)
            for (var i = 0; i < _firstCriterionContainer.Count; i++)
            {
                if ((AllCriterionContainer.FindIndex(x => x.DatabaseId == _firstCriterionContainer[i].DatabaseId)) >= 0)
                {
                    //DUNNO LOL
                }
                else
                {
                    var entrantFinal = new TotalResultUnit();
                    entrantFinal.DatabaseId = _firstCriterionContainer[i].DatabaseId;
                    AllCriterionContainer.Add(entrantFinal);
                }

                AllCriterionContainer.Find(x => x.DatabaseId == _firstCriterionContainer[i].DatabaseId)
                .FirstCriterionFinalPriority =
                    _firstCriterionContainer[i].LocalPriority * _settings.FirstCriterionPriority;
            }
            //Потом тоже самое для 2 критерия
            for (var i = 0; i < _secondCriterionContainer.Count; i++)
            {
                if ((AllCriterionContainer.FindIndex(x => x.DatabaseId == _secondCriterionContainer[i].DatabaseId)) >= 0)
                {
                    //DUNNO LOL
                }
                else
                {
                    var entrantFinal = new TotalResultUnit();
                    entrantFinal.DatabaseId = _secondCriterionContainer[i].DatabaseId;
                    AllCriterionContainer.Add(entrantFinal);
                }

                AllCriterionContainer.Find(x => x.DatabaseId == _secondCriterionContainer[i].DatabaseId)
                .SecondCriterionFinalPriority =
                    _secondCriterionContainer[i].LocalPriority * _settings.SecondCriterionPriority;
            }
            //Потом тоже самое для 3 критерия
            for (var i = 0; i < _thirdCriterionContainer.Count; i++)
            {
                if ((AllCriterionContainer.FindIndex(x => x.DatabaseId == _thirdCriterionContainer[i].DatabaseId)) >= 0)
                {
                    //DUNNO LOL
                }
                else
                {
                    var entrantFinal = new TotalResultUnit();
                    entrantFinal.DatabaseId = _thirdCriterionContainer[i].DatabaseId;
                    AllCriterionContainer.Add(entrantFinal);
                }

                AllCriterionContainer.Find(x => x.DatabaseId == _thirdCriterionContainer[i].DatabaseId)
                .ThirdCriterionFinalPriority =
                    _thirdCriterionContainer[i].LocalPriority * _settings.ThirdCriterionPriority;
            }


            //Завершающее сложение и заполнение выходного словарая
            foreach (var userFinal in AllCriterionContainer)
            {
                userFinal.AbsolutePriority = userFinal.FirstCriterionFinalPriority +
                                             userFinal.SecondCriterionFinalPriority +
                                             userFinal.ThirdCriterionFinalPriority;
            }

            //Сортировка
            AllCriterionContainer.Sort((x, y) => y.AbsolutePriority.CompareTo(x.AbsolutePriority));
        }