/// <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); }
/// <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; }