public JourneyViewModel BuildGender(JourneyViewModel model) { //if (HttpContext.Current.Session != null) // SessionWrapper.NHSUserGuid = Guid.NewGuid().ToString(); return model; }
public bool Equals(JourneyViewModel x, JourneyViewModel y) { //a lot of these checks can be pulled out into their respective types if (x == null && y == null) { return(true); } if (x == null || y == null) { return(false); } if (ComparePathwayNo && x.PathwayNo != y.PathwayNo) { return(false); } if (CompareAge && !AgeEquals(x.UserInfo, y.UserInfo)) { return(false); } if (CompareSex && !SexEquals(x.UserInfo, y.UserInfo)) { return(false); } if ((!CompareQuestionNos && !CompareAnswers)) { return(true); //we're done } return(JourneysEquals(x.Journey, y.Journey)); }
public PageResultViewModel(JourneyViewModel journeyViewModel) : base(journeyViewModel) { if (isNHSUKStyle()) { _viewName = "../Question/Custom/NHSUKPage"; } _viewName = "../Question/Page"; }
public async Task<ActionResult> JustToBeSafeFirst(JourneyViewModel model) { var newModel = new JustToBeSafeViewModel { PathwayId = model.PathwayId, UserInfo = model.UserInfo }; return await JustToBeSafeFirst(newModel); }
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 journeyViewModel = new JourneyViewModel { PathwayId = model.PathwayId, PathwayNo = model.PathwayNo, PathwayTitle = model.PathwayTitle, SymptomDiscriminator = model.SymptomDiscriminator, UserInfo = model.UserInfo, JourneyJson = JsonConvert.SerializeObject(journey), SelectedAnswer = JsonConvert.SerializeObject(selectedAnswer), }; _mappingEngine.Map(selectedQuestion, journeyViewModel); journeyViewModel = _mappingEngine.Map(selectedAnswer, journeyViewModel); return await _questionViewModelBuilder.BuildQuestion(journeyViewModel); } 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.Map(questions.First(), journeyViewModel); journeyViewModel = _mappingEngine.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), SymptomDiscriminator = selectedAnswer.SymptomDiscriminator ?? model.SymptomDiscriminator, Part = model.Part + 1, Questions = questions, QuestionsJson = questionsJson, UserInfo = model.UserInfo }; return new Tuple<string, JourneyViewModel>("JustToBeSafe", viewModel); }
public async Task<JourneyViewModel> BuildSlider(JourneyViewModel model) { var pathway = JsonConvert.DeserializeObject<Pathway>(await _restfulHelper.GetAsync(string.Format(_configuration.BusinessApiPathwayIdUrl, model.PathwayNo, model.UserInfo.Gender, model.UserInfo.Age))); model.PathwayId = pathway.Id; model.PathwayTitle = pathway.Title; model.PathwayNo = pathway.PathwayNo; model.State.Add("PATIENT_AGE", model.UserInfo.Age.ToString()); model.State.Add("PATIENT_GENDER", string.Format("\"{0}\"", model.UserInfo.Gender.First().ToString().ToUpper())); model.State.Add("PATIENT_PARTY", "1"); model.StateJson = JsonConvert.SerializeObject(model.State); return model; }
public async Task<ActionResult> JustToBeSafe(JourneyViewModel model) { var sliderModel = await _questionViewModelBuilder.BuildSlider(model); var justToBeSafeViewModel = new JustToBeSafeViewModel { PathwayId = sliderModel.PathwayId, PathwayNo = sliderModel.PathwayNo, PathwayTitle = sliderModel.PathwayTitle, UserInfo = sliderModel.UserInfo }; var next = await _justToBeSafeFirstViewModelBuilder.JustToBeSafeFirstBuilder(justToBeSafeViewModel); return View(next.Item1, next.Item2); }
public PageDataViewModel(PageType page, JourneyViewModel journey) { Page = page; Campaign = journey.Campaign; Source = journey.Source; Gender = journey.UserInfo.Demography.Gender; Age = journey.UserInfo.Demography.Age.ToString(); SearchString = journey.EntrySearchTerm; QuestionId = journey.Id; TxNumber = !string.IsNullOrEmpty(journey.QuestionNo) && journey.QuestionNo.ToLower().StartsWith("tx") ? journey.QuestionNo : null; StartingPathwayNo = journey.PathwayNo; StartingPathwayTitle = journey.PathwayTitle; DxCode = !string.IsNullOrEmpty(journey.Id) && journey.Id.ToLower().StartsWith("dx") ? journey.Id : null; }
public async Task<Tuple<string, JourneyViewModel>> BuildQuestion(JourneyViewModel model) { model.PreviousTitle = model.Title; model.PreviousStateJson = model.StateJson; var answer = JsonConvert.DeserializeObject<Answer>(model.SelectedAnswer); var journey = JsonConvert.DeserializeObject<Journey>(model.JourneyJson); journey.Steps.Add(new JourneyStep { QuestionNo = model.QuestionNo, QuestionTitle = model.Title, Answer = answer, QuestionId = model.Id }); model.JourneyJson = JsonConvert.SerializeObject(journey); model.State = JsonConvert.DeserializeObject<Dictionary<string, string>>(model.StateJson); var response = await _restfulHelper.GetAsync(string.Format(_configuration.BusinessApiNextNodeUrl, model.PathwayId, model.Id, answer.Title, HttpUtility.UrlEncode(JsonConvert.SerializeObject(model.State)))); model = _mappingEngine.Map(response, model); model = _mappingEngine.Map(answer, model); return await ActionSelection(model); }
public async Task<JourneyViewModel> BuildPreviousQuestion(JourneyViewModel model) { var journey = JsonConvert.DeserializeObject<Journey>(model.JourneyJson); var response = await _restfulHelper.GetAsync(string.Format(_configuration.BusinessApiQuestionByIdUrl, model.PathwayId, journey.Steps.Last().QuestionId)); if (journey.Steps.Count == 1) { model.PreviousTitle = string.Empty; journey.Steps.RemoveAt(journey.Steps.Count - 1); } else { journey.Steps.RemoveAt(journey.Steps.Count - 1); model.PreviousTitle = journey.Steps.Last().IsJustToBeSafe == false ? journey.Steps.Last().QuestionTitle : string.Empty; } model.StateJson = model.PreviousStateJson; model.JourneyJson = JsonConvert.SerializeObject(journey); model.State = JsonConvert.DeserializeObject<Dictionary<string, string>>(model.StateJson); return _mappingEngine.Map(response, model); }
public RegisterForSMSViewModel(JourneyViewModel journeyViewModel) : base(journeyViewModel) { }
public PageResultViewModel(JourneyViewModel journeyViewModel, string viewName) : base(journeyViewModel) { _viewName = viewName; }
public QuestionResultViewModel(JourneyViewModel journeyViewModel) : base(journeyViewModel) { }
public async Task<Tuple<string, JourneyViewModel>> ActionSelection(JourneyViewModel model) { var nonOutcome = new[] { "Dx011", "Dx012", "Dx013", "Dx016", }; if (nonOutcome.Contains(model.Id)) { var newModel = _mappingEngine.Map<OutcomeViewModel>(model); return new Tuple<string, JourneyViewModel>("../Outcome/Emergency", await _outcomeViewModelBuilder.DispositionBuilder(newModel)); } switch (model.NodeType) { case NodeType.Outcome: { var newModel = _mappingEngine.Map<OutcomeViewModel>(model); newModel.CareAdviceMarkers = model.State.Keys.Where(key => key.StartsWith("Cx")); var disposition2 = new[] { "Dx02", "Dx25", "Dx75", "Dx30", "Dx03", "Dx16", "Dx94", "Dx09" }; return disposition2.Contains(model.Id) ? new Tuple<string, JourneyViewModel>("../Outcome/Disposition2", await _outcomeViewModelBuilder.DispositionBuilder(newModel)) : new Tuple<string, JourneyViewModel>("../Outcome/Disposition", await _outcomeViewModelBuilder.DispositionBuilder(newModel)); } case NodeType.Pathway: { var pathway = JsonConvert.DeserializeObject<Pathway>(await _restfulHelper.GetAsync(string.Format(_configuration.BusinessApiPathwayUrl, model.Id))); var newModel = new JustToBeSafeViewModel { PathwayId = pathway.Id, PathwayNo = pathway.PathwayNo, PathwayTitle = pathway.Title, UserInfo = model.UserInfo, JourneyJson = model.JourneyJson, SymptomDiscriminator = model.SymptomDiscriminator, }; return await _justToBeSafeFirstViewModelBuilder.JustToBeSafeFirstBuilder(newModel); //TODO delete return new Tuple<string, JourneyViewModel>("../JustToBeSafe/JustToBeSafe", await _justToBeSafeFirstViewModelBuilder.JustToBeSafeFirstBuilder(newModel)); } case NodeType.Question: default: return new Tuple<string, JourneyViewModel>("../Question/Question", model); } }
protected JourneyResultViewModel(JourneyViewModel journeyViewModel) { JourneyModel = journeyViewModel; }
public async Task<ActionResult> Question(JourneyViewModel model) { ModelState.Clear(); var next = await _questionViewModelBuilder.BuildQuestion(model); return View(next.Item1, next.Item2); }
public async Task<ActionResult> PreviousQuestion(JourneyViewModel model) { ModelState.Clear(); return View("Question", await _questionViewModelBuilder.BuildPreviousQuestion(model)); }
public async Task<ActionResult> Slider(JourneyViewModel model) { ModelState.Clear(); var sliderModel = await _questionViewModelBuilder.BuildSlider(model); return View("Slider", sliderModel); }
public CareAdviceResultViewModel(JourneyViewModel journeyViewModel) : base(journeyViewModel) { }
public PathwaySelectionJumpResultViewModel(JourneyViewModel journeyViewModel) : base(journeyViewModel) { }
public ActionResult Gender(JourneyViewModel model) { return View(_questionViewModelBuilder.BuildGender(model)); }
public DeadEndJumpResultViewModel(JourneyViewModel journeyViewModel) : base(journeyViewModel) { }
public int GetHashCode(JourneyViewModel obj) { throw new NotImplementedException(); }
public NodeNotFoundViewModel(JourneyViewModel journeyViewModel) : base(journeyViewModel) { }
public VerifyForSMSViewModel(JourneyViewModel journeyViewModel) : base(journeyViewModel) { }
public SearchJumpViewModel(JourneyViewModel journeyViewModel) : base(journeyViewModel) { }