RadioDld.FindNew.InitEpisodeListThread C# (CSharp) Method

InitEpisodeListThread() private static method

private static InitEpisodeListThread ( int progid ) : void
progid int
return void
        private static void InitEpisodeListThread(int progid)
        {
            try
            {
                List<string> episodeExtIDs = Model.Programme.GetAvailableEpisodes(progid, true);

                if (episodeExtIDs != null)
                {
                    foreach (string episodeExtId in episodeExtIDs)
                    {
                        int? epid = null;

                        epid = Model.Episode.FetchInfo(progid, episodeExtId);

                        if (epid == null)
                        {
                            continue;
                        }

                        Model.Episode.UpdateInfoIfRequired(epid.Value);

                        lock (episodeListThreadLock)
                        {
                            if (!ReferenceEquals(Thread.CurrentThread, episodeListThread))
                            {
                                return;
                            }

                            if (EpisodeAdded != null)
                            {
                                EpisodeAdded(epid.Value);
                            }
                        }
                    }
                }
            }
            catch (ProviderException provExp)
            {
                if (MessageBox.Show("There was an unknown error encountered fetching the list of available episodes." + Environment.NewLine + Environment.NewLine + "Would you like to send an error report to NerdoftheHerd.com to help improve the " + provExp.ProviderName + " provider?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
                {
                    ErrorReporting report = provExp.BuildReport();
                    report.SendReport();
                }

                return;
            }
        }