示例#1
0
        public static List <GuideProgram> makeGuidePrograms(
            List <ProgramResponseInstance> lpri,
            SchedulesResponse sr)
        {
            // make a map for program reference
            Dictionary <string, ProgramResponseInstance> dpri = new Dictionary <string, ProgramResponseInstance>();

            foreach (ProgramResponseInstance pri in lpri)
            {
                dpri.Add(pri.programID, pri);
            }

            List <GuideProgram> lgp = makeGuidePrograms(dpri, sr);

            return(lgp);
        }
示例#2
0
        public static GuideProgram makeGuideProgram(
            SchedulesResponse sr,
            SchedulesResponse.Program srp,
            ProgramResponseInstance pri)
        {
            try {
                var gp = new GuideProgram();


                gp.Title       = makeTitle(pri);
                gp.SubTitle    = pri.episodeTitle150;
                gp.Description = makeDescription(pri);
                DateTime startTime = DateTime.Parse(srp.airDateTime);
                gp.StartTime            = startTime;
                gp.StopTime             = startTime.AddSeconds(srp.duration);
                gp.EpisodeNumber        = makeEpisodeNumber(pri);
                gp.SeriesNumber         = makeSeriesNumber(pri);
                gp.EpisodeNumberDisplay = makeEpisodeNumberDisplay(pri);
                gp.Rating = makeRatings(srp);
                // srp.Premiere is for miniseries or movies
                if (srp.premiere.HasValue)
                {
                    gp.IsPremiere = (true == srp.premiere.Value);
                }
                // so use srp.new to determine if it's a repeat... srp.repeat is only for sporting events
                gp.IsRepeat = true;                  // default to a repeat
                if ([email protected])
                {
                    gp.IsRepeat = [email protected];
                }
                gp.PreviouslyAiredTime = DateTime.Parse(srp.airDateTime);
                gp.Actors    = makeActors(pri);
                gp.Category  = makeCategory(pri);
                gp.Directors = makeDirectors(pri);

                return(gp);
            } catch (Exception ex) {
                Logger.Error("Error while creating guide program instances: {0}\n{1}", ex.Message, ex.StackTrace);
                throw;
            }
        }
示例#3
0
        public static List <GuideProgram> makeGuidePrograms(
            Dictionary <string, ProgramResponseInstance> dpri,
            SchedulesResponse sr)
        {
            List <String>       errors = new List <String>();
            List <GuideProgram> lgp    = new List <GuideProgram>();

            if (sr.programs != null)
            {
                foreach (SchedulesResponse.Program srp in sr.programs)
                {
                    if (dpri.ContainsKey(srp.programID))
                    {
                        try {
                            GuideProgram gp = makeGuideProgram(sr, srp, dpri[srp.programID]);
                            lgp.Add(gp);
                        } catch (Exception ex) {
                            string json = JsonConvert.SerializeObject(srp);
                            errors.Add(json);
                            Logger.Info("Got an error but continuing \n{0}", ex.StackTrace);
                        }
                    }
                }
            }

            if (errors.Count > 0)
            {
                Logger.Error("There were {0} programs that could not be processed.  Continuing without them.", errors.Count);
                foreach (string json in errors)
                {
                    Logger.Error("Program failed in factory:\n{0}", json);
                }
            }

            return(lgp);
        }