コード例 #1
0
        public async Task <ActionResult <SessionQuestionDTO> > PostSessionQuestion(SessionQuestionDTO SessionQuestionDTO)
        {
            var SessionQuestion = CreateFromDTO(SessionQuestionDTO);

            _context.SessionQuestion.Add(SessionQuestion);
            await _context.SaveChangesAsync();

            //return CreatedAtAction("GetSessionQuestion", new { id = SessionQuestion.Id }, SessionQuestion);
            return(CreatedAtAction(nameof(GetSessionQuestion), new { id = SessionQuestion.Id }, SessionQuestionToDTO(SessionQuestion)));
        }
コード例 #2
0
        private static SessionQuestion CreateFromDTO(SessionQuestionDTO SessionQuestionDTO)
        {
            var SessionQuestion = new SessionQuestion
            {
                QuestionId    = SessionQuestionDTO.QuestionId,
                ResultTypeId  = SessionQuestionDTO.ResultTypeId,
                TestSessionId = SessionQuestionDTO.TestSessionId
            };


            return(SessionQuestion);
        }
コード例 #3
0
        public async Task <ActionResult <List <SessionQuestionDTO> > > GetSessionQuestion(long sessionId, string includeAnswered = "false")
        {
            var SessionQuestions = await(_context.SessionQuestion
                                         .Include(q => q.Question)
                                         .ThenInclude(ans => ans.Answers)
                                         .Include(rt => rt.ResultType)
                                         .Where(sq => sq.TestSessionId == sessionId)
                                         .ToListAsync <SessionQuestion>());

            if (SessionQuestions.Count == 0)
            {
                return(NotFound());
            }
            List <SessionQuestionDTO> sqList = new List <SessionQuestionDTO>();

            if (includeAnswered.Equals("true"))
            {
                foreach (SessionQuestion sq in SessionQuestions)
                {
                    sqList.Add(SessionQuestionToDTO(sq));
                }
            }
            else
            {
                foreach (SessionQuestion sq in SessionQuestions)
                {
                    if (sq.ResultType.ResultTypeDescription.Equals("Unanswered"))
                    {
                        sqList.Add(SessionQuestionToDTO(sq));
                    }
                }
            }
            int n = sqList.Count;

            if (n == 0)
            {
                await ensureClosedSession(sessionId, _context);

                return(sqList);
            }
            Random rng = new Random();

            while (n > 1)
            {
                n--;
                int k = rng.Next(n + 1);
                SessionQuestionDTO value = sqList[k];
                sqList[k] = sqList[n];
                sqList[n] = value;
            }
            return(sqList);
        }
コード例 #4
0
        private static SessionQuestion UpdatePutableFields(SessionQuestion SessionQuestion, SessionQuestionDTO SessionQuestionDTO)
        {
            SessionQuestion.QuestionId    = SessionQuestionDTO.QuestionId;
            SessionQuestion.ResultTypeId  = SessionQuestionDTO.ResultTypeId;
            SessionQuestion.TestSessionId = SessionQuestionDTO.TestSessionId;

            return(SessionQuestion);
        }