Пример #1
0
        public async void DeleteQuiz(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            if (quizParams.Quiz == null)
            {
                DisplayErrorMessageAsync("Please select a quiz from the list");
                return;
            }
            Quiz quiz     = quizParams.Quiz;
            var  myHashId = HashGenerator.ComputeSha256Hash(IdentityService.GetAccountIdentifier());

            if (myHashId != quizParams.Quiz.UserIdHash)
            {
                DisplayErrorMessageAsync("Error. UserId hash did not match quiz's UserId hash.");
                return;
            }

            bool userConfirmed = await DisplayAreYouSureDialog().ConfigureAwait(true);

            if (userConfirmed)
            {
                if (IdentityService.IsLoggedIn())
                {
                    if (await QuizRequest.DeleteQuizAsync(quiz).ConfigureAwait(true))
                    {
                        NavigationService.Navigate(typeof(MainPage));
                    }
                    else
                    {
                        DisplayErrorMessageAsync("There was an error deleting the quiz.");
                    }
                }
            }
        }
Пример #2
0
        public async void FillQuizList()
        {
            //TODO: errorhandling no internet
            var thisHashId = HashGenerator.ComputeSha256Hash(IdentityService.GetAccountIdentifier());

            var quizList = await QuizRequest.GetQuizzesFromIdHashAsync(thisHashId).ConfigureAwait(true);

            foreach (Quiz q in quizList)
            {
                QuizzesObservableCollection.Add(q);
            }
        }
Пример #3
0
        public async void AddQuiz()
        {
            var myHashId = HashGenerator.ComputeSha256Hash(IdentityService.GetAccountIdentifier());

            if (myHashId != quiz.UserIdHash)
            {
                DisplayErrorMessageAsync("Error. UserId hash did not match quiz's UserId hash.");
                return;
            }

            if (QuizIsValid(quiz))
            {
                bool userConfirmed = await DisplayAreYouSureDialog().ConfigureAwait(true);

                if (userConfirmed)
                {
                    quiz.QuizName = QuizNameHeader;
                    //updating quiz and question's ICollections and deleting their ILists.
                    quiz.Questions.Clear();
                    foreach (Question q in quiz.QuestionList)
                    {
                        quiz.Questions.Add(q);
                    }
                    quiz.QuestionList.Clear();
                    foreach (var question in quiz.Questions)
                    {
                        question.Answers.Clear();
                        foreach (var answer in question.AnswersList)
                        {
                            question.Answers.Add(answer);
                        }
                        question.AnswersList.Clear();
                    }

                    if (IdentityService.IsLoggedIn())
                    {
                        if (await QuizRequest.UpdateQuizCascadingAsync(quiz).ConfigureAwait(true))
                        {
                            NavigationService.Navigate(typeof(MainPage));
                        }
                        else
                        {
                            DisplayErrorMessageAsync("There was an error updating the quiz.");
                        }
                    }
                }
            }
        }
Пример #4
0
        public async void AddQuiz()
        {
            if (QuizIsValid(quiz))
            {
                bool userConfirmed = await DisplayAreYouSureDialog().ConfigureAwait(true);

                if (userConfirmed)
                {
                    //updating quiz and question's ICollections and deleting their ILists.
                    quiz.Questions.Clear();
                    foreach (Question q in quiz.QuestionList)
                    {
                        quiz.Questions.Add(q);
                    }

                    quiz.QuestionList = null;
                    foreach (var q in quiz.Questions)
                    {
                        q.Answers.Clear();
                        foreach (var answer in q.AnswersList)
                        {
                            q.Answers.Add(answer);
                        }
                        q.AnswersList = null;
                    }

                    if (IdentityService.IsLoggedIn())
                    {
                        quiz.UserIdHash = HashGenerator.ComputeSha256Hash(IdentityService.GetAccountIdentifier());
                    }

                    if (await QuizRequest.AddQuizToDbAsync(quiz).ConfigureAwait(true))
                    {
                        Quizzes.Add(quiz);
                        NavigationService.Navigate(typeof(MainPage));
                    }
                    else
                    {
                        DisplayErrorMessageAsync("There was an unknown error adding your quiz to the database.");
                    }
                }
            }
        }