示例#1
0
        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);
        }
示例#2
0
        //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);
                }
            }
        }