示例#1
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;
        }
示例#2
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;
        }
示例#3
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;
            }
        }
示例#4
0
        private static string makeRatings(SchedulesResponse.Program srp)
        {
            string rating = "";

            if (srp.ratings != null && srp.ratings.Count > 0) {
                // just take the first one
                rating = srp.ratings[0].code;
            }
            return rating;
        }