public TestResultsView() { InitializeComponent(); _viewModel = DIContainer.Resolve <TestResultsViewModel>(); DataContext = _viewModel; }
public ActionResult Index(int?pageIndex) { var userId = this.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier); if (userId == null) { return(this.View()); } int pageSize = 50; var paginatedResults = new Dictionary <int, PaginatedCollection <TestResultEntryViewModel> >(); var testResultListDto = this._resultsService.GetAllTestResults(); for (var i = 1; i <= testResultListDto.Count; i++) { if (testResultListDto.TryGetValue(i, out var results)) { var totalTestResults = new List <TestResultEntryViewModel>(); foreach (var result in results) { totalTestResults.Add(new TestResultEntryViewModel { Week1Points = result.Week1Points, Week1Place = result.Week1Place, Week2Points = result.Week2Points, Week2Place = result.Week2Place, Week3Points = result.Week3Points, Week3Place = result.Week3Place, FinalPoints = result.FinalPoints, FinalPlace = result.FinalPlace, UserId = result.UserId, CorrectAnswers = result.CorrectAnswersCount, WrongAnswers = result.WrongAnswersCount, UserName = result.UserName, }); } paginatedResults.Add(i, new PaginatedCollection <TestResultEntryViewModel>(totalTestResults, pageIndex ?? 1, pageSize)); } } var userPosition = this._resultsService.GetUserPosition(userId); var vm = new TestResultsViewModel() { UserWeek1Position = userPosition.Week1Place ?? 0, UserWeek2Position = userPosition.Week2Place ?? 0, UserWeek3Position = userPosition.Week3Place ?? 0, UserFinalPosition = userPosition.FinalPlace ?? 0, TotalTestResults = paginatedResults }; return(this.View(vm)); }
protected override async void OnNavigatedTo(NavigationEventArgs e) { var runningTestsViewModel = e.Parameter as RunningTestsViewModel; if (runningTestsViewModel == null) { throw new InvalidOperationException("Running tests view model not provided"); } // Force a Garbage Collection to make sure that the WeakReferences as invalidated. GC.Collect(GC.MaxGeneration, GCCollectionMode.Default, blocking: true); await System.Threading.Tasks.Task.Delay(1000); var model = new TestResultsViewModel(runningTestsViewModel.Results); DataContext = model; ListViewCategories.ItemsSource = new TestResultsCategoryViewModel[] { model.Passed, model.PassedButSourceWasChanged, model.Failed, model.Leaked, model.New, }; if (model.Failed.Results.Count > 0) { ListViewCategories.SelectedItem = model.Failed; } else if (model.PassedButSourceWasChanged.Results.Count > 0) { ListViewCategories.SelectedItem = model.PassedButSourceWasChanged; } else if (model.Leaked.Results.Count > 0) { ListViewCategories.SelectedItem = model.Leaked; } else if (model.New.Results.Count > 0) { ListViewCategories.SelectedItem = model.New; } else { ListViewCategories.SelectedItem = model.Passed; } base.OnNavigatedTo(e); }
protected override void OnNavigatedTo(NavigationEventArgs e) { var runningTestsViewModel = e.Parameter as RunningTestsViewModel; if (runningTestsViewModel == null) { throw new InvalidOperationException("Running tests view model not provided"); } var model = new TestResultsViewModel(runningTestsViewModel.Results); DataContext = model; ListViewCategories.ItemsSource = new TestResultsCategoryViewModel[] { model.Passed, model.Failed, model.FailedButSourceWasChanged, model.PassedButSourceWasChanged, model.New }; if (model.Failed.Results.Count > 0) { ListViewCategories.SelectedItem = model.Failed; } else if (model.FailedButSourceWasChanged.Results.Count > 0) { ListViewCategories.SelectedItem = model.FailedButSourceWasChanged; } else if (model.PassedButSourceWasChanged.Results.Count > 0) { ListViewCategories.SelectedItem = model.PassedButSourceWasChanged; } else if (model.New.Results.Count > 0) { ListViewCategories.SelectedItem = model.New; } else { ListViewCategories.SelectedItem = model.Passed; } base.OnNavigatedTo(e); }
void TestResultsView_Loaded(object sender, RoutedEventArgs e) { this.viewModel = this.DataContext as TestResultsViewModel; if (this.viewModel != null) { this.viewModel.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(trvm_PropertyChanged); SetUpGrid(); } // Set Initial RadiologyTest Selection if (this.viewModel.RadiologyTests.Count > 0) { this.viewModel.SelectedRadiologyTest = this.viewModel.RadiologyTests[0]; } }
public ActionResult Index() { var userId = this.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier); if (userId == null) { return(this.View()); } var userPosition = this._resultsService.GetUserPosition(userId); var vm = new TestResultsViewModel() { UserWeek1Position = userPosition.Week1Place ?? 0, UserWeek2Position = userPosition.Week2Place ?? 0, UserWeek3Position = userPosition.Week3Place ?? 0, UserFinalPosition = userPosition.FinalPlace ?? 0 }; return(this.View(vm)); }
public async Task <IActionResult> Results([FromQuery] string token) { var generatedQuiz = await _dbContext.UserQuizzes .Where(e => e.Tag == token) .Include(e => e.SourceQuiz) .ThenInclude(e => e.QuizBlocks) .ThenInclude(e => e.Question) .Include(e => e.SourceQuiz) .ThenInclude(e => e.QuizBlocks) .ThenInclude(e => e.Answers) .Include(e => e.UserAnswers) .FirstOrDefaultAsync().ConfigureAwait(false); if (generatedQuiz == null) { return(StatusCode(404, $"Тест с заданным идентификатором ({token}) не найден.")); } var generatedQuizIsEnded = DateTime.Now > generatedQuiz.StartTime.Add(TimeSpan.FromSeconds(generatedQuiz.SourceQuiz.TotalTimeSecs)) || generatedQuiz.IsEnded; if (!generatedQuizIsEnded) { return(RedirectToAction("QuizProcess", new { token })); } if (!generatedQuiz.IsEnded) { generatedQuiz.IsEnded = true; generatedQuiz.EndTime = generatedQuiz.StartTime.AddSeconds(generatedQuiz.SourceQuiz.TotalTimeSecs); _dbContext.UserQuizzes.Update(generatedQuiz); await _dbContext.SaveChangesAsync().ConfigureAwait(false); } var model = new TestResultsViewModel(); model.TestTitle = generatedQuiz.SourceQuiz.Title; model.StartTime = generatedQuiz.StartTime; model.CorrectAnswersCount = 0; if (generatedQuiz.SourceQuiz.MaxQuizBlocksCount > 0 && generatedQuiz.SourceQuiz.MaxQuizBlocksCount <= generatedQuiz.SourceQuiz.QuizBlocks.Count) { if (generatedQuiz.SourceQuiz.ShowResultsToUser) { model.QuizBlocks = TranslateSessionResultModel(generatedQuiz).ToList(); var tempQuiz = Translation.Translate(generatedQuiz); tempQuiz = CommonHelpers.ShuffleQuizData(tempQuiz); var quizBlockIds = tempQuiz.SourceQuiz.QuizBlocks.Take(tempQuiz.SourceQuiz.MaxQuizBlocks).Select(e => e.Id).ToList(); model.QuizBlocks = model.QuizBlocks.Where(e => quizBlockIds.Contains(e.BlockId)).ToList(); } model.QuestionCount = generatedQuiz.SourceQuiz.MaxQuizBlocksCount; } else { model.QuestionCount = generatedQuiz.SourceQuiz.QuizBlocks.Count; } foreach (var quizBlock in generatedQuiz.SourceQuiz.QuizBlocks) { var quizUserAnswer = generatedQuiz.UserAnswers.FirstOrDefault(e => e.QuizBlockId == quizBlock.Id); if (quizUserAnswer == null) { continue; } if (CommonHelpers.CheckQuizAnswer(quizBlock, quizUserAnswer)) { model.CorrectAnswersCount++; } } return(View(model)); }