private async Task GetSchedule(Semester semester) { var coursesRequest = await NPAPI.GetCourses(searchForIdTextBox.Text, semester.Year, semester.SemesterNumber); if (coursesRequest.Success) { //Fill scheduleGrid FillCoursesIntoGrid(coursesRequest.Data); //Update result label searchResultLabelTextBlock.Text = name + " " + semester; //Save to roaming settings var coursesJson = JsonConvert.SerializeObject(coursesRequest.Data); var semesterJson = JsonConvert.SerializeObject(semester); SaveToSettings(localSettings, "courses", coursesJson.ToString()); SaveToSettings(localSettings, "semester", semesterJson.ToString()); //Send GA Event bool searchSelf = roamingSettings.Values.ContainsKey("id") && roamingSettings.Values["id"] as string == searchForIdTextBox.Text; App.Current.GATracker.SendEvent("Get Curriculum", semester.ToString(), searchForIdTextBox.Text, searchSelf ? 0 : 1); } else { if (coursesRequest.Error == NPAPI.RequestResult.ErrorType.Unauthorized) { //Send GA Event App.Current.GATracker.SendEvent("Session", "Session Expired", null, 0); //Try background login var result = await NPAPI.BackgroundLogin(); if (result.Success) { await GetSchedule(semester); } else { Frame.Navigate(typeof(LoginPage)); } } else { await new MessageDialog(coursesRequest.Message).ShowAsync(); } } }
private async Task GetSchedule(Semester semester) { try { var courses = await NPAPI.GetCourses(searchForIdTextBox.Text, semester.Year, semester.SemesterNumber); //Fill scheduleGrid FillCoursesIntoGrid(courses); //Update result label searchResultLabelTextBlock.Text = name + " " + semester; //Show searchAppBarToggleButton //searchAppBarToggleButton.Visibility = Visibility.Visible; //Save to roaming settings var coursesJson = JsonConvert.SerializeObject(courses); var semesterJson = JsonConvert.SerializeObject(semester); SaveToSettings(localSettings, "courses", coursesJson.ToString()); SaveToSettings(localSettings, "semester", semesterJson.ToString()); //Send GA Event bool searchSelf = roamingSettings.Values.ContainsKey("id") && roamingSettings.Values["id"] as string == searchForIdTextBox.Text; App.Current.GATracker.SendEvent("Get Curriculum", semester.ToString(), searchForIdTextBox.Text, searchSelf ? 0 : 1); } catch (NPAPI.SessionExpiredException) { //Send GA Event App.Current.GATracker.SendEvent("Session", "Session Expired", null, 0); //Try background login try { await NPAPI.BackgroundLogin(); await GetSchedule(semester); } catch { Frame.Navigate(typeof(LoginPage)); } } catch (Exception e) { await new MessageDialog(e.Message, "錯誤").ShowAsync(); } }