/// <summary> /// Navigated to UserControl event /// </summary> public override async void OnNavigatedTo(NavigationContext navigationContext) { if (!(await TryGetTestResultsList())) { if (await _tokenHandler.TryRefreshTokenAsync()) { await TryGetTestResultsList(); } else { MessageBox.Show(LocalizationService.GetLocalizedValue <string>("TokenExpired")); RegionManager.RequestNavigate(StaticProperties.ContentRegion, "AuthorizationWindow"); } } }
/// <summary> /// navigated to UserControl event /// </summary> /// <param name="navigationContext">key=value vars</param> public override async void OnNavigatedTo(NavigationContext navigationContext) { int editTestId = 0; string editTestIdString; if (navigationContext.Parameters.Count != 0) { editTestIdString = navigationContext.Parameters[nameof(Test.Id)].ToString(); if (!string.IsNullOrWhiteSpace(editTestIdString)) { int.TryParse(editTestIdString, out editTestId); } if (editTestId > 0) { if (!await TryGetTestResultsList(editTestId)) { if (await _tokenHandler.TryRefreshTokenAsync()) { await TryGetTestResultsList(editTestId); } else { MessageBox.Show(LocalizationService.GetLocalizedValue <string>("TokenExpired")); RegionManager.RequestNavigate(StaticProperties.ContentRegion, "AuthorizationWindow"); } } } } }
/// <summary> /// delete test button event /// </summary> /// <param name="testUI">test</param> /// <returns>task</returns> public async Task DeleteTestButton(object testUI) { if (testUI != null) { var test = (testUI as Test); if (!(await TryDeleteTest(test))) { if (await _tokenHandler.TryRefreshTokenAsync()) { await TryDeleteTest(test); } else { MessageBox.Show(LocalizationService.GetLocalizedValue <string>("TokenExpired")); RegionManager.RequestNavigate(StaticProperties.ContentRegion, "AuthorizationWindow"); } } } }
/// <summary> /// Navigated to UserControl event /// </summary> /// <param name="navigationContext">key=value vars</param> public override async void OnNavigatedTo(NavigationContext navigationContext) { // can be implemented in more elegant way, create some local storage service and hangle if user logged in or not string TestIdString = navigationContext.Parameters["TestId"].ToString(); if (int.TryParse(TestIdString, out int testId)) { if (!await TryGetTest(testId)) { if (await _tokenHandler.TryRefreshTokenAsync()) { await TryGetTest(testId); } else { MessageBox.Show(LocalizationService.GetLocalizedValue <string>("TokenExpired")); RegionManager.RequestNavigate(StaticProperties.ContentRegion, "AuthorizationWindow"); } } } }
/// <summary> /// Navigated to UserControl event /// </summary> /// <param name="navigationContext">key=value vars</param> public override async void OnNavigatedTo(NavigationContext navigationContext) { TestResult = null; string TestResultIdString = navigationContext.Parameters["TestResultId"].ToString(); if (!string.IsNullOrWhiteSpace(TestResultIdString) && int.TryParse(TestResultIdString, out int testId)) { if (!await TryGetTestResult(testId)) { if (await _tokenHandler.TryRefreshTokenAsync()) { await TryGetTestResult(testId); } else { MessageBox.Show(LocalizationService.GetLocalizedValue <string>("TokenExpired")); RegionManager.RequestNavigate(StaticProperties.ContentRegion, "AuthorizationWindow"); } } } }
/// <summary> /// Create test button event, validate test /// </summary> /// <returns>Task</returns> public async Task CreateTestButton() { if (Test.Attempts == 0) { MessageBox.Show(LocalizationService.GetLocalizedValue <string>("AttemptCountError")); return; } if (string.IsNullOrWhiteSpace(Test.Name)) { MessageBox.Show(LocalizationService.GetLocalizedValue <string>("TestNameError")); return; } if (Test.Questions.Count == 0) { MessageBox.Show(LocalizationService.GetLocalizedValue <string>("QuestionCountError")); return; } foreach (var question in Test.Questions) { if (string.IsNullOrWhiteSpace(question.Question)) { MessageBox.Show(LocalizationService.GetLocalizedValue <string>("QuestionNameEmpty")); return; } if (question.Answers.Count < 2) { MessageBox.Show(string.Format(LocalizationService.GetLocalizedValue <string>("AnswerCountError"), question.Question)); return; } int count = 0; foreach (var answer in question.Answers) { if (string.IsNullOrWhiteSpace(answer.Answer)) { MessageBox.Show(string.Format(LocalizationService.GetLocalizedValue <string>("AnswerNameError"), question.Question)); return; } if (answer.IsRight) { count++; } } if (count == 0) { MessageBox.Show(string.Format(LocalizationService.GetLocalizedValue <string>("RightAnswerCountError"), question.Question)); return; } } if (IsTestEditing) { if (await TrySendTest()) { } else { if (await _tokenHandler.TryRefreshTokenAsync()) { await TrySendTest(); } else { MessageBox.Show(LocalizationService.GetLocalizedValue <string>("TokenExpired")); RegionManager.RequestNavigate(StaticProperties.ContentRegion, "AuthorizationWindow"); } } } else { if (await TryUpdateTest()) { } else { if (await _tokenHandler.TryRefreshTokenAsync()) { await TryUpdateTest(); } else { MessageBox.Show(LocalizationService.GetLocalizedValue <string>("TokenExpired")); RegionManager.RequestNavigate(StaticProperties.ContentRegion, "AuthorizationWindow"); } } } }