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