void task_Finished(BackgroundOperationBase sender, ChannelDay page) { var task = (BackgroundFunction <string>)sender; var executed = System.Threading.Interlocked.Increment(ref _executedTasks); _op.UserText = page.Channel.DisplayName; _op.Progress = (float)executed / _totalTasks; if (task.Completed) { page.SetHtml(task.Result); } else { } if (_executedTasks == _totalTasks) { _ewh.Set(); } }
private void OnDetailsReceive(BackgroundOperationBase opbase) { var op = (BackgroundFunction <DetailsInfo>)opbase; if (op.ExceptionThrown) { DetailsVisible = false; return; } details = op.Result; pnlReview.Text = details.ReviewText; tabTrailer.Visibility = details.HasTrailer.AsVisibility(); WriteTrailerHtml(); if (details.ImageUrl != null && !imageLoaded) { imageLoaded = true; // picImage.Margin = new Thickness(2); lblLoadingImage.Visibility = System.Windows.Visibility.Visible; var s = new System.Windows.Media.Imaging.BitmapImage(); s.BeginInit(); s.CreateOptions = BitmapCreateOptions.IgnoreColorProfile; s.UriCachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.CacheIfAvailable); s.DownloadCompleted += new EventHandler(s_DownloadCompleted); s.UriSource = new Uri(details.ImageUrl); s.EndInit(); picImage.ImageFailed += new EventHandler <ExceptionRoutedEventArgs>(picImage_ImageFailed); picImage.Source = s; } detailsLoaded = true; }
void loadProgramsOperation_Finished(BackgroundOperationBase op_base) { var op = (BackgroundUIFunction <IEnumerable <TvProgram> >)op_base; if (op.Aborted) { return; } if (op.ExceptionThrown) { App.AppServices.ErrorReporter.ShowErrorBox("Impossibile caricare la guida TV.", op.Exception, this.AsWin32Window()); pnlUpdating.Visibility = System.Windows.Visibility.Collapsed; pnlPrograms.Visibility = System.Windows.Visibility.Visible; return; } pnlPrograms.BeginInit(); pnlPrograms.Items.Clear(); var progs = op.Result; var now = DateTime.Now; if (date.Date == DateTime.Today) { DateTime maxEndDate = now.Date.AddDays(1).AddHours(2); progs = progs.Where(x => ( x.EndDate.HasValue ? (x.EndDate >= now) : ((x.Date - now).TotalMinutes > -30) ) && ( x.EndDate.HasValue ? x.EndDate < maxEndDate : x.Date < maxEndDate ) ); } //if (!ShowAllPrograms) progs = progs.Where(x => x is Movie); foreach (var item in progs) { // even = !even; var u = new ProgramControl(item); var m = new ListBoxItem(); m.Foreground = Brushes.Black; // m.Background = Brushes.Green; m.Content = u; this.pnlPrograms.Items.Add(m); } // pnlPrograms.SelectedIndex = -1; pnlPrograms.EndInit(); pnlUpdating.Visibility = System.Windows.Visibility.Collapsed; pnlPrograms.Visibility = System.Windows.Visibility.Visible; }