示例#1
0
        public void ChangeAnswer()
        {
            if (answer != null)
            {
                if (question != null)
                {
                    id = string.Concat(question.Id, ";", answer.Id);
                }
                else
                {
                    id = string.Concat(
                        id.Split(';').FirstOrDefault(),
                        ";",
                        answer.Id
                        );
                }

                ViewModelReplaceWindow replaceWindow = new ViewModelReplaceWindow();
                replaceWindow.SendData(answer.Name, ConverQuestionsToList(), id);
                replaceWindow.OpenWindow(300, 200);
            }
            else
            {
                ViewModelMessageWindow message = new ViewModelMessageWindow();
                message.SendMessage("\n\nNie wybrałeś odpowiedzi!");
                message.OpenWindow(300, 200);
            }
        }
示例#2
0
        public ObservableCollection <XML.Question> RemoveQuestion()
        {
            if (question != null)
            {
                var questionsList = ConverQuestionsToList();

                int id = question.Id - 1;
                questionsList.RemoveAt(id);

                //update question id
                for (int i = 0; i < questionsList.Count; i++)
                {
                    questionsList[i].Id = i + 1;
                }

                XML newXmlData = new XML();
                newXmlData.QuestionsList = questionsList;

                XML.Serialize(newXmlData);
                LoadData();
            }
            else
            {
                ViewModelMessageWindow message = new ViewModelMessageWindow();
                message.SendMessage("\n\nNie wybrałeś pytania!");
                message.OpenWindow(300, 200);
            }

            return(questions);
        }
示例#3
0
        void Start()
        {
            if (QuestionsMax > 0)
            {
                if (clickStartAgain)
                {
                    counter        = 0;
                    NextButtonName = "Next";
                }

                clickStartAgain      = true;
                IsEnabledAfterStart  = true;
                IsDisabledAfterStart = false;

                var allQuestions = new XML().Deserialize().QuestionsList;

                if (QuestionsMax > allQuestions.Count)
                {
                    string msg = string.Concat("\n\nNie ma tyle pytań w bazie, ilość pytań w bazie: ", allQuestions.Count, ".");
                    ViewModelMessageWindow message = new ViewModelMessageWindow();
                    message.SendMessage(msg);
                    message.OpenWindow(300, 200);
                    return;
                }

                Random randomQuestions             = new Random();
                List <XML.Question> mixedQuestions = allQuestions
                                                     .OrderBy(e => randomQuestions.Next())
                                                     .ToList();

                questionsForOneTest = mixedQuestions
                                      .Take(QuestionsMax)
                                      .ToList();

                startAgainProperties = new List <object>
                {
                    QuestionsMax,
                    AutoReplies,
                    questionsForOneTest
                };

                NextQuestion();

                Messenger.Default.Send <AutoReplyMessage>(new AutoReplyMessage
                {
                    Message = AutoReplies
                });
            }
            else
            {
                ViewModelMessageWindow message = new ViewModelMessageWindow();
                message.SendMessage("\n\nNiepoprawna ilość pytań!");
                message.OpenWindow(300, 200);
            }
        }
示例#4
0
        public void ChangeQuestion()
        {
            if (question != null)
            {
                id = string.Concat(question.Id, ";", 0);

                ViewModelReplaceWindow replaceWindow = new ViewModelReplaceWindow();
                replaceWindow.SendData(question.Values, ConverQuestionsToList(), id);
                replaceWindow.OpenWindow(300, 200);
            }
            else
            {
                ViewModelMessageWindow message = new ViewModelMessageWindow();
                message.SendMessage("\n\nNie wybrałeś pytania!");
                message.OpenWindow(300, 200);
            }
        }
示例#5
0
        public void GenerateRaport(List <XML.Question> questions)
        {
            string report = string.Empty;

            for (int i = 0; i < questions.Count; i++)
            {
                int questionNumber = i + 1;

                var correctAnswers = questions[i].Items
                                     .Where(q => q.IsOk == true && q.Marked == true)
                                     .ToArray();

                var wrongAnswers = questions[i].Items
                                   .Where(q => q.IsOk == false && q.Marked == true)
                                   .ToArray();

                var allCorrectAnswers = questions[i].Items
                                        .Where(q => q.IsOk == true)
                                        .ToArray();

                report = string.Concat(
                    report,
                    ResultReport(
                        correctAnswers,
                        wrongAnswers,
                        allCorrectAnswers,
                        questionNumber,
                        questions[i]),
                    "\n\n"
                    );
            }

            ViewModelMessageWindow message = new ViewModelMessageWindow();

            message.SendMessage(report);
            message.OpenWindow(500, 500);
        }
示例#6
0
        public void GetNewQuestionOrAnswer()
        {
            if (!string.IsNullOrEmpty(newQuestionOrAnswer))
            {
                int questionId = int.Parse(
                    idHelper.Split(';').FirstOrDefault()
                    );

                int answerId = int.Parse(
                    idHelper.Split(';').LastOrDefault()
                    );

                if (!string.IsNullOrEmpty(statement))
                {
                    bool isQuestion = false;

                    if (answerId == 0)
                    {
                        isQuestion = true;
                    }

                    Messenger.Default.Send <WindowMessage>(new WindowMessage
                    {
                        Message    = newQuestionOrAnswer,
                        AnswerId   = answerId,
                        QuestionId = questionId,
                        IsQuestion = isQuestion
                    });
                }
            }
            else
            {
                ViewModelMessageWindow message = new ViewModelMessageWindow();
                message.SendMessage("\n\nNie napisałeś nowej odpowiedzi!");
                message.OpenWindow(300, 200);
            }
        }
示例#7
0
        internal static void ShowMessage(string messageText, string messageHeader)
        {
            _messageWindow = new MessageWindow();
            if ((_messageWindow.Owner = App.GetActiveWindow()) == null)
            {
                throw (new Exception("No parent window loaded"));
            }

            _messageWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;

            // Create ViewModel to which main window binds
            _messageWindowViewModel               = new ViewModelMessageWindow();
            _messageWindowViewModel.MessageText   = messageText;
            _messageWindowViewModel.MessageHeader = messageHeader;

            // When ViewModel asks to be closed, close window
            _messageWindowViewModel.RequestClose += new EventHandler(CloseMessageWindow);

            // Allow all controls in window to bind to ViewModel by setting DataContext
            _messageWindow.DataContext = _messageWindowViewModel;

            // Show window
            _messageWindow.ShowDialog();
        }
示例#8
0
        public void AddQuestion(
            string question,
            string answer1,
            bool answer1IsTrue,
            string answer2,
            bool answer2IsTrue,
            string answer3,
            bool answer3IsTrue,
            string answer4,
            bool answer4IsTrue)
        {
            List <Answer> answers   = new List <Answer>();
            XML           questions = new XML().Deserialize();

            bool questionExistInDB = questions.QuestionsList.Any(q => q.Values == question);

            if (questionExistInDB)
            {
                ViewModelMessageWindow messageWindow = new ViewModelMessageWindow();
                messageWindow.SendMessage("\n\nTakie pytanie już istenieje!");
                messageWindow.OpenWindow(300, 200);
                return;
            }

            Answer answerFirst = new Answer
            {
                Id   = 1,
                IsOk = answer1IsTrue,
                Name = answer1
            };

            Answer answerSecond = new Answer
            {
                Id   = 2,
                IsOk = answer2IsTrue,
                Name = answer2
            };

            Answer answerThird = new Answer
            {
                Id   = 3,
                IsOk = answer3IsTrue,
                Name = answer3
            };

            Answer answerFourth = new Answer
            {
                Id   = 4,
                IsOk = answer4IsTrue,
                Name = answer4
            };

            answers.Add(answerFirst);
            answers.Add(answerSecond);
            answers.Add(answerThird);
            answers.Add(answerFourth);

            questions.QuestionsList.Add(
                new XML.Question()
            {
                Id     = questions.QuestionsList.Count + 1,
                Values = question,
                Items  = answers
            });


            XML.Serialize(questions);

            Messenger.Default.Send <RefreshQuestions>(new RefreshQuestions
            {
                Refresh = true
            });

            ViewModelMessageWindow message = new ViewModelMessageWindow();

            message.SendMessage("\n\nPytanie zostało dodane.");
            message.OpenWindow(300, 200);
        }