Example #1
0
        public Profile CreateProfile(Guid resultId)
        {
            using (var resultRepo = new BaseRepository<Result>())
            {
                var result = resultRepo.GetAllItems.FirstOrDefault(x => x.Id == resultId);
                if (result == null)
                {
                    throw new ResultDoesNotExistException();
                }

                // Return profile if exists
                if (result.Profile != null)
                {
                    return result.Profile;
                }

                // Conver Data base data to Shell data
                var user = _resultRepository.GetUserByResult(resultId);
                var test = _resultRepository.GetTestByResult(resultId);
                var resultItems = _resultRepository.GetResultItemsByResult(resultId);
                var shellResult = _resultRepository.GetShellResultByResult(resultId);

                var resultConverter = new ResultConverter(user, test, resultItems);
                String shAnswers = resultConverter.FormAnswers();

                //var needProfile = ResultInterpretator.GetProfile(resultConverter);

                /*
                 * Form Profile string from DLL
                 */

                //String profileStr = @"<p>КОММУНИКАТИВНАЯ СФЕРА</p><p>Преимущественное открытое, дружеское общение с окружающими, навыки общения развиты достаточно. Стремление к активности, доминированию среди сверстников. Настойчивость в достижении поставленной цели. Уверенность в своей правоте. В значимых для себя ситуациях возможно проявление упрямства. Стремление к популярности в окружении. Достаточная высокая самоуверенность.</p><p>ЭМОЦИОНАЛЬНО-ВОЛЕВАЯ СФЕРА</p><p>Воображение недостаточно развито, мышление в основном конкретное, возможны трудности в ситуациях требующих абстрактного мышления. Возможны проявления капризности, непостоянства в значимых для себя ситуациях. Стремление уклониться от трудностей. Недостаточное постоянство в отношениях и интересах. Действия могут опережать их продуманность. Наивность, затруднения в планировании своего поведения в сочетании со стремлением уклониться от повседневных проблем и трудностей создают картину психического инфантилизма. Зависимость от сверстников, поспешность в решениях. Возможна излишняя сентиментальность. Некоторое сужение поля восприятия. Уверенность в правильности своих действий, снижение процессов рефлексии, ослабление процессов целеполагания, трудности в формировании мотивации обучения. Неудовлетворенность своим положением в группе сверстников, сочетаясь с ощущением давления со стороны семейного круга создает предиспозицию для отклонений в поведении.</p>";
                String profileStr = @"<p>Идет интерпретация</p>";

                //==============================

                //Create Folder and txt info file
                var directoryName = user.Id + "_" + test.CodeName + "_" + result.TestDate.ToString("dd.MM.yyyy_HH.mm.ss");
                var directory = Constraints.KInterpretationDirectoryPath + directoryName;
                try
                {
                    // Determine whether the directory not exists.
                    if (!Directory.Exists(directory))
                    {
                        // Try to create the directory.
                        Directory.CreateDirectory(directory);
                    }
                }
                catch (Exception)
                {
                    throw new DirectoryNotFoundException();
                }

                try
                {
                    // Create txt file info
                    var fileName = @"\info.txt";
                    var fileInfo = new FileInfo(directory + fileName);

                    if (!fileInfo.Exists)
                    {
                        //Create a file to write to.
                        using (var streamWriter = fileInfo.CreateText())
                        {
                            streamWriter.WriteLine("===========================");
                            streamWriter.WriteLine("ResultId: " + resultId);
                            streamWriter.WriteLine("===========================");
                            streamWriter.Write(user.ToString());
                            streamWriter.WriteLine();
                            streamWriter.WriteLine("===========================");
                            streamWriter.Write(test.ToString());
                            streamWriter.WriteLine("===========================");
                            streamWriter.WriteLine(result.TestDate.ToString());
                            streamWriter.WriteLine("===========================");

                            //var shellResult = resultRepo.Context.ShellResults.FirstOrDefault(x => x.ResultId == resultId);

                            //if (shellResult == null)
                            //{
                            //    throw new ResultDoesNotExistException();
                            //}
                            streamWriter.WriteLine("Method_ID in consul: " + shellResult.MethodId);
                            streamWriter.WriteLine("===========================");
                            streamWriter.WriteLine(shellResult.Answer);
                            streamWriter.WriteLine("===========================");
                            streamWriter.WriteLine(shellResult.Answer.Replace(" ",null));

                            streamWriter.Close();
                        }
                    }
                }
                catch (Exception)
                {
                    throw new FileWriteException();
                }

                // Create OldUser and Result in ConsulDB
                //WriteUserResultInConsul(result, OldUser, test, shellResult);

                // Create profile in DB
                var profile = new Profile {
                    Body = profileStr,
                    Id = resultId,
                    ImageDirectory = directoryName,

                };
                result.Profile = profile;

                if (resultRepo.Update(result).Status)
                {
                    return profile;
                }
                throw new UpdateException();
            }
        }
Example #2
0
        public Object GenerateProfile(Guid resultId)
        {
            using (var resultRepo = new BaseRepository<Result>())
            {
                var result = resultRepo.GetAllItems.FirstOrDefault(x => x.Id == resultId);
                if (result == null)
                {
                    throw new ResultDoesNotExistException();
                }

                var user = _resultRepository.GetUserByResult(resultId);
                var test = _resultRepository.GetTestByResult(resultId);
                var resultItems = _resultRepository.GetResultItemsByResult(resultId);
                var shellResult = _resultRepository.GetShellResultByResult(resultId);

                #region not need now

                var profileFounded = resultRepo.Context.Profiles.FirstOrDefault(x => x.Id == resultId);
                if (profileFounded == null)
                {
                    //String profileStr = @"<p>КОММУНИКАТИВНАЯ СФЕРА</p><p>Преимущественное открытое, дружеское общение с окружающими, навыки общения развиты достаточно. Стремление к активности, доминированию среди сверстников. Настойчивость в достижении поставленной цели. Уверенность в своей правоте. В значимых для себя ситуациях возможно проявление упрямства. Стремление к популярности в окружении. Достаточная высокая самоуверенность.</p><p>ЭМОЦИОНАЛЬНО-ВОЛЕВАЯ СФЕРА</p><p>Воображение недостаточно развито, мышление в основном конкретное, возможны трудности в ситуациях требующих абстрактного мышления. Возможны проявления капризности, непостоянства в значимых для себя ситуациях. Стремление уклониться от трудностей. Недостаточное постоянство в отношениях и интересах. Действия могут опережать их продуманность. Наивность, затруднения в планировании своего поведения в сочетании со стремлением уклониться от повседневных проблем и трудностей создают картину психического инфантилизма. Зависимость от сверстников, поспешность в решениях. Возможна излишняя сентиментальность. Некоторое сужение поля восприятия. Уверенность в правильности своих действий, снижение процессов рефлексии, ослабление процессов целеполагания, трудности в формировании мотивации обучения. Неудовлетворенность своим положением в группе сверстников, сочетаясь с ощущением давления со стороны семейного круга создает предиспозицию для отклонений в поведении.</p>";
                    String profileStr = @"<p>Идет интерпретация</p>";

                    //==============================

                    //Create Folder and txt info file
                    var directoryName = user.Id + "_" + test.CodeName + "_" + result.TestDate.ToString("dd.MM.yyyy_HH.mm.ss");
                    var directory = Constraints.KInterpretationDirectoryPath + directoryName;
                    try
                    {
                        // Determine whether the directory not exists.
                        if (!Directory.Exists(directory))
                        {
                            // Try to create the directory.
                            Directory.CreateDirectory(directory);
                        }
                    }
                    catch (Exception)
                    {
                        throw new DirectoryNotFoundException();
                    }

                    try
                    {
                        // Create txt file info
                        var fileName = @"\info.txt";
                        var fileInfo = new FileInfo(directory + fileName);

                        if (!fileInfo.Exists)
                        {
                            //Create a file to write to.
                            using (var streamWriter = fileInfo.CreateText())
                            {
                                streamWriter.WriteLine("===========================");
                                streamWriter.WriteLine("ResultId: " + resultId);
                                streamWriter.WriteLine("===========================");
                                streamWriter.Write(user.ToString());
                                streamWriter.WriteLine();
                                streamWriter.WriteLine("===========================");
                                streamWriter.Write(test.ToString());
                                streamWriter.WriteLine("===========================");
                                streamWriter.WriteLine(result.TestDate.ToString());
                                streamWriter.WriteLine("===========================");

                                //var shellResult = resultRepo.Context.ShellResults.FirstOrDefault(x => x.ResultId == resultId);

                                //if (shellResult == null)
                                //{
                                //    throw new ResultDoesNotExistException();
                                //}
                                streamWriter.WriteLine("Method_ID in consul: " + shellResult.MethodId);
                                streamWriter.WriteLine("===========================");
                                streamWriter.WriteLine(shellResult.Answer);
                                streamWriter.WriteLine("===========================");
                                streamWriter.WriteLine(shellResult.Answer.Replace(" ", null));

                                streamWriter.Close();
                            }
                        }
                    }
                    catch (Exception)
                    {
                        throw new FileWriteException();
                    }

                    // Create OldUser and Result in ConsulDB
                    //WriteUserResultInConsul(result, OldUser, test, shellResult);

                    // Create profile in DB
                    var profile = new Profile
                    {
                        Body = profileStr,
                        Id = resultId,
                        ImageDirectory = directoryName,

                    };
                    result.Profile = profile;

                    if (!resultRepo.Update(result).Status)
                    {
                        throw new UpdateException();
                    }
                }

                #endregion

                // Form profile
                Object body = new object();
                switch (test.CodeName)
                {
                    case Constraints.KKettel16ACodeName:
                    case Constraints.KKettel16BCodeName:
                        KettelMethod kettel = new KettelMethod();
                        kettel.CreateProfile();
                        KettelOutput kettelOutput = new KettelOutput();
                        body = kettelOutput.CreateOutputJson(kettel);
                        break;

                    case Constraints.KSelfAppraisalCodeName:
                        SelfAppraisalMethod selfAppraisal = new SelfAppraisalMethod(shellResult.Answer);
                        selfAppraisal.CreateProfile();
                        SelfAppraisalOutput selfAppraisalOutput = new SelfAppraisalOutput();
                        body = selfAppraisalOutput.CreateOutputJson(selfAppraisal);
                        break;

                    case Constraints.KSondiCodeName:
                        // Convert to 1 2 3 4 5 6 7 8 ... answer str
                        ResultConverter converter = new ResultConverter(user, test, resultItems);
                        var answers = converter.FormAnswers(false);
                        SondiMethod sondi = new SondiMethod(answers);
                        sondi.CreateProfile();
                        sondi.CreateFormulaAffection();
                        sondi.CreateDMFactor();
                        sondi.CreateSocialityFactor();
                        SondiOutput sondiOutput = new SondiOutput();
                        body = sondiOutput.CreateOutputJson(sondi);
                        break;

                    case Constraints.KKotCodeName:
                        KotMethod kot = new KotMethod(shellResult.Answer);
                        kot.CreateProfile();
                        KotOutput kotOutput = new KotOutput();
                        body = kotOutput.CreateOutputJson(kot);
                        break;
                    default:
                        break;

                    case Constraints.KShutzCodeName:
                        ShutzMethod shutz = new ShutzMethod(shellResult.Answer);
                        shutz.CreateProfile();
                        ShutzOutput shutzOutput = new ShutzOutput();
                        body = shutzOutput.CreateOutputJson(shutz);
                        break;

                    case Constraints.KMmpiCodeName:
                        MmpiMethod mmpi = new MmpiMethod(shellResult.Answer, false);
                        mmpi.CreateProfile();
                        body = mmpi.CutProfileStr;
                        break;

                }

                GeneralProfile generalProfile = new GeneralProfile
                                          {
                                              Id = resultId,
                                              PersonId = user.Id,
                                              TestId = test.Id,
                                              TestDate = result.TestDate,
                                              Body = body
                                          };
                return generalProfile;

            }
            return null;
        }