コード例 #1
0
ファイル: MDTestReference.cs プロジェクト: ondister/Recog
 public MDTestReference(ITestReport MDReport)
 {
     _mdtestreport = (MDTestReport)MDReport;
 }
コード例 #2
0
ファイル: ReferenceFactory.cs プロジェクト: ondister/Recog
        /// <summary>
        /// Создает характеристику по выбранным тестам
        /// </summary>
        /// <param name="checkedtestsid">Отмеченные тесты</param>
        /// <param name="SelectedRef">Выбранная характеристика</param>
        /// <returns></returns>
        public IReference GetReference(List<int> checkedtestsid, EnumPReferences SelectedRef)
        {
            IReference _reference = null;
            List<testresult> testresults = new List<testresult>();

            foreach (int testid in checkedtestsid)
            {//выбираем все отмеченные тесты
                testresults.Add(_human.testresults.FirstOrDefault(test => test.idtr == testid));
            }

            switch (SelectedRef)
            {

                case EnumPReferences.KettellC:
                    if (testresults.Count(test => test.testid == (int)EnumPTests.KettellC) != 0)
                    {
                        testresult kettellctestresult = testresults.LastOrDefault(test => test.testid == (int)EnumPTests.KettellC);
                        ITestReport kettellcreport = new KettellCTestReport(_human, kettellctestresult, _ge, _fe, true);
                        _reference = new KettellCTestReference(kettellcreport);
                    }
                    else
                    { MessageBox.Show("Для выбранной характеристики необходим тест Кеттелла С \nОтметьте его галочной в списке тестов"); }
                    break;

                case EnumPReferences.Adaptability:
                    if (testresults.Count(test => test.testid == (int)EnumPTests.Adaptability) != 0)
                    {
                        testresult dtestresult = testresults.LastOrDefault(test => test.testid == (int)EnumPTests.Adaptability);
                        ITestReport dreport = new DTestReport(_human, dtestresult, _ge, _fe, true);
                        _reference = new DTestReference(dreport);
                    }
                    else
                    { MessageBox.Show("Для выбранной характеристики необходим тест Адаптивность \nОтметьте его галочной в списке тестов"); }
                    break;

                case EnumPReferences.FPI:
                    if (testresults.Count(test => test.testid == (int)EnumPTests.FPI) != 0)
                    {
                        testresult fpitestresult = testresults.LastOrDefault(test => test.testid == (int)EnumPTests.FPI);
                        ITestReport fpireport = new FPITestReport(_human, fpitestresult, _ge, _fe, true);
                        _reference = new FPITestReference(fpireport);
                    }
                    else
                    { MessageBox.Show("Для выбранной характеристики необходим тест FPI \nОтметьте его галочной в списке тестов"); }
                    break;

                case EnumPReferences.KettellA:
                    if (testresults.Count(test => test.testid == (int)EnumPTests.KettellA) != 0)
                    {
                        testresult kettellatestresult = testresults.LastOrDefault(test => test.testid == (int)EnumPTests.KettellA);
                        ITestReport kettellareport = new KettellATestReport(_human, kettellatestresult, _ge, _fe, true);
                        _reference = new KettellATestReference(kettellareport);
                    }
                    else
                    { MessageBox.Show("Для выбранной характеристики необходим тест Кеттелла А \nОтметьте его галочной в списке тестов"); }
                    break;

                case EnumPReferences.Modul:
                    if (testresults.Count(test => test.testid == (int)EnumPTests.Modul2) != 0)
                    {
                        testresult mdtestresult = testresults.LastOrDefault(test => test.testid == (int)EnumPTests.Modul2);
                        ITestReport mdreport = new MDTestReport(_human, mdtestresult, _ge, _fe, true);
                        _reference = new MDTestReference(mdreport);
                    }
                    else
                    { MessageBox.Show("Для выбранной характеристики необходим тест Модуль \nОтметьте его галочной в списке тестов"); }
                    break;

                case EnumPReferences.Integrative:
                    if (testresults.Count(test => test.testid == (int)EnumPTests.KettellC) != 0)
                    {
                        testresult kettelltestresult = testresults.LastOrDefault(test => test.testid == (int)EnumPTests.KettellC);
                        ITestReport kettellreport = new KettellCTestReport(_human, kettelltestresult, _ge, _fe, true);
                        _reference = new IntegrativeReference(kettellreport,_fe);
                    }
                    else
                    { MessageBox.Show("Для выбранной характеристики необходим тест Кеттелла С \nОтметьте его галочной в списке тестов"); }
                    break;
                case EnumPReferences.Prognoz:
                    if (testresults.Count(test => test.testid == (int)EnumPTests.Prognoz) != 0)
                    {
                        testresult prognoztestresult = testresults.LastOrDefault(test => test.testid == (int)EnumPTests.Prognoz);
                        ITestReport prognozreport = new PTestReport(_human, prognoztestresult, _ge, _fe, true);
                        _reference = new PTestReference(prognozreport);
                    }
                    else
                    { MessageBox.Show("Для выбранной характеристики необходим тест Прогноз 2 \nОтметьте его галочной в списке тестов"); }
                    break;
                case EnumPReferences.Addictive:
                    if (testresults.Count(test => test.testid == (int)EnumPTests.Addictive) != 0)
                    {
                        testresult addictivetestresult = testresults.LastOrDefault(test => test.testid == (int)EnumPTests.Addictive);
                        ITestReport addictivereport = new ATestReport(_human, addictivetestresult, _ge, _fe, true);
                        _reference = new ATestReference(addictivereport);
                    }
                    else
                    { MessageBox.Show("Для выбранной характеристики необходим тест Аддиктивная склонность \nОтметьте его галочной в списке тестов"); }
                    break;
                case EnumPReferences.NPNA:
                    if (testresults.Count(test => test.testid == (int)EnumPTests.NPNA) != 0)
                    {
                        testresult addictivetestresult = testresults.LastOrDefault(test => test.testid == (int)EnumPTests.NPNA);
                        ITestReport addictivereport = new NPNTestReport(_human, addictivetestresult, _ge, _fe, true);
                        _reference = new NPNTestReference(addictivereport);
                    }
                    else
                    { MessageBox.Show("Для выбранной характеристики необходим тест НПН-А \nОтметьте его галочной в списке тестов"); }
                    break;
                case EnumPReferences.Leongard:
                    if (testresults.Count(test => test.testid == (int)EnumPTests.Leongard) != 0)
                    {
                        testresult addictivetestresult = testresults.LastOrDefault(test => test.testid == (int)EnumPTests.Leongard);
                        ITestReport addictivereport = new LTestReport(_human, addictivetestresult, _ge, _fe, true);
                        _reference = new LTestReference(addictivereport);
                    }
                    else
                    { MessageBox.Show("Для выбранной характеристики необходим тест Леонгарда \nОтметьте его галочной в списке тестов"); }
                    break;
            }
            return _reference;
        }