示例#1
0
 public tblAnswer AddAnswer(Answer answer)
 {
     try
     {
         tblAnswer answerExist = GetAnswer(answer.Description); //Haal het antwoord op uit de database en kijk of het bestaat.
         if (answerExist != null)
         {
             //Wanneer het antwoord bestaat, return deze.
             return answerExist;
         }
         else
         {
             //Wanneer het antwoord niet bestaat, maak deze aan.
             tblAnswer createAnswer = new tblAnswer() {description = answer.Description};
             db.tblAnswers.InsertOnSubmit(createAnswer);
             db.SubmitChanges();
             return createAnswer;
         }
     }
     catch (SqlException ex)
     {
         MessageBox.Show(ex.Message); return null; //Heb je een SQL exception, return null.
     }
 }
示例#2
0
        // Methode voor het updaten van een questionnaire in de database
        // Het Questionnaire object wordt meegegeven en eventueel een lijst met verwijderde vragen zodat deze verwijderd kunnen worden uit de database
        public void UpdateQuestionnaire(Questionnaire questionnaire, List<Question> deletedQuestions = null, List<Answer> deletedAnswers = null)
        {
            db = new DatabaseDataContext(); // Refresh database cache
            try
            {
                tblQuestionnaire updateQuestionnaire = db.tblQuestionnaires.SingleOrDefault(q => q.id == questionnaire.ID); // Haalt questionnaire op uit DB
                updateQuestionnaire.description = questionnaire.Name; // Wijzigingen toepassen
                updateQuestionnaire.archived = questionnaire.Archived;
                db.SubmitChanges();
                if (deletedQuestions != null) // Als er vragen zijn verwijderd, bevinden deze zich niet meer in het object Questionnaire daarvoor is een aparte lijst meegegeven
                {
                    foreach (MultipleChoiceQuestion delQuestion in deletedQuestions)
                    {
                        DeleteMultipleChoiceQuestion(delQuestion.ID); // Verwijder de desbetreffende vraag
                    }
                }

                if (deletedAnswers != null) // Als er antwoorden zijn verwijderd, bevinden deze zich niet meer in het object Question daarvoor is een aparte lijst meegegeven
                {
                    foreach (Answer delAnswer in deletedAnswers)
                    {
                        DeleteLinkAnswerToQuestion(delAnswer); // Verwijder het desbetreffende antwoord
                    }
                }

                foreach (MultipleChoiceQuestion question in questionnaire.Questions) // Doorloopt alle vragen in de questionnaire
                {
                    tblQuestion dbQuestion = null;
                    if (question.ID == -1) // Als de vraag een nieuwe betreft heeft deze standaard een ID van -1
                    {
                        dbQuestion = AddMultipleChoiceQuestion(question, questionnaire.ID); // De vraag wordt dan aangemaakt in de database
                    }
                    else
                    {
                        dbQuestion = updateQuestionnaire.tblQuestions.SingleOrDefault(q => q.id == question.ID); // Haalt de desbetreffende vraag op uit de DB
                        dbQuestion.description = question.Description; // Wijzigt de vraag in DB
                        db.SubmitChanges();
                        foreach (Answer answer in question.AnswerOptions)
                        {
                            if (answer.ID == -1)
                            {
                                Answer tempAnswer = new Answer(AddAnswer(answer).id)
                                {
                                    Description = answer.Description
                                }; // Voegt antwoord toe in database als deze nog niet bestaat

                                dbQuestion.tblAnsweroptions.Add(LinkAnswerToQuestion(question.ID, tempAnswer)); // Koppelt antwoord aan de vraag in de database
                                if (answer == question.CorrectAnswer)
                                {
                                    dbQuestion.correctanswer = tempAnswer.ID;
                                    db.SubmitChanges();
                                    question.CorrectAnswer = tempAnswer;
                                }
                            }
                            else
                            {
                                if (answer == question.CorrectAnswer)
                        {
                                    dbQuestion.correctanswer = answer.ID;
                                    db.SubmitChanges();
                                }
                            }
                        }
                    }
                    if (dbQuestion != null)
                    {
                        updateQuestionnaire.tblQuestions.Add(dbQuestion);
                    }
                }
            }
            catch (SqlException ex) { MessageBox.Show(ex.Message); }
        }
示例#3
0
 public tblAnsweroption LinkAnswerToQuestion(int questionid, Answer answer)
 {
     try
     {
         //Of dus zo:
         tblAnsweroption answerOption = new tblAnsweroption // Maak item aan om toe te voegen
         {
             question = questionid,
             answer = answer.ID
         };
         db.tblAnsweroptions.InsertOnSubmit(answerOption); // Geef opdracht om bovenstaande item toe te voegen
         db.SubmitChanges(); // Voer veranderingen door
         return answerOption;
     }
     catch (SqlException ex)
     {
         MessageBox.Show(ex.Message); return null; //Wanneer er iets fout gaat, laat een messagebox zien met de SQL exception.
     }
 }
示例#4
0
 // hier worden de antwoorden opgehaald die bij een specifieke vraag horen
 public List<Answer> GetAnswersByQuestion(int id)
 {
     try
     {
         List<tblAnsweroption> tblAnsweroption = (from answeroption in db.tblAnsweroptions //Maak een lijst met alle antwoorden naar de ID (databasevorm)
                                                  where answeroption.question == id
                                                  select answeroption).ToList();
         List<Answer> answeroptions = new List<Answer>(); //Maak een lijst met voor antwoorden.
         foreach (tblAnsweroption answeroption in tblAnsweroption)
         {
             Answer newAnswerOption = new Answer(answeroption.answer);
             newAnswerOption.ID = answeroption.answer;
             newAnswerOption.Description = answeroption.tblAnswer.description;
             answeroptions.Add(newAnswerOption);//Maak voor elk antwoord een object aan en voeg ze toe aan de lijst voor antwoorden.
         }
     return answeroptions;//Return de lijst voor antwoorden.
     }
     catch (SqlException ex)
     {
         MessageBox.Show(ex.Message);//Wanneer er iets fout gaat, laat een messagebox zien met de SQL exception.
         return null;
     }
 }
示例#5
0
        private void DeleteLinkAnswerToQuestion(Answer answer)
        {
            try
            {
                List<tblAnsweroption> answerOptions = db.tblAnsweroptions.Where(q => q.answer == answer.ID).ToList();
                // Selecteer item op id
                foreach (tblAnsweroption dbAnswerOption in answerOptions)
                {
                    db.tblAnsweroptions.DeleteOnSubmit(dbAnswerOption);
                }

                // Geef opdracht om bovenstaande item te verwijderen
                db.SubmitChanges(); // Voer veranderingen door
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);//Wanneer er iets fout gaat, laat een messagebox zien met de SQL exception.
            }
        }