private void FillPastStreamsDataGridView(VODMasterObject VODList) { _VODList = VODList.data; _pagination = VODList.pagination.cursor; dataGridView2.RowTemplate.Height = 50; var addToDataGridView = new Progress <Tuple <string, string, Bitmap, string> >(value => { dataGridView2.Rows.Add(value.Item1, value.Item2, value.Item3, value.Item4); }); var updateGUIThread = addToDataGridView as IProgress <Tuple <string, string, Bitmap, string> >; Task.Run(() => { foreach (var vod in VODList.data) { Bitmap bitmap2; string thumbnail = vod.thumbnail_url.Replace("%{width}", "300").Replace("%{height}", "300"); if (thumbnail != "") { System.Net.WebRequest request = System.Net.WebRequest.Create(thumbnail); System.Net.WebResponse response = request.GetResponse(); System.IO.Stream responseStream = response.GetResponseStream(); bitmap2 = new Bitmap(responseStream); } else { bitmap2 = new Bitmap(Properties.Resources.replacementIcon); } updateGUIThread.Report(new Tuple <string, string, Bitmap, string>("Download", vod.title, bitmap2, vod.description)); } }); }
/// <summary> /// Fills the datagridview with the VODList /// </summary> /// <param name="VODList">List of VOD objects to fill the datagridview</param> private void FillPastStreamsDataGridView(VODMasterObject VODList) { //Iprogress to update GUI Thread var addToDataGridView = new Progress <StreamDataGridViewValues>(value => { if (value.IsGoodStreamObject) { StreamDataGridView.Rows.Add(value.ButtonText, value.StreamTitle, value.StreamImage, value.StreamDescription); } else { StreamDataGridView.Rows.Add(value.ButtonText, value.StreamTitle, value.StreamImage, value.StreamDescription); NextButton.Visible = false; PreviousButton.Visible = false; } }); var updateGUIThread = addToDataGridView as IProgress <StreamDataGridViewValues>; string videoType = VideoTypeComboBox.Text; try { SharedFunctions.ClearDataGridView(StreamDataGridView); _VODList = VODList.data; _lastPagination = _pagination; _pagination = VODList.pagination.cursor; Task.Run(() => { if (VODList.data.Count != 0) { foreach (var vod in VODList.data) { Bitmap bitmap; string thumbnail = vod.thumbnail_url.Replace("%{width}", "300").Replace("%{height}", "200"); if (thumbnail != "") { bitmap = SharedFunctions.GetBitmapImage(thumbnail); } else { bitmap = new Bitmap(Properties.Resources.replacementIcon); } updateGUIThread.Report(new StreamDataGridViewValues("Download", vod.title, bitmap, vod.description, true)); } } else { updateGUIThread.Report(new StreamDataGridViewValues("No videos", "No videos under " + videoType + ". Please click Apply to reset the list with a new Video Type or pick a new streamer.", new Bitmap(Properties.Resources.RedX), "", false)); } }); } catch (NullReferenceException e) { Console.WriteLine(e.Message); updateGUIThread.Report(new StreamDataGridViewValues("No videos", "No more videos under " + videoType + ". Please click Apply to reset the list.", new Bitmap(Properties.Resources.RedX), "", false)); } }