コード例 #1
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);
        }
コード例 #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;
        }