private void LogAudit(JourneyViewModel model, string pageName) { var auditEntry = model.ToAuditEntry(); auditEntry.Page = pageName; _auditLogger.Log(auditEntry); }
public void Collect_QuestionWithAnswers_with_symptonDiscriminator_returns_symptomDiscriminator_Test() { var testViewModel = new JourneyViewModel(); var questionWithAnswers = new QuestionWithAnswers() { Answered = new Answer() { Order = 0, Title = "Yes", SymptomDiscriminator = TEST_SD_CODE }, Answers = new List <Answer>() { new Answer() { Order = 0, Title = "Yes" }, new Answer() { Order = 1, Title = "No" } }, Question = new Question() { Order = "0", Title = "Test Question" } }; _symptomDiscriminatorCollector.Collect(questionWithAnswers, testViewModel); Assert.AreEqual(TEST_SD_CODE, testViewModel.SymptomDiscriminatorCode); }
public async Task LogEventData(JourneyViewModel model, string eventData) { var audit = model.ToAuditEntry(); audit.EventData = eventData; await Log(audit); }
public SendSmsOutcomeViewModel SendSmsDetailsBuilder(JourneyViewModel model) { //TODO: how to data drive this better? var smsSendModel = _mappingEngine.Mapper.Map <SendSmsOutcomeViewModel>(model); smsSendModel.MobileNumber = model.Journey.GetStepInputValue <string>(QuestionType.Telephone, "TX1111"); // If it exists in the state, the age comes from the 111 original journey var age = -1; if (model.State.ContainsKey("PATIENT_AGE")) { age = int.Parse(model.State["PATIENT_AGE"]); } smsSendModel.Age = age >= 0 ? age : model.Journey.GetStepInputValue <int>(QuestionType.Integer, "TX1112"); // If it exists in the state, the symptoms started days ago comes from the 111 original journey unless >10 var days = -1; if (model.State.ContainsKey("SYMPTOMS_STARTED_DAYS_AGO")) { days = int.Parse(model.State["SYMPTOMS_STARTED_DAYS_AGO"]); } days = days > 10 ? model.Journey.GetStepInputValue <int>(QuestionType.Date, "TX1113"): days; smsSendModel.SymptomsStartedDaysAgo = days >= 0 ? days : model.Journey.GetStepInputValue <int>(QuestionType.Date, "TX1113"); smsSendModel.LivesAlone = model.Journey.GetStepInputValue <bool>(QuestionType.Choice, "TX1114"); return(smsSendModel); }
public void Collect_duplicate_keyword_Test() { var testJourneyModel = new JourneyViewModel() { CollectedKeywords = new KeywordBag(new List <Keyword>() { new Keyword() { Value = "Test keyword" } }, new List <Keyword>() { new Keyword() { Value = "Test Excluded keyword" } }) }; var keywordsString = "Test keyword|AnotherTest keyword"; var excludeKeywordsString = "Test Excluded keyword|AnotherTest exclude keyword"; var testAnswer = new Answer() { Keywords = keywordsString, Title = "test", ExcludeKeywords = excludeKeywordsString }; var result = _testKeywordCollector.Collect(testAnswer, testJourneyModel); Assert.IsNotNull(result); Assert.True(result.CollectedKeywords.Keywords.Count() == 2); Assert.AreEqual("Test keyword", result.CollectedKeywords.Keywords[0].Value); Assert.AreEqual("AnotherTest keyword", result.CollectedKeywords.Keywords[1].Value); Assert.AreEqual("Test Excluded keyword", result.CollectedKeywords.ExcludeKeywords[0].Value); Assert.AreEqual("AnotherTest exclude keyword", result.CollectedKeywords.ExcludeKeywords[1].Value); }
public async Task <ActionResult> Question(JourneyViewModel model) { ModelState.Clear(); var next = await _questionViewModelBuilder.BuildQuestion(model); return(View(next.Item1, next.Item2)); }
public void Save(JourneyViewModel viewModel) { Journey journey; viewModel.IsNotified = false; if (viewModel.Id > 0) { journey = _databaseContext.Journeys .Include(j => j.User) .Include(j => j.Countries) .Include(j => j.Invoices) .Include(j => j.JourneyVehicles) .Single(j => j.Id == viewModel.Id); } else { journey = new Journey(); } _mapper.Map(viewModel, journey); UpdateUser(viewModel, journey); UpdateVehicles(viewModel, journey); if (journey.Id <= 0) { _databaseContext.Journeys.Add(journey); _notificationManager.Add(NotificationType.Information, "Trasa została dodana."); } else { _notificationManager.Add(NotificationType.Information, "Trasa została zmodyfikowana."); } }
public JourneyViewModel BuildGender(JourneyViewModel model) { //if (HttpContext.Current.Session != null) // SessionWrapper.NHSUserGuid = Guid.NewGuid().ToString(); return(model); }
public async Task <ActionResult> Slider(JourneyViewModel model) { ModelState.Clear(); var sliderModel = await _questionViewModelBuilder.BuildSlider(model); return(View("Slider", sliderModel)); }
private void AddDiscriminatorToModel(string symptomDisciminator, JourneyViewModel model) { if (!String.IsNullOrEmpty(symptomDisciminator)) { model.SymptomDiscriminatorCode = symptomDisciminator; } }
/// <summary> /// Convert from a <see cref="IJourneyDetailsType"/> to a <see cref="IJourneyViewModel"/>. /// </summary> /// <param name="input"><see cref="IJourneyDetailsType"/> to convert</param> /// <param name="firstExamples">first examples manager</param> /// <param name="parentNumber">parent unit id</param> /// <returns>converted <see cref="IJourneyViewModel"/></returns> public static IJourneyViewModel ToJourneyViewModel( IJourneyDetailsType input, FirstExampleManager firstExamples, string parentNumber = "") { string unitOne = input.Units.Count > 0 ? input.Units[0] : string.Empty; string unitTwo = input.Units.Count > 1 ? input.Units[1] : string.Empty; string unitThree = input.Units.Count > 2 ? input.Units[2] : string.Empty; string unitFour = input.Units.Count > 3 ? input.Units[3] : string.Empty; JourneyViewModel viewModel = new JourneyViewModel( firstExamples, parentNumber, input.JnyId.JnyNumber, input.From, input.To, input.Via, input.JnyId.Date, input.Distance, unitOne, unitTwo, unitThree, unitFour); viewModel.CalculateStates(); return(viewModel); }
public async Task <Tuple <string, JourneyViewModel> > JustToBeSafeFirstBuilder(JustToBeSafeViewModel model) { var questionsJson = await _restfulHelper.GetAsync(string.Format(_configuration.BusinessApiJustToBeSafePartOneUrl, model.PathwayId)); var questionsWithAnswers = JsonConvert.DeserializeObject <List <QuestionWithAnswers> >(questionsJson); if (!questionsWithAnswers.Any()) { var journeyViewModel = new JourneyViewModel { PathwayId = model.PathwayId, PathwayNo = model.PathwayNo, PathwayTitle = model.PathwayTitle, UserInfo = model.UserInfo, JourneyJson = model.JourneyJson, State = JsonConvert.DeserializeObject <Dictionary <string, string> >(model.StateJson) }; var question = JsonConvert.DeserializeObject <QuestionWithAnswers>(await _restfulHelper.GetAsync(string.Format(_configuration.BusinessApiFirstQuestionUrl, model.PathwayId, model.StateJson))); _mappingEngine.Map(question, journeyViewModel); return(new Tuple <string, JourneyViewModel>("../Question/Question", journeyViewModel)); } model.Part = 1; model.Questions = questionsWithAnswers; model.QuestionsJson = questionsJson; model.JourneyJson = string.IsNullOrEmpty(model.JourneyJson) ? JsonConvert.SerializeObject(new Journey()) : model.JourneyJson; return(new Tuple <string, JourneyViewModel>("../JustToBeSafe/JustToBeSafe", model)); }
private async Task <ActionResult> RedirectToFirstTriageQuestion(JourneyViewModel model) { var pathwayMetadata = await _restClientBusinessApi.ExecuteAsync <PathwayMetaData>( new RestRequest(_configuration.GetBusinessApiPathwayMetadataUrl(model.PathwayNo), Method.GET)).ConfigureAwait(false); var digitalTitle = pathwayMetadata.Data.DigitalTitle; var searchJourneyViewModel = new SearchJourneyViewModel() { SessionId = model.SessionId, PathwayNo = model.PathwayNo.ToUpper(), DigitalTitle = digitalTitle, CurrentPostcode = model.CurrentPostcode, UserInfo = model.UserInfo, FilterServices = model.FilterServices, Campaign = model.Campaign, Source = model.Source, ViaGuidedSelection = model.ViaGuidedSelection, StartParameter = model.StartParameter }; return(RedirectToAction("FirstQuestion", "JustToBeSafe", new RouteValueDictionary { { "pathwayNumber", searchJourneyViewModel.PathwayNo }, { "gender", searchJourneyViewModel.UserInfo.Demography.Gender }, { "age", searchJourneyViewModel.UserInfo.Demography.Age }, { "args", KeyValueEncryptor.EncryptedKeys(searchJourneyViewModel) } })); }
public JourneyViewModel UpdateJourney(JourneyViewModel model) { Data.Entity.Journey entityToUpdate = GetAndMap(model); Update(entityToUpdate); SaveChanges(); return(Mapper.Map <JourneyViewModel>(entityToUpdate)); }
public JourneyPage(JourneyViewModel j) { InitializeComponent(); BindingContext = j; InitRoute(); }
public SendSmsOutcomeViewModel SendSmsVerifyDetailsBuilder(JourneyViewModel model, string SelectedAnswer) { var smsSendModel = _mappingEngine.Mapper.Map <SendSmsOutcomeViewModel>(model); smsSendModel.Journey = model.Journey; smsSendModel.MobileNumber = model.Journey.GetStepInputValue <string>(QuestionType.Telephone, "TX1111"); smsSendModel.SelectedAnswer = SelectedAnswer; return(smsSendModel); }
public void Collect(QuestionWithAnswers quesionWithAnswers, JourneyViewModel exitingJourneyModel) { if (quesionWithAnswers.Answered == null) { return; } Collect(quesionWithAnswers.Answered, exitingJourneyModel); }
public async Task <ActionResult> Question(JourneyViewModel model) { ModelState.Clear(); var nextModel = await GetNextJourneyViewModel(model); var viewName = _viewRouter.GetViewName(nextModel, ControllerContext); return(View(viewName, nextModel)); }
public JourneyViewModel BuildPreviousQuestion(QuestionWithAnswers lastStep, JourneyViewModel model) { model.RemoveLastStep(); model.CollectedKeywords = _keywordCollector.CollectKeywordsFromPreviousQuestion(model.CollectedKeywords, model.Journey.Steps); return(_mappingEngine.Mapper.Map(lastStep, model)); }
public JourneyViewModel AddJourney(JourneyViewModel model) { model.TravelerObjectIdentifier = _userService.GetUserIdentifier(); var entity = Mapper.Map <Data.Entity.Journey>(model); Insert(entity); SaveChanges(); return(Mapper.Map <JourneyViewModel>(entity)); }
public async Task <Tuple <string, JourneyViewModel> > BuildNextAction(List <QuestionWithAnswers> questions, Journey journey, JustToBeSafeViewModel model, Answer selectedAnswer, QuestionWithAnswers selectedQuestion, string questionsJson) { if (!questions.Any()) { journey.Steps = journey.Steps.Where(step => step.QuestionId != model.SelectedQuestionId).ToList(); var questionViewModel = new QuestionViewModel { PathwayId = model.PathwayId, PathwayNo = model.PathwayNo, PathwayTitle = model.PathwayTitle, SymptomDiscriminatorCode = model.SymptomDiscriminatorCode, UserInfo = model.UserInfo, JourneyJson = JsonConvert.SerializeObject(journey), SelectedAnswer = JsonConvert.SerializeObject(selectedAnswer), }; _mappingEngine.Mapper.Map(selectedQuestion, questionViewModel); questionViewModel = _mappingEngine.Mapper.Map(selectedAnswer, questionViewModel); var nextNode = await GetNextNode(questionViewModel); return(new Tuple <string, JourneyViewModel>("TODO NOT USED?", await _journeyViewModelBuilder.Build(questionViewModel, nextNode))); } if (questions.Count() == 1) { var journeyViewModel = new JourneyViewModel { PathwayId = model.PathwayId, PathwayNo = model.PathwayNo, PathwayTitle = model.PathwayTitle, UserInfo = model.UserInfo, JourneyJson = JsonConvert.SerializeObject(journey), }; _mappingEngine.Mapper.Map(questions.First(), journeyViewModel); journeyViewModel = _mappingEngine.Mapper.Map(selectedAnswer, journeyViewModel); return(new Tuple <string, JourneyViewModel>("../Question/Question", journeyViewModel)); } var viewModel = new JustToBeSafeViewModel { PathwayId = model.PathwayId, PathwayNo = model.PathwayNo, PathwayTitle = model.PathwayTitle, JourneyJson = JsonConvert.SerializeObject(journey), SymptomDiscriminatorCode = selectedAnswer.SymptomDiscriminator ?? model.SymptomDiscriminatorCode, Part = model.Part + 1, Questions = questions, QuestionsJson = questionsJson, UserInfo = model.UserInfo }; return(new Tuple <string, JourneyViewModel>("JustToBeSafe", viewModel)); }
public void Collect_Answer_with_symptonDiscriminator_returns_symptomDiscriminator_Test() { var testViewModel = new JourneyViewModel(); var answer = new Answer() { Order = 0, Title = "Yes", SymptomDiscriminator = TEST_SD_CODE }; _symptomDiscriminatorCollector.Collect(answer, testViewModel); Assert.AreEqual(TEST_SD_CODE, testViewModel.SymptomDiscriminatorCode); }
public void Collect_Answer_with_no_symptonDiscriminator_returns_empty_symptomDiscriminator_Test() { var testViewModel = new JourneyViewModel(); var answer = new Answer() { Order = 0, Title = "Yes" }; _symptomDiscriminatorCollector.Collect(answer, testViewModel); Assert.AreEqual(String.Empty, testViewModel.SymptomDiscriminatorCode); }