public async Task <bool> Post([FromBody] RegionHistoryItem answer) { User user = await GetCurrentUserAsync(); answer.UserID = user.Id; answer.AnsweredOn = DateTime.Now; questionManager.AnswerQuestion(answer); return(true); }
//private List<RegionQuestion> GetAllQuestionsForPoolItem(int poolItemID, int userID) //{ // int answerCount = Configuration.GetValue<int>("SufficientAnswerCount"); // List<RegionQuestionAnswer> answers = RegionQuestionRepository.Instance.GetQuestionAnswersForPoolItem(poolItemID); // questions. //} public void AnswerQuestion(RegionHistoryItem answer) { RegionQuestion question = Repository.LoadWith(q => q.PoolItem).SelectByKey(answer.RegionQuestionID); if (question.PoolItem.Finished) { return; } RegionHistoryRepository.Instance.Insert(answer); if (answer.Answer == RegionAnswer.Yes) { RegionPoolRepository.Instance.MarkFinished(question.RegionPoolItemID); } else { List <RegionQuestion> questions = RegionQuestionRepository.Instance.GetAllForPoolItem(question.RegionPoolItemID); List <RegionQuestionAnswer> answers = RegionQuestionRepository.Instance.GetQuestionAnswersForPoolItem(question.RegionPoolItemID); List <RegionQuestion> unanswered = questions.Where(q => answers.Where(a => a.RegionQuestionID == q.ID).Count() == 0).ToList(); if (unanswered.Count == 0) { RegionPoolRepository.Instance.MarkFinished(question.RegionPoolItemID); } } }