コード例 #1
0
        public async Task <string> SaveStepDetails(StepAnswer stepAnswer)
        {
            using (var client = new HttpClient())
            {
                try
                {
                    var stringContent = new StringContent(JsonConvert.SerializeObject(stepAnswer), Encoding.UTF8, "application/json");
                    var response      = await client.PostAsync($"{configuration.UnderstandMyselfEndpoint}/savestepanswer", stringContent);

                    var result = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        return(JsonConvert.DeserializeObject <Dictionary <string, string> >(result).FirstOrDefault().Value);
                    }
                    else
                    {
                        return($"{response} - Understand myself service is unavailable at the moment. Try again later.");
                    }
                }
                catch (Exception ex)
                {
                    return($"{ex} - Understand myself is unavailable at the moment. Try again later.");
                    //throw new Exception($"Failed to get skills from {configuration.SkillsEndpoint}/{id}", ex);
                }
            }
        }
コード例 #2
0
        public async Task <IActionResult> Index(StepAnswer stepAnswer)
        {
            var result = await understandMySelfService.SaveStepDetails(stepAnswer);

            if (result.IndexOf("results", StringComparison.InvariantCultureIgnoreCase) > -1)
            {
                return(new RedirectResult("/ums/result"));
            }
            var nextstep = stepAnswer.QuestionId + 1;

            return(new RedirectResult($"/ums/{nextstep}"));
        }
        public async Task SaveAnswerAsync(StepAnswer savedAnswer)
        {
            var result = await stepAnswerCollection.FindAsync(doc => doc.QuestionId.Equals(savedAnswer.QuestionId) && doc.SessionId.Equals(savedAnswer.SessionId)).Result.FirstOrDefaultAsync();

            if (result == null)
            {
                await stepAnswerCollection.InsertOneAsync(savedAnswer);
            }
            else
            {
                var filter = Builders <StepAnswer> .Filter.Where(sa => sa.QuestionId.Equals(savedAnswer.QuestionId) && sa.SessionId.Equals(savedAnswer.SessionId));

                var updateAnswers = Builders <StepAnswer> .Update.Set(sa => sa.SavedAnswers, savedAnswer.SavedAnswers);

                await stepAnswerCollection.UpdateOneAsync(filter, updateAnswers);
            }
        }
コード例 #4
0
        public async Task <IDictionary <string, string> > SaveStepAnswersAsync([FromBody] StepAnswer stepAnswer)
        {
            var result = new ConcurrentDictionary <string, string>();

            if (stepAnswer == null)
            {
                result.TryAdd("nextstep", "incorrect input supplied");
                return(result);
            }

            await understandMySelfRepository.SaveAnswerAsync(stepAnswer);

            if (stepAnswer.QuestionId < 3)
            {
                var nextstep = stepAnswer.QuestionId + 1;
                result.TryAdd("nextstep", $"api/step/{nextstep}");
            }
            else
            {
                result.TryAdd("nextstep", "api/step/results");
            }

            return(result);
        }