Example #1
0
        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;
                }
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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;
        }
Example #4
0
        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;
        }