Beispiel #1
0
        //Сохранение изменённого вопроса в объект проекта
        private bool saveEditQuestionInCurrentProject(int idQuestion)
        {
            if (questField.Text != string.Empty)
            {
                Question refCurrentQuection = Program.CurrentProject.Questions.FirstOrDefault(i => i.id == idQuestion);

                Question editedQuestion = new Question();
                editedQuestion.Text = questField.Text;
                editedQuestion.Answers.Clear();

                #region InsertAnswersToRefCurrentQuestion

                #region newAnswer1
                if (answer1Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 1, Text = answer1Text.Text, Trueness = answer1Bool.IsChecked != null ? (bool)(answer1Bool.IsChecked) : false
                    };
                    editedQuestion.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer2
                if (answer2Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 2, Text = answer2Text.Text, Trueness = answer2Bool.IsChecked != null ? (bool)(answer2Bool.IsChecked) : false
                    };
                    editedQuestion.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer3
                if (answer3Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 3, Text = answer3Text.Text, Trueness = answer3Bool.IsChecked != null ? (bool)(answer3Bool.IsChecked) : false
                    };
                    editedQuestion.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer4
                if (answer4Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 4, Text = answer4Text.Text, Trueness = answer4Bool.IsChecked != null ? (bool)(answer4Bool.IsChecked) : false
                    };
                    editedQuestion.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer5
                if (answer5Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 5, Text = answer5Text.Text, Trueness = answer5Bool.IsChecked != null ? (bool)(answer5Bool.IsChecked) : false
                    };
                    editedQuestion.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer6
                if (answer6Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 6, Text = answer6Text.Text, Trueness = answer6Bool.IsChecked != null ? (bool)(answer6Bool.IsChecked) : false
                    };
                    editedQuestion.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer7
                if (answer7Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 7, Text = answer7Text.Text, Trueness = answer7Bool.IsChecked != null ? (bool)(answer7Bool.IsChecked) : false
                    };
                    editedQuestion.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer8
                if (answer8Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 8, Text = answer8Text.Text, Trueness = answer8Bool.IsChecked != null ? (bool)(answer8Bool.IsChecked) : false
                    };
                    editedQuestion.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer9
                if (answer9Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 9, Text = answer9Text.Text, Trueness = answer9Bool.IsChecked != null ? (bool)(answer9Bool.IsChecked) : false
                    };
                    editedQuestion.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer10
                if (answer10Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 10, Text = answer10Text.Text, Trueness = answer10Bool.IsChecked != null ? (bool)(answer10Bool.IsChecked) : false
                    };
                    editedQuestion.Answers.Add(newAnswer);
                }
                #endregion

                #endregion

                if (editedQuestion.Answers.Count > 1)
                {
                    //хотя бы один ответ правельный
                    #region isOneTrue
                    bool isOneTruness = false;
                    foreach (Answer c in editedQuestion.Answers)
                    {
                        if (c.Trueness == true)
                        {
                            isOneTruness = true;
                            break;
                        }
                    }
                    #endregion
                    if (isOneTruness)
                    {
                        editedQuestion.AnswersIdSort();
                        refCurrentQuection.Answers.Clear();
                        refCurrentQuection.Text = editedQuestion.Text;
                        foreach (Answer answer in editedQuestion.Answers)
                        {
                            refCurrentQuection.Answers.Add(answer);
                        }

                        return(true);
                    }
                }
                return(false);
            }
            return(false);
        }
Beispiel #2
0
        static bool ParserProject(string[] readinFile, string pathProject)
        {   //вхождение в блок проекта
            bool   inProj      = false;
            string nameProject = "";
            Guid   guidProj    = Guid.Empty;
            //вхождение в блок вопроса
            bool     inQuestion      = false;
            Question currentQuestion = null;
            //вхождение в блок текста вопроса
            bool   inQuText     = false;
            string questionText = "";
            //входжение в блок ответа
            bool   inAnwer      = false;
            string anwerText    = "";
            Answer currentAnwer = null;
            string line         = "";

            try
            {
                foreach (string searchCommand in readinFile)
                {
                    line += searchCommand;
                    if (line.Contains("<"))
                    {
                        if (line.Contains(">"))
                        {
                            //вырезаем команду из строки line
                            #region delete substring
                            string subStrCommand = line.Substring(line.IndexOf('<'), line.IndexOf('>'));
                            line = line.Remove(line.IndexOf('<'), line.IndexOf('>'));
                            #endregion

                            #region Command
                            string readLine = subStrCommand.Split('<')[1];
                            string command  = readLine.Split('>')[0];
                            switch (command[0])
                            {
                                #region command first 'p'
                            case 'p':
                                if (command.Substring(0, 4).CompareTo("proj") == 0)
                                {
                                    string valStr             = command.Split('(')[1];
                                    string nameProjectAndGuid = valStr.Split(')')[0];
                                    nameProject    = nameProjectAndGuid.Split(';')[0];
                                    guidProj       = Guid.Parse(nameProjectAndGuid.Split(';')[1]);
                                    CurrentProject = new Project(nameProject, pathProject, guidProj, Convert.ToBase64String(KeyCript));
                                    inProj         = true;
                                }
                                break;

                                #endregion
                                #region command first 'q'
                            case 'q':
                                if ((inProj) && (command[1] == 'u'))
                                {
                                    string valStr     = command.Split('(')[1];
                                    string idQuestion = valStr.Split(')')[0];
                                    currentQuestion    = new Question();
                                    currentQuestion.id = Convert.ToInt32(idQuestion);
                                    inQuestion         = true;
                                }
                                else
                                if ((inQuestion) && (command[1] == 't'))
                                {
                                    inQuText = true;
                                }
                                break;

                                #endregion
                                #region command first 'a'
                            case 'a':
                                if ((inQuestion) && (inProj) && (command[1] == 'n'))
                                {
                                    string valStr         = command.Split('(')[1];
                                    string numAndTrueness = valStr.Split(')')[0];
                                    string num            = numAndTrueness.Split(';')[0];
                                    string Trueness       = numAndTrueness.Split(';')[1];
                                    currentAnwer    = new Answer();
                                    currentAnwer.id = Convert.ToInt32(num);
                                    if (Trueness[0] == 't')
                                    {
                                        currentAnwer.Trueness = true;
                                    }
                                    if (Trueness[0] == 'f')
                                    {
                                        currentAnwer.Trueness = false;
                                    }
                                    inAnwer = true;
                                }
                                break;

                                #endregion
                                #region command first '/'
                            case '/':
                                if (command[1] == 'a')
                                {
                                    inAnwer           = false;
                                    currentAnwer.Text = anwerText;
                                    currentQuestion.Answers.Add(currentAnwer);
                                }
                                else
                                if (command[1] == 'q')
                                {
                                    if (command[2] == 't')
                                    {
                                        inQuText             = false;
                                        currentQuestion.Text = questionText;
                                    }
                                    else
                                    if (command[2] == 'u')
                                    {
                                        inQuestion = false;
                                        CurrentProject.Questions.Add(currentQuestion);
                                    }
                                }
                                else
                                if (command[1] == 'p')
                                {
                                    inProj = false;
                                    return(true);
                                }
                                break;
                                #endregion
                            }


                            #endregion
                        }
                        else
                        {
                            //добавляем новую строку в line для поиска конца команды '>'
                            continue;
                        }
                    }
                    #region writeText
                    if ((inProj) && (inQuestion))
                    {
                        if (inQuText)
                        {
                            questionText = line;
                        }
                        if (inAnwer)
                        {
                            anwerText = line;
                        }
                    }
                    #endregion
                    line = "";
                }
            }
            catch (Exception)
            {
                WindowMsgError errorFileNotExist = new WindowMsgError("Ошибка", "Ошибка при чтении теста");
                errorFileNotExist.ShowDialog();
                return(false);
            }
            WindowMsgError errorFileNotExist2 = new WindowMsgError("Ошибка", "Ошибка при чтении теста");
            errorFileNotExist2.ShowDialog();
            return(false);
        }
Beispiel #3
0
        //Сохранение вопроса в объект проекта
        private bool insertQuestionInCurrentProject()
        {
            if (questField.Text != string.Empty)
            {
                Question newQuest = new Question()
                {
                    id = currentNumQuest, Text = questField.Text
                };
                #region InsertAnswersToNewQuestion

                #region newAnswer1
                if (answer1Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 1, Text = answer1Text.Text, Trueness = answer1Bool.IsChecked != null ? (bool)(answer1Bool.IsChecked) : false
                    };
                    newQuest.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer2
                if (answer2Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 2, Text = answer2Text.Text, Trueness = answer2Bool.IsChecked != null ? (bool)(answer2Bool.IsChecked) : false
                    };
                    newQuest.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer3
                if (answer3Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 3, Text = answer3Text.Text, Trueness = answer3Bool.IsChecked != null ? (bool)(answer3Bool.IsChecked) : false
                    };
                    newQuest.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer4
                if (answer4Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 4, Text = answer4Text.Text, Trueness = answer4Bool.IsChecked != null ? (bool)(answer4Bool.IsChecked) : false
                    };
                    newQuest.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer5
                if (answer5Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 5, Text = answer5Text.Text, Trueness = answer5Bool.IsChecked != null ? (bool)(answer5Bool.IsChecked) : false
                    };
                    newQuest.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer6
                if (answer6Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 6, Text = answer6Text.Text, Trueness = answer6Bool.IsChecked != null ? (bool)(answer6Bool.IsChecked) : false
                    };
                    newQuest.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer7
                if (answer7Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 7, Text = answer7Text.Text, Trueness = answer7Bool.IsChecked != null ? (bool)(answer7Bool.IsChecked) : false
                    };
                    newQuest.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer8
                if (answer8Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 8, Text = answer8Text.Text, Trueness = answer8Bool.IsChecked != null ? (bool)(answer8Bool.IsChecked) : false
                    };
                    newQuest.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer9
                if (answer9Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 9, Text = answer9Text.Text, Trueness = answer9Bool.IsChecked != null ? (bool)(answer9Bool.IsChecked) : false
                    };
                    newQuest.Answers.Add(newAnswer);
                }
                #endregion

                #region newAnswer10
                if (answer10Text.Text != string.Empty)
                {
                    Answer newAnswer = new Answer()
                    {
                        id = 10, Text = answer10Text.Text, Trueness = answer10Bool.IsChecked != null ? (bool)(answer10Bool.IsChecked) : false
                    };
                    newQuest.Answers.Add(newAnswer);
                }
                #endregion

                #endregion
                if (newQuest.Answers.Count > 1)
                {
                    //хотя бы один ответ правельный
                    #region isOneTrue
                    bool isOneTruness = false;
                    foreach (Answer c in newQuest.Answers)
                    {
                        if (c.Trueness == true)
                        {
                            isOneTruness = true;
                            break;
                        }
                    }
                    #endregion
                    if (isOneTruness)
                    {
                        newQuest.AnswersIdSort();
                        Program.CurrentProject.Questions.Add(newQuest);
                        return(true);
                    }
                    return(false);
                }
                return(false);
            }
            return(false);
        }