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))); }
private static SessionQuestion CreateFromDTO(SessionQuestionDTO SessionQuestionDTO) { var SessionQuestion = new SessionQuestion { QuestionId = SessionQuestionDTO.QuestionId, ResultTypeId = SessionQuestionDTO.ResultTypeId, TestSessionId = SessionQuestionDTO.TestSessionId }; return(SessionQuestion); }
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); }
private static SessionQuestion UpdatePutableFields(SessionQuestion SessionQuestion, SessionQuestionDTO SessionQuestionDTO) { SessionQuestion.QuestionId = SessionQuestionDTO.QuestionId; SessionQuestion.ResultTypeId = SessionQuestionDTO.ResultTypeId; SessionQuestion.TestSessionId = SessionQuestionDTO.TestSessionId; return(SessionQuestion); }