Esempio n. 1
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;
            }
        }
Esempio n. 2
0
 private static string makeTitle(ProgramResponseInstance pri)
 {
     // titles is supposed to be mandatory
     if (pri.titles != null && pri.titles.Count == 1)
     {
         ProgramResponseInstance.Title t = pri.titles[0];
         return t.title120;
     } else {
         Logger.Warn("Could not find title for program: {0}", pri.programID);
         return "Unknown title";
     }
 }
Esempio n. 3
0
 private static string makeEpisodeNumberDisplay(ProgramResponseInstance pri)
 {
     string en = "";
     if (pri.metadata != null && pri.metadata.Count > 0) {
         // just take the first one
         ProgramResponseInstance.Gracenote tri = pri.metadata[0].Gracenote;
         en = String.Format("S{0:D2}E{1:D2}", tri.season, tri.episode);
     }
     return en;
 }
Esempio n. 4
0
 private static int makeSeriesNumber(ProgramResponseInstance pri)
 {
     int sn = 0;
     if (pri.metadata != null && pri.metadata.Count > 0) {
         // just take the first metadata
         ProgramResponseInstance.Gracenote tri = pri.metadata[0].Gracenote;
         sn = tri.season;
     }
     return sn;
 }
Esempio n. 5
0
 private static int makeEpisodeNumber(ProgramResponseInstance pri)
 {
     int en = 0;
     if (pri.metadata != null && pri.metadata.Count > 0) {
         // just take the first one
         ProgramResponseInstance.Gracenote tri = pri.metadata[0].Gracenote;
         en = tri.episode;
     }
     return en;
 }
Esempio n. 6
0
        private static string[] makeDirectors(ProgramResponseInstance pri)
        {
            List<string> directors = new List<string>();

            if (pri.crew == null) {
                return directors.ToArray();
            }
            foreach (ProgramResponseInstance.Crew crew in pri.crew) {
                if (crew.role.ToLower().StartsWith("direct")) {
                    directors.Add(crew.name);
                }
            }
            return directors.ToArray();
        }
Esempio n. 7
0
        private static string makeDescription(ProgramResponseInstance pri)
        {
            if (pri.descriptions != null) {
                if (pri.descriptions.description1000 != null && pri.descriptions.description1000.Count > 0) {
                    var ldesc = pri.descriptions.description1000;
                    return ldesc[0].description;
                } else if (pri.descriptions.description1000 != null && pri.descriptions.description1000.Count > 0) {
                    var ldesc = pri.descriptions.description1000;
                    return ldesc[0].description;
                } else {
                    return "";
                }

            } else {
                // no description
                return "";
            }
        }
Esempio n. 8
0
        private static string makeCategory(ProgramResponseInstance pri)
        {
            string cat = "";

            if (pri.genres == null) {
                return cat;
            }
             	foreach (string genre in pri.genres) {
                cat += genre;
                cat += ",";
             	}

            if (cat.Length > 0) {
                // remove trailing comma
                cat = cat.Remove(cat.Length - 1);
            }

            return cat;
        }
Esempio n. 9
0
        private static string[] makeActors(ProgramResponseInstance pri)
        {
            List<string> actors = new List<string>();

            if (pri.cast == null) {
                return actors.ToArray();
            }
            foreach (ProgramResponseInstance.Cast cast in pri.cast) {
                actors.Add(cast.name);
            }
            return actors.ToArray();
        }