Beispiel #1
0
        public static int AddNewQuestion(Question question, int testId = 0)
        {
            try
            {
                using (var ctx = new TestStudentDBEntities())
                {
                    question.Created = DateTime.Now;
                    ctx.Questions.Add(question);
                    ctx.SaveChanges();

                    if (question.Id > 0)
                    {
                        foreach (var answer in question.Answers)
                        {
                            answer.QuestionId = question.Id;
                            answer.Created    = DateTime.Now;
                            ctx.Answers.Add(answer);
                            ctx.SaveChanges();
                        }

                        if (testId > 0)
                        {
                            var question2Test = new Question2Test()
                            {
                                QuestionId = question.Id, TestId = testId
                            };
                            ctx.Question2Test.Add(question2Test);
                            ctx.SaveChanges();
                        }

                        return(question.Id);
                    }
                }
                return(0);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка при добавлении вопроса в БД", "Ошибка работы с БД", MessageBoxButton.OK,
                                MessageBoxImage.Error);
                return(0);
            }
        }
Beispiel #2
0
        public static void SaveTestParam(TestInstance test, TestGradeLimit[] limits)
        {
            try
            {
                using (var ctx = new TestStudentDBEntities())
                {
                    foreach (var limt in limits)
                    {
                        ctx.Entry(limt).State = limt.Id != 0? EntityState.Modified:EntityState.Added;
                        ctx.SaveChanges();
                    }

                    ctx.Entry(test).State = EntityState.Modified;
                    ctx.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка сохранения параметров теста", "Ошибка работы с БД", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Beispiel #3
0
        public static bool DeleteQuestion(Question question)
        {
            try
            {
                using (var ctx = new TestStudentDBEntities())
                {
                    //Удаляем сначала ответы
                    foreach (var answer in question.Answers)
                    {
                        answer.IsDeleted = true;
                    }

                    question.IsDeleted = true;
                    EditQuestion(question);

                    //потом если всё ок, то привязку к тесту
                    var quest2TestRelation = ctx.Question2Test.Where(q => q.QuestionId == question.Id).ToArray();
                    foreach (var question2Test in quest2TestRelation)
                    {
                        ctx.Question2Test.Remove(question2Test);
                        ctx.SaveChanges();
                    }



                    //И наконец удаляем сам вопрос
                    //ctx.Questions.Attach(question);
                    //ctx.Questions.Remove(question);
                    //ctx.SaveChanges();

                    return(true);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка при удалении вопросов", "Ошибка работы с БД", MessageBoxButton.OK,
                                MessageBoxImage.Error);
                return(false);
            }
        }