Example #1
0
        public DebugPopup(TestingViewModel testingViewModel)
        {
            BackgroundColor = Color.FromRgba(0, 0, 0, 0.5f);

            var btnClose = DefaultView.CloseButton();

            btnClose.HorizontalOptions = LayoutOptions.Center;
            btnClose.VerticalOptions   = LayoutOptions.End;
            btnClose.Margin            = new Thickness(20);

            btnClose.AddTouch((sender, args) => { PopupNavigation.Instance.PopAsync(); });


            var scrollView = new ScrollView
            {
                Orientation = ScrollOrientation.Vertical,
                Content     = new TestingView {
                    BindingContext = testingViewModel
                },
            };

            Content = new Grid()
            {
                BackgroundColor = Colors.Background,
                Children        =
                {
                    scrollView,
                    btnClose,
                }
            };
        }
        private TestingViewModel GetQuest(int n, int id, int attemptId)
        {
            Test             test  = db.Tests.Include("Questions").Include("Questions.Variants").FirstOrDefault(t => t.Id == id);
            TestingViewModel model = new TestingViewModel
            {
                Id            = test.Questions[n].Id,
                Numb          = n,
                AttemptId     = attemptId,
                TestId        = test.Questions[n].TestId,
                Type          = test.Questions[n].Type,
                Text          = test.Questions[n].Text,
                Var1Id        = test.Questions[n].Variants[0].Id,
                Var1          = test.Questions[n].Variants[0].Text,
                Var1IsCorrect = false,
                Var2Id        = test.Questions[n].Variants[1].Id,
                Var2          = test.Questions[n].Variants[1].Text,
                Var2IsCorrect = false,
                Var3Id        = test.Questions[n].Variants[2].Id,
                Var3          = test.Questions[n].Variants[2].Text,
                Var3IsCorrect = false,
                Var4Id        = test.Questions[n].Variants[3].Id,
                Var4          = test.Questions[n].Variants[3].Text,
                Var4IsCorrect = false
            };

            return(model);
        }
Example #3
0
        public IActionResult TestMe()
        {
            var model = new TestingViewModel
            {
                Greeting    = _greeter.GetGreeting(),
                CurrentDate = DateTime.UtcNow
            };

            return(View(model));
        }
        public async Task <IActionResult> Testing(TestingViewModel model)
        {
            List <Answer> answers = new List <Answer>();

            if (model.Var1IsCorrect)
            {
                answers.Add(new Answer {
                    AttemptId = model.AttemptId, VariantId = model.Var1Id
                });
            }
            if (model.Var2IsCorrect)
            {
                answers.Add(new Answer {
                    AttemptId = model.AttemptId, VariantId = model.Var2Id
                });
            }
            if (model.Var3IsCorrect)
            {
                answers.Add(new Answer {
                    AttemptId = model.AttemptId, VariantId = model.Var3Id
                });
            }
            if (model.Var4IsCorrect)
            {
                answers.Add(new Answer {
                    AttemptId = model.AttemptId, VariantId = model.Var4Id
                });
            }
            await db.Answers.AddRangeAsync(answers);

            db.SaveChanges();
            Test test = await db.Tests.Include("Questions").Include("Questions.Variants").FirstOrDefaultAsync(t => t.Id == model.TestId);

            if (model.Numb != test.Questions.Count - 1)
            {
                TestingViewModel newModel = GetQuest(model.Numb + 1, model.TestId, model.AttemptId);
                return(View(newModel));
            }
            else
            {
                Attempt attempt = await db.Attempts.Include("Answers").Include("Answers.Variant").FirstOrDefaultAsync(t => t.Id == model.AttemptId);

                int a = attempt.Answers.Where(t => t.Variant.IsCorrect).Count();
                int b = attempt.Answers.Count;
                TestResultViewModel result = new TestResultViewModel
                {
                    Id       = model.TestId,
                    TestName = test.Name,
                    Result   = (double)a / b * 100
                };
                return(View("TestResult", result));
            }
        }
        public void ExamStart(Test test, Group group)
        {
            TestingWindow    tW  = new TestingWindow();
            TestingViewModel tVM = new TestingViewModel(test, Login, group);

            tVM.CloseView += tW.CloseDialog;
            tW.DataContext = tVM;
            if (tW.ShowDialog() == true)
            {
                Wrapper.SendTestResult(tVM.Result);

                // ExecGroupRefresh(null);
            }
            tVM.Dispose();
        }
        public async Task <IActionResult> Testing(int id)
        {
            Test test = await db.Tests.Include("Questions").Include("Questions.Variants").FirstOrDefaultAsync(t => t.Id == id);

            if (test == null)
            {
                return(Content("Нет теста с таким id"));
            }
            Attempt attempt = new Attempt {
                TestId = test.Id, UserId = _userManager.GetUserId(User)
            };

            db.Attempts.Add(attempt);
            db.SaveChanges();
            TestingViewModel model = GetQuest(0, test.Id, attempt.Id);

            return(View(model));
        }
 public MainViewModel(INotificationBus bus)
 {
     Testing = new TestingViewModel();
     Log     = new LogViewModel(bus);
 }
Example #8
0
 public TestingPage()
 {
     InitializeComponent();
     _viewModel     = new TestingViewModel();
     BindingContext = _viewModel;
 }