public async Task <ActionResult> EdCallbackAcceptance(PersonalDetailViewModel model, string selectedAnswer) { model.HasAcceptedCallbackOffer = selectedAnswer.ToLower() == "yes"; if (model.HasAcceptedCallbackOffer.Value) { AutoSelectFirstItkService(model); if (model.SelectedService != null) { var personalDetailsController = DependencyResolver.Current.GetService <PersonalDetailsController>(); personalDetailsController.ControllerContext = new ControllerContext(ControllerContext.RequestContext, personalDetailsController); return(await personalDetailsController.PersonalDetails(Mapper.Map <PersonalDetailViewModel>(model)) .ConfigureAwait(false)); } } var outcome = await _outcomeViewModelBuilder.DispositionBuilder(model).ConfigureAwait(false); var viewRouter = _viewRouter.Build(outcome, ControllerContext); return(View(viewRouter.ViewName, outcome)); }
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)); } }