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; }
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; }
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 { } }