public QuestionPage(User user, IEnumerable <Questions> questions, int pageNumber, int [] answers)
        {
            InitializeComponent();

            var qs    = questions.ToList();
            var count = qs.Count();
            //int[] answers =  new int[count];
            //for (int i=0; i<count;i++)
            //{
            //    answers[i] = 0;
            //}
            //Application.Current.Properties["answers"] = answers;


            StackLayout stackLayout = new StackLayout();
            Entry       answer      = new Entry();
            Label       progress    = new Label();
            Label       question    = new Label();

            question.Text = qs[pageNumber].Content;
            Button next = new Button();

            next.Text = "next";
            Button previous = new Button();

            previous.Text = "previous";
            Button end = new Button();

            end.Text = "end";
            end.HorizontalOptions = LayoutOptions.End;

            answer.Placeholder = "enter answer";
            if (answers[pageNumber] != 0)
            {
                answer.Text = answers[pageNumber].ToString();
            }
            progress.Text = (pageNumber + 1).ToString() + "/" + count.ToString();



            Grid grid = new Grid
            {
                RowDefinitions =
                {
                    new RowDefinition {
                        Height = new GridLength(1, GridUnitType.Star)
                    }
                },
                ColumnDefinitions =
                {
                    new ColumnDefinition {
                        Width = new GridLength(1, GridUnitType.Star)
                    },
                    new ColumnDefinition {
                        Width = new GridLength(1, GridUnitType.Star)
                    }
                }
            };



            if (pageNumber != 0)
            {
                grid.Children.Add(previous, 0, 0);
            }

            if (pageNumber != count - 1)
            {
                grid.Children.Add(next, 1, 0);
            }



            stackLayout.Children.Add(progress);
            stackLayout.Children.Add(grid);
            stackLayout.Children.Add(answer);
            stackLayout.Children.Add(question);

            //if (pageNumber != 0)
            //{
            //    stackLayout.Children.Add(previous);
            //}

            //if (pageNumber != count-1)
            //{
            //    stackLayout.Children.Add(next);
            //}

            stackLayout.Children.Add(end);


            next.Clicked += delegate
            {
                try
                {
                    answers[pageNumber] = int.Parse(answer.Text);
                }
                catch
                {
                }
                var QuestionPage = new QuestionPage(user, questions, pageNumber + 1, answers);
                Navigation.PushModalAsync(QuestionPage);
            };

            previous.Clicked += delegate
            {
                var QuestionPage = new QuestionPage(user, questions, pageNumber - 1, answers);
                Navigation.PushModalAsync(QuestionPage);
            };


            end.Clicked += async delegate
            {
                var displayAlert = await DisplayAlert("Confirm the action", "Did you want end test?", "Yes", "No");

                if (displayAlert == true)
                {
                    Tasks taskToSave = new Tasks();
                    taskToSave.Test   = int.Parse(App.Current.Properties["TestID"].ToString());
                    taskToSave.Start  = DateTime.Parse(App.Current.Properties["Start"].ToString());
                    taskToSave.Finish = DateTime.Now;
                    int sum = 0;
                    int i   = 0;

                    foreach (var q in questions)
                    {
                        if (q.Answer == answers[i])
                        {
                            sum++;
                        }
                        i++;
                    }
                    taskToSave.Sum  = sum;
                    taskToSave.User = user.Id;
                    taskToSave.Pass = int.Parse(App.Current.Properties["Pass"].ToString());



                    ApplicationViewModel applicationViewModel = new ApplicationViewModel();
                    await applicationViewModel.AddTasks(taskToSave);

                    int j = 0;
                    foreach (var q in questions)
                    {
                        TaskAnswers taskAnswers = new TaskAnswers();
                        taskAnswers.Task          = applicationViewModel.GetTasksIdForTaskAnswers.Id;
                        taskAnswers.StudentAnswer = answers[j];
                        if (answers[j] == q.Answer)
                        {
                            taskAnswers.CorrectAnswer = 1;
                        }
                        else
                        {
                            taskAnswers.CorrectAnswer = 0;
                        }

                        taskAnswers.Question = q.Id;
                        j++;
                        await applicationViewModel.AddTaskAnswers(taskAnswers);
                    }


                    await applicationViewModel.ChekUser(user.Login, user.Password);

                    await applicationViewModel.GetSubjects(user.Login, user.Password);

                    var StudentPage = new StudentPage(user, applicationViewModel.subjects);
                    await Navigation.PushModalAsync(StudentPage);
                }
            };


            Content = stackLayout;
        }
Пример #2
0
        public RegisterPage(IEnumerable <Grade> grades)
        {
            InitializeComponent();
            StackLayout stackLayout = new StackLayout();
            Entry       login       = new Entry();

            login.Placeholder = "enter login";
            Entry name = new Entry();

            name.Placeholder = "enter full name and family";

            Entry password = new Entry
            {
                Placeholder = "add password",
            };

            password.IsPassword = true;


            Entry passwordVerify = new Entry
            {
                Placeholder = "verify password",
            };

            password.IsPassword = true;


            Picker gradeNumber = new Picker
            {
                Title = "grade"
            };

            foreach (var grade in grades)
            {
                gradeNumber.Items.Add(grade.Number.ToString());
            }

            Picker gradeName = new Picker();

            gradeName.Title = "grade name";



            gradeNumber.SelectedIndexChanged += delegate
            {
                gradeName.Items.Clear();
                var gradeNames = grades.ToList().Where(g => g.Number == int.Parse(gradeNumber.Items[gradeNumber.SelectedIndex]));
                foreach (var grade in gradeNames)
                {
                    gradeName.Items.Add(grade.Name.ToString());
                }
            };


            Button confirm = new Button();

            confirm.Clicked += async delegate
            {
                StudentsGrade studentsGrade = new StudentsGrade();
                User          user          = new User();
                if (password.Text == passwordVerify.Text)
                {
                    App.Current.Properties["SaveLogin"]    = login.Text;
                    App.Current.Properties["SavePassword"] = password.Text;
                    ApplicationViewModel applicationViewModel = new ApplicationViewModel();
                    var grade = grades.ToList().Where(g => g.Name == gradeName.Items[gradeName.SelectedIndex] && g.Number == int.Parse(gradeNumber.Items[gradeNumber.SelectedIndex])).FirstOrDefault();
                    user.Login          = login.Text;
                    user.FullName       = name.Text;
                    user.Password       = password.Text;
                    user.Roles          = 1;
                    studentsGrade.Grade = grade.Id;
                    var userForID = await applicationViewModel.AddUser(user);

                    studentsGrade.User = userForID.Id;
                    await applicationViewModel.AddStudentsGrade(studentsGrade);


                    await applicationViewModel.ChekUser(login.Text, password.Text);

                    await applicationViewModel.GetSubjects(login.Text, password.Text);

                    var StudentPage = new StudentPage(applicationViewModel.user, applicationViewModel.subjects);
                    await Navigation.PushModalAsync(StudentPage);
                }
                else
                {
                    await DisplayAlert("password not coincide", "verify password", "ok");
                }
            };
            confirm.Text = "confirm";

            stackLayout.Children.Add(login);
            stackLayout.Children.Add(name);
            stackLayout.Children.Add(password);
            stackLayout.Children.Add(passwordVerify);
            stackLayout.Children.Add(gradeNumber);
            stackLayout.Children.Add(gradeName);
            stackLayout.Children.Add(confirm);

            Content = stackLayout;
        }
Пример #3
0
        public MainPage()
        {
            InitializeComponent();

            Entry login = new Entry
            {
                Placeholder = "add login",
            };



            Entry password = new Entry
            {
                Placeholder = "add password",
            };

            password.IsPassword = true;


            Button Reg = new Button()
            {
                Text = "Create account"
            };


            Button In = new Button()
            {
                Text = "login"
            };



            In.Clicked += async delegate
            {
                App.Current.Properties["SaveLogin"]    = login.Text;
                App.Current.Properties["SavePassword"] = password.Text;
                ApplicationViewModel applicationViewModel = new ApplicationViewModel();
                await applicationViewModel.ChekUser(login.Text, password.Text);

                await applicationViewModel.GetSubjects(login.Text, password.Text);

                var StudentPage = new StudentPage(applicationViewModel.user, applicationViewModel.subjects);
                await Navigation.PushModalAsync(StudentPage);
            };

            Reg.Clicked += async delegate
            {
                ApplicationViewModel applicationViewModel = new ApplicationViewModel();
                await applicationViewModel.getGrades();

                var registerPage = new RegisterPage(applicationViewModel.Grades);
                await Navigation.PushModalAsync(registerPage);
            };


            StackLayout stackLayout = new StackLayout();

            stackLayout.Children.Add(login);
            stackLayout.Children.Add(password);
            stackLayout.Children.Add(Reg);
            stackLayout.Children.Add(In);



            Content = stackLayout;

            try
            {
                login.Text    = App.Current.Properties["SaveLogin"].ToString();
                password.Text = App.Current.Properties["SavePassword"].ToString();
            }
            catch
            {
            }
        }