Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace ABCD.UI.Model
- {
- public class Quiz
- {
- public User ActiveUser { get; private set; }
- public User InActiveUser { get; private set; }
- public int NumberOfQuestions { get; }
- public int CurrentQuestion { get; private set; }
- public int QuestionsPerStage => NumberOfQuestions / 2;
- public Quiz(int numberOfQuestions, User activeUser, User inActiveUser)
- {
- NumberOfQuestions = numberOfQuestions;
- ActiveUser = activeUser;
- InActiveUser = inActiveUser;
- }
- public int MatchingResults(User activeUser, User inActiveUser)
- {
- int activeUserCount = activeUser.OwnAnswers.Count(n => inActiveUser.ColleagueAnswers.Select(n1 => n1.Option).Contains(n.Option));
- int inActiveUserCount = inActiveUser.OwnAnswers.Count(n => activeUser.ColleagueAnswers.Select(n1 => n1.Option).Contains(n.Option));
- return activeUserCount + inActiveUserCount;
- }
- public void SwapUsers()
- {
- var temp = ActiveUser;
- ActiveUser = InActiveUser;
- InActiveUser = temp;
- }
- public void NextQuestion()
- {
- CurrentQuestion++;
- }
- }
- }
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using Android.App;
- using Android.Content;
- using Android.OS;
- using Android.Runtime;
- using Android.Views;
- using Android.Widget;
- using ABCD.UI.DataLayer;
- using ABCD.UI.Model;
- using Newtonsoft.Json;
- namespace ABCD.UI
- {
- [Activity(Label = "ABCDMenu")]
- public class QuizQuestion : Activity
- {
- private int _currentQuestionAnswer;
- protected override void OnCreate(Bundle savedInstanceState)
- {
- base.OnCreate(savedInstanceState);
- SetContentView(Resource.Layout.quizQuestion);
- // Retrieve next Question ID, or default to 1
- Quiz myQuiz = JsonConvert.DeserializeObject<Quiz>(Intent.GetStringExtra("myQuiz"));
- User activeUser = myQuiz.ActiveUser;
- User inActiveUser = myQuiz.InActiveUser;
- // Assign views from layout
- Button nextQuestionButton = FindViewById<Button>(Resource.Id.nextQuestionButton);
- TextView questionTextView = FindViewById<TextView>(Resource.Id.questionTextView);
- TextView currentUserTextView = FindViewById<TextView>(Resource.Id.currentUserTextView);
- ListView questionListView = FindViewById<ListView>(Resource.Id.questionListView);
- // If final question
- if (myQuiz.EndOfSecondPhase())
- {
- nextQuestionButton.Text = "Results";
- }
- myQuiz.NextQuestion();
- currentUserTextView.Text = $"Asking {activeUser}";
- IAbcdRepository repository = new SqLiteAbcdRepository();
- Question question = repository.GetQuestionById(myQuiz.CurrentQuestion);
- // Assign the question to the text view
- questionTextView.Text = question.ToString();
- // Assign each question option to the list view
- List<String> options = question.GetOptions();
- questionListView.Adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItemSingleChoice, options);
- questionListView.ChoiceMode = ChoiceMode.Single;
- // Click event to move to next activity
- nextQuestionButton.Click += (sender, e) =>
- {
- Intent mainIntent;
- mainIntent = new Intent(this, typeof(QuizQuestion));
- mainIntent.PutExtra("myQuiz", JsonConvert.SerializeObject(myQuiz));
- StartActivity(mainIntent);
- };
- // Enable next question button once item is selected
- questionListView.ItemClick += (sender, e) =>
- {
- _currentQuestionAnswer = e.Position;
- nextQuestionButton.Enabled = true;
- };
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement