示例#1
0
        /// <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
 public LTestReference(ITestReport LReport)
 {
     _dtestreport = (LTestReport)LReport;
 }
示例#3
0
 private void Loading()
 {
     _tp = _ge.testsparams.First(t => t.idt == _testid);
       switch (_testid)
     {
         case (int)EnumPTests.KettellC://TODO:это все поместить в фабрику отчетов с функцие добавления пустых ответов
             //create fool kettellanswers
             KettellAnswers ka = new KettellAnswers();
             for (int a = 0; a < 104; a++)
             {
                 ka.Add(0, "", "", a, "");
             }
             XmlSerializer mySerializer = new XmlSerializer(typeof(KettellAnswers));
             StringWriter myWriter = new StringWriter();
             mySerializer.Serialize(myWriter, ka);
             _human=_fe.humans.First(h => h.idh == _humanid);
             KettellCTestReport kcr = new KettellCTestReport(_human, testresult.Createtestresult(0, _humanid, DateTime.Now, (int)EnumPTests.KettellC, myWriter.ToString(), "manual"), _ge, _fe, true);
             for (int i = 0; i < kcr.ListScales.Count(); i++)
             {
                 ScaleControl sc = new ScaleControl();
                 this.flp_parent.Controls.Add(sc);
                 sc.ControlScale = kcr.ListScales[i];
             }
             break;
         case (int)EnumPTests.PNN:
             PNNAnswers pa = new PNNAnswers();
             for (int a = 0; a < 104; a++)
             {
                pa.Add(PnnSignalType.Green,PnnKeyType.AnyKey,DateTime.Now,0);
             }
             XmlSerializer mySerializerp = new XmlSerializer(typeof(PNNAnswers));
             StringWriter myWriterp = new StringWriter();
             mySerializerp.Serialize(myWriterp, pa);
             _human=_fe.humans.First(h => h.idh == _humanid);
             PNNTestReport pnr = new PNNTestReport(_human, testresult.Createtestresult(0, _humanid, DateTime.Now, (int)EnumPTests.PNN, myWriterp.ToString(), "manual"), _ge, _fe);
             for (int i = 0; i < pnr.ListScales.Count(); i++)
             {
                 ScaleControl sc = new ScaleControl();
                 this.flp_parent.Controls.Add(sc);
                 sc.ControlScale = pnr.ListScales[i];
             }
             break;
         case (int)EnumPTests.Adaptability:
              DAnswers kd = new DAnswers();
             for (int a = 0; a < 165; a++)
             {
                 kd.Add(0, "", "", a, "");
             }
             XmlSerializer mySerializerd = new XmlSerializer(typeof(DAnswers));
             StringWriter myWriterd = new StringWriter();
             mySerializerd.Serialize(myWriterd, kd);
             _human=_fe.humans.First(h => h.idh == _humanid);
             DTestReport kdr = new DTestReport(_human, testresult.Createtestresult(0, _humanid, DateTime.Now, (int)EnumPTests.Adaptability, myWriterd.ToString(), "manual"), _ge, _fe, true);
             for (int i = 0; i < kdr.ListScales.Count(); i++)
             {
                 ScaleControl sc = new ScaleControl();
                 this.flp_parent.Controls.Add(sc);
                 sc.ControlScale = kdr.ListScales[i];
             }
             break;
         case (int)EnumPTests.FPI:
              FPIAnswers kfpi= new FPIAnswers();
             for (int a = 0; a < 114; a++)
             {
                 kfpi.Add(0, "", "", a, "");
             }
             XmlSerializer mySerializerfpi = new XmlSerializer(typeof(FPIAnswers));
             StringWriter myWriterfpi = new StringWriter();
             mySerializerfpi.Serialize(myWriterfpi, kfpi);
             _human=_fe.humans.First(h => h.idh == _humanid);
             FPITestReport kfr = new FPITestReport(_human, testresult.Createtestresult(0, _humanid, DateTime.Now, (int)EnumPTests.FPI, myWriterfpi.ToString(), "manual"), _ge, _fe, true);
             for (int i = 0; i < kfr.ListScales.Count(); i++)
             {
                 ScaleControl sc = new ScaleControl();
                 this.flp_parent.Controls.Add(sc);
                 sc.ControlScale = kfr.ListScales[i];
             }
             break;
         case (int)EnumPTests.KettellA:
              KettellAnswers kaa = new KettellAnswers();
             for (int a = 0; a < 185; a++)
             {
                 kaa.Add(0, "", "", a, "");
             }
             XmlSerializer mySerializera = new XmlSerializer(typeof(KettellAnswers));
             StringWriter myWritera = new StringWriter();
             mySerializera.Serialize(myWritera, kaa);
             _human=_fe.humans.First(h => h.idh == _humanid);
             KettellATestReport kar = new KettellATestReport(_human, testresult.Createtestresult(0, _humanid, DateTime.Now, (int)EnumPTests.KettellA, myWritera.ToString(), "manual"), _ge, _fe, true);
             for (int i = 0; i < kar.ListScales.Count(); i++)
             {
                 ScaleControl sc = new ScaleControl();
                 this.flp_parent.Controls.Add(sc);
                 sc.ControlScale = kar.ListScales[i];
             }
             break;
           case (int)EnumPTests.Contrasts:
             ContrastsAnswers mkd = new ContrastsAnswers();
             for (int a = 0; a < 6; a++)
             {
                 mkd.Add(DateTime.Now, 0);
             }
             XmlSerializer mySerializermd = new XmlSerializer(typeof(ContrastsAnswers));
             StringWriter myWritermd = new StringWriter();
             mySerializermd.Serialize(myWritermd, mkd);
             _human = _fe.humans.First(h => h.idh == _humanid);
             ContrastsTestReport mkdr = new ContrastsTestReport(_human, testresult.Createtestresult(0, _humanid, DateTime.Now, (int)EnumPTests.Contrasts, myWritermd.ToString(), "manual"), _ge, _fe);
             for (int i = 0; i < mkdr.ListScales.Count(); i++)
             {
                 ScaleControl sc = new ScaleControl();
                 this.flp_parent.Controls.Add(sc);
                 sc.ControlScale = mkdr.ListScales[i];
             }
             break;
           case (int)EnumPTests.Prognoz:
             PAnswers paa = new PAnswers();
             for (int a = 0; a < 86; a++)
             {
                 paa.Add(0, "", "", a, "");
             }
             XmlSerializer mySerializerpr = new XmlSerializer(typeof(PAnswers));
             StringWriter myWriterpr = new StringWriter();
             mySerializerpr.Serialize(myWriterpr, paa);
             _human = _fe.humans.First(h => h.idh == _humanid);
            PTestReport par = new PTestReport(_human, testresult.Createtestresult(0, _humanid, DateTime.Now, (int)EnumPTests.Prognoz, myWriterpr.ToString(), "manual"), _ge, _fe, true);
             for (int i = 0; i < par.ListScales.Count(); i++)
             {
                 ScaleControl sc = new ScaleControl();
                 this.flp_parent.Controls.Add(sc);
                 sc.ControlScale = par.ListScales[i];
             }
             break;
                case (int)EnumPTests.Addictive:
             AAnswers aaa = new AAnswers();
             for (int a = 0; a < 30; a++)
             {
                 aaa.Add(0, "", "", a, "");
             }
             XmlSerializer mySerializeraa = new XmlSerializer(typeof(AAnswers));
             StringWriter myWriteraa = new StringWriter();
             mySerializeraa.Serialize(myWriteraa, aaa);
             _human = _fe.humans.First(h => h.idh == _humanid);
            ATestReport aar = new ATestReport(_human, testresult.Createtestresult(0, _humanid, DateTime.Now, (int)EnumPTests.Addictive, myWriteraa.ToString(), "manual"), _ge, _fe, true);
             for (int i = 0; i < aar.ListScales.Count(); i++)
             {
                 ScaleControl sc = new ScaleControl();
                 this.flp_parent.Controls.Add(sc);
                 sc.ControlScale = aar.ListScales[i];
             }
             break;
                case (int)EnumPTests.NPNA:
             NPNAnswers npn = new NPNAnswers();
             for (int a = 0; a < 276; a++)
             {
                 npn.Add(0, "", "", a, "");
             }
             XmlSerializer mySerializernpn = new XmlSerializer(typeof(NPNAnswers));
             StringWriter myWriternpn = new StringWriter();
             mySerializernpn.Serialize(myWriternpn, npn);
             _human = _fe.humans.First(h => h.idh == _humanid);
             NPNTestReport npnr = new NPNTestReport(_human, testresult.Createtestresult(0, _humanid, DateTime.Now, (int)EnumPTests.NPNA, myWriternpn.ToString(), "manual"), _ge, _fe, true);
             for (int i = 0; i < npnr.ListScales.Count(); i++)
             {
                 ScaleControl sc = new ScaleControl();
                 this.flp_parent.Controls.Add(sc);
                 sc.ControlScale = npnr.ListScales[i];
             }
             break;
                case (int)EnumPTests.Leongard:
             LAnswers lpn = new LAnswers();
             for (int a = 0; a < 88; a++)
             {
                 lpn.Add(0, "", "", a, "");
             }
             XmlSerializer mySerializerlpn = new XmlSerializer(typeof(LAnswers));
             StringWriter myWriterlpn = new StringWriter();
             mySerializerlpn.Serialize(myWriterlpn, lpn);
             _human = _fe.humans.First(h => h.idh == _humanid);
             LTestReport lpnr = new LTestReport(_human, testresult.Createtestresult(0, _humanid, DateTime.Now, (int)EnumPTests.Leongard, myWriterlpn.ToString(), "manual"), _ge, _fe, true);
             for (int i = 0; i < lpnr.ListScales.Count(); i++)
             {
                 ScaleControl sc = new ScaleControl();
                 this.flp_parent.Controls.Add(sc);
                 sc.ControlScale =lpnr.ListScales[i];
             }
             break;
     }
 }