/// <summary> /// Load the days for catch up /// </summary> /// <param name="parentCategory"></param> /// <returns></returns> public static List <Category> LoadCatchUpDays(Category parentCategory) { var doc = new HtmlDocument(); var results = new List <Category>(); var webRequest = (HttpWebRequest)WebRequest.Create(Properties.Resources._4OD_CatchUpUrl); var webResponse = (HttpWebResponse)webRequest.GetResponse(); if (webResponse.StatusCode != HttpStatusCode.OK) { throw new OnlineVideosException("Unable to retrieve response for 4OD Catch Up Category from " + Properties.Resources._4OD_CatchUpUrl + ", received " + webResponse.StatusCode.ToString()); } doc.Load(webResponse.GetResponseStream()); // Load all the days from the page foreach (HtmlNode node in doc.GetElementsByTagName("a").Where(x => x.GetAttribute("href").StartsWith("/programmes/4od/catchup/date/"))) { var result = new ExtendedCategory(); var dateParts = node.GetAttribute("href").Replace("/programmes/4od/catchup/date/", "").Split('/'); var videoDate = new DateTime(Convert.ToInt32(dateParts[0]), Convert.ToInt32(dateParts[1]), Convert.ToInt32(dateParts[2])); result.Name = parentCategory.Name + " - " + videoDate.ToString("dd MMMM yyyy"); result.SortValue = videoDate.ToString("yyyyMMdd"); result.Other = "U~" + parentCategory.CategoryId() + "~" + Properties.Resources._4OD_RootUrl + node.GetAttribute("href"); result.Thumb = parentCategory.Thumb; result.HasSubCategories = false; result.ParentCategory = parentCategory; results.Add(result); } return(results); }
public bool Is(string category, params string[] subcategories) { if (category != Category) { return(false); } if (subcategories.Length == 0) { return(true); } if (!ExtendedCategory.Contains(' ')) { return(subcategories[0] == ExtendedCategory); } var exts = ExtendedCategory.Split(' '); return(subcategories.All(c => exts.Contains(c))); }