Beispiel #1
0
        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));
            }
        }