コード例 #1
0
        private async Task <JustToBeSafeViewModel> DoWorkPreviouslyDoneInQuestionBuilder(JustToBeSafeViewModel model)
        {
            var businessApiPathwayUrl = _configuration.GetBusinessApiPathwayUrl(model.PathwayId);
            var response = await _restfulHelper.GetAsync(businessApiPathwayUrl);

            var pathway = JsonConvert.DeserializeObject <Pathway>(response);

            if (pathway == null)
            {
                return(null);
            }

            var derivedAge = model.UserInfo.Demography.Age == -1 ? pathway.MinimumAgeInclusive : model.UserInfo.Demography.Age;
            var newModel   = new JustToBeSafeViewModel
            {
                PathwayId    = pathway.Id,
                PathwayNo    = pathway.PathwayNo,
                PathwayTitle = pathway.Title,
                DigitalTitle = string.IsNullOrEmpty(model.DigitalTitle) ? pathway.Title : model.DigitalTitle,
                UserInfo     = new UserInfo {
                    Demography = new AgeGenderViewModel {
                        Age = derivedAge, Gender = pathway.Gender
                    }
                },
                JourneyJson = model.JourneyJson,
                SymptomDiscriminatorCode = model.SymptomDiscriminatorCode,
                State          = JourneyViewModelStateBuilder.BuildState(pathway.Gender, derivedAge),
                SessionId      = model.SessionId,
                FilterServices = model.FilterServices
            };

            newModel.StateJson = JourneyViewModelStateBuilder.BuildStateJson(newModel.State);

            return(newModel);
        }
コード例 #2
0
        private async Task <JustToBeSafeViewModel> BuildIdentifiedModel(JustToBeSafeViewModel model)
        {
            var pathway = JsonConvert.DeserializeObject <Pathway>(await _restfulHelper.GetAsync(_configuration.GetBusinessApiPathwayIdUrl(model.PathwayNo, model.UserInfo.Demography.Gender, model.UserInfo.Demography.Age)));

            if (pathway == null)
            {
                return(null);
            }

            model.PathwayId         = pathway.Id;
            model.PathwayTitle      = pathway.Title;
            model.PathwayNo         = pathway.PathwayNo;
            model.State             = JourneyViewModelStateBuilder.BuildState(model.UserInfo.Demography.Gender, model.UserInfo.Demography.Age, model.State);
            model.StateJson         = JourneyViewModelStateBuilder.BuildStateJson(model.State);
            model.CollectedKeywords = new KeywordBag(_keywordCollector.ParseKeywords(pathway.Keywords, false).ToList(), _keywordCollector.ParseKeywords(pathway.ExcludeKeywords, false).ToList());
            return(model);
        }
コード例 #3
0
        private async Task <JustToBeSafeViewModel> DoWorkPreviouslyDoneInQuestionBuilder(JustToBeSafeViewModel model)
        {
            var businessApiPathwayUrl = _configuration.GetBusinessApiPathwayUrl(model.PathwayId);
            var response = await _restClient.ExecuteAsync <Pathway>(new JsonRestRequest(businessApiPathwayUrl, Method.GET));

            CheckResponse(response);

            if (response.Data == null)
            {
                return(null);
            }

            var pathway    = response.Data;
            var derivedAge = model.UserInfo.Demography.Age == -1 ? pathway.MinimumAgeInclusive : model.UserInfo.Demography.Age;
            var state      = !string.IsNullOrEmpty(model.StateJson)
                ? JsonConvert.DeserializeObject <Dictionary <string, string> >(model.StateJson)
                : new Dictionary <string, string>();

            var newModel = new JustToBeSafeViewModel
            {
                PathwayId         = pathway.Id,
                PathwayNo         = pathway.PathwayNo,
                PathwayTitle      = pathway.Title,
                PathwayTraumaType = pathway.TraumaType,
                DigitalTitle      = string.IsNullOrEmpty(model.DigitalTitle) ? pathway.Title : model.DigitalTitle,
                UserInfo          = new UserInfo {
                    Demography = new AgeGenderViewModel {
                        Age = derivedAge, Gender = pathway.Gender
                    }
                },
                JourneyJson = model.JourneyJson,
                SymptomDiscriminatorCode = model.SymptomDiscriminatorCode,
                State          = JourneyViewModelStateBuilder.BuildState(pathway.Gender, derivedAge, state),
                SessionId      = model.SessionId,
                Campaign       = model.Campaign,
                Source         = model.Source,
                FilterServices = model.FilterServices,
                StartParameter = model.StartParameter
            };

            newModel.StateJson = JourneyViewModelStateBuilder.BuildStateJson(newModel.State);

            return(newModel);
        }
コード例 #4
0
        private async Task <JustToBeSafeViewModel> BuildIdentifiedModel(JustToBeSafeViewModel model)
        {
            var response = await _restClient.ExecuteAsync <Pathway>(new JsonRestRequest(_configuration.GetBusinessApiPathwayIdUrl(model.PathwayNo, model.UserInfo.Demography.Gender, model.UserInfo.Demography.Age), Method.GET));

            CheckResponse(response);

            if (response.Data == null)
            {
                return(null);
            }

            var pathway = response.Data;

            model.PathwayId         = pathway.Id;
            model.PathwayTitle      = pathway.Title;
            model.PathwayNo         = pathway.PathwayNo;
            model.PathwayTraumaType = pathway.TraumaType;
            model.State             = JourneyViewModelStateBuilder.BuildState(model.UserInfo.Demography.Gender, model.UserInfo.Demography.Age, model.State);
            model.StateJson         = JourneyViewModelStateBuilder.BuildStateJson(model.State);
            model.CollectedKeywords = new KeywordBag(_keywordCollector.ParseKeywords(pathway.Keywords, false).ToList(), _keywordCollector.ParseKeywords(pathway.ExcludeKeywords, false).ToList());
            return(model);
        }