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); } } }
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); } }
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); }