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