public static async Task <Model.SubjectLarge> GetSubject(uint id) { string url = string.Format("subject/{0}?responseGroup=large", id); using (HttpResponseMessage response = await APIclient.GetAsync(url)) { try { response.EnsureSuccessStatusCode(); string response_body = await response.Content.ReadAsStringAsync(); Model.SubjectLarge subject = JsonConvert.DeserializeObject <Model.SubjectLarge>(response_body); return(subject); } catch (HttpRequestException http_exception) { if (response.StatusCode == HttpStatusCode.NotFound) { throw new WebException(http_exception.Message); } else { throw; } } catch (WebException) { throw; } } }
private void ProgressBtnClick(object sender, RoutedEventArgs e) { Model.Episode item = (Model.Episode)(sender as FrameworkElement).DataContext; Model.SubjectLarge subject = (Model.SubjectLarge)DataContext; int offset = subject.eps_offset; int index = (item.sort == "…") ? 0 : Convert.ToInt16(item.sort); SubjectContentCtrl.Content = subject_episodes; subject_episodes.EpisodeList.ScrollToVerticalOffset((index - offset) * 40); }
public Subject() { subject = new Model.SubjectLarge(); subject_summary = new SubjectSummary(); subject_episodes = new SubjectEpisodes(); subject_characters = new SubjectCharacters(); subject_staff = new SubjectStaff(); subject_comment = new SubjectComment(); InitializeComponent(); SubjectContentCtrl.Content = subject_summary; }
private async void ListViewCollectionsSelectedIndexChanged(object sender, EventArgs e) { if (subject_list == null) { return; } SubjectControl.DataContext = null; SubjectControl.Reset(); SubjectControl.subject = null; SubjectControl.buttonSummary.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); var index = ListViewCollections.SelectedIndex; if (index == -1) { return; } Model.SubjectLarge subject = new Model.SubjectLarge(); try { subject = await Retry.Do(() => ApiHelper.GetSubject(subject_list[index].subject_id), TimeSpan.FromSeconds(3)); } catch (WebException web_exception) { Console.WriteLine(web_exception.Message); return; } SubjectControl.DataContext = subject; SubjectControl.subject = subject; Model.SubjectProgress subject_progress = new Model.SubjectProgress(); try { subject_progress = await Retry.Do(() => ApiHelper.GetProgress(Settings.Default.UserID, subject.id), TimeSpan.FromSeconds(3)); } catch (WebException web_exception) { Console.WriteLine(web_exception.Message); } catch (AuthorizationException authorization_exception) { Console.WriteLine(authorization_exception.Message); } if (subject_progress != null && subject_progress.eps != null) { foreach (var ep in subject_progress.eps) { foreach (var ep_src in subject.eps) { if (ep.id == ep_src.id) { ep_src.ep_status = ep.status.id; break; } } } } subject.eps_filter(); return; }