public async Task <ActionResult> JustToBeSafeFirst(JustToBeSafeViewModel model)
        {
            ModelState.Clear();
            var viewData = await _justToBeSafeFirstViewModelBuilder.JustToBeSafeFirstBuilder(model).ConfigureAwait(false);

            return(View(viewData.Item1, viewData.Item2));
        }
        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 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));
            }
        }
        public async Task <ActionResult> JustToBeSafeFirst(JustToBeSafeViewModel model)
        {
            var viewData = await _justToBeSafeFirstViewModelBuilder.JustToBeSafeFirstBuilder(model);

            return(View(viewData.Item1, viewData.Item2));
        }