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(); } }
public void SaveResultsForImport(Result result, List<WebConcreteQuestion> webResultItems = null) { using (var shellResultRepository = new BaseRepository<ShellResult>()) { var user = GetUserByResult(result.Id); var test = GetTestByResult(result.Id); var resultItems = GetResultItemsByResult(result.Id); var resultConverterItem = new ResultConverter(user, test, resultItems); resultConverterItem.SetTestSettingsByDefault(); // Kot test //if (webResultItems != null && String.Equals(test.CodeName, Constraints.KKotCodeName)) //{ // resultConverterItem.FormKotAnswers(webResultItems); //} //else //{ // resultConverterItem.FormAnswers(); //} var shellResult = new ShellResult { ResultId = result.Id, TestDate = result.TestDate, UserId = user.Id, MethodId = resultConverterItem.TestSettings.MethodId }; if (webResultItems != null && String.Equals(test.CodeName, Constraints.KKotCodeName)) { shellResult.Answer = resultConverterItem.FormKotAnswers(webResultItems); } else { shellResult.Answer = resultConverterItem.FormAnswers(); } if (!shellResultRepository.Create(shellResult).Status) { throw new CreateException(); } } }
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; }