public static QuestionDTO AddQuestion(QuestionDTO question, List <AnswerDTO> answers) { using (Entities e = new Entities()) { try { if (e.sub_category.FirstOrDefault(c => c.sub_category_id == question.sub_category_id) == null) { throw new Exception("sub category id is not exists"); } var q = e.questions.Add(QuestionCasting.QuestionToDAL(question)); e.SaveChanges(); for (int i = 0; i < answers.Count; i++) { answers[i].question_id = q.question_id; } e.answers.AddRange(AnswerCasting.AnswersToDAL(answers).ToList()); e.SaveChanges(); return(QuestionCasting.QuestionToDTO(q)); } catch (Exception ex) { throw ex; } } }
public static SolveTest GetTest(int studentId, DateTime time) { using (Entities e = new Entities()) { try { SolveTest sTest = new SolveTest(); test testDal = new test(); var student = e.students.FirstOrDefault(s => s.userId == studentId); if (student != null) { var teacherId = [email protected]_id; var test = e.tests.FirstOrDefault(t => t.teacherId == teacherId && t.test_date == time.Date && t.test_start_time <time.TimeOfDay && t.test_end_time> time.TimeOfDay); var TTT = e.tests.ToList(); if (test != null) { sTest.test = TestCasting.TestToDTO(test); sTest.questions = QuestionCasting.QuestionsToDTO((test.questions).ToList()); var x = e.answers.ToList(); var questionsIds = sTest.questions.Select(t => t.question_id).ToList(); var y = x.Where(a => questionsIds.Contains(a.question_id)).ToList(); sTest.answers = AnswerCasting.AnswersToDTO(y); return(sTest); } throw new Exception("no test0"); } throw new Exception("no student"); } catch (Exception ex) { throw ex; } } }