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; }
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; }
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; } }
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; }