public LunchTable GetLunchTable()
 {
     var lunchTable = new LunchTable();
     for(byte x = 1; x < 6; x++)
     {
         lunchTable.Days.Add(GetLunchDay(x));
     }
     return lunchTable;
 }
Ejemplo n.º 2
0
 static void Main(string[] args)
 {
     var lunchTable = new LunchTable();
     using (var client = new WebClient())
     {
         for (byte x = 1; x < 6; x++)
         {
             var page = client.DownloadString(SourceUrl + string.Format("?addGP[weekday]={0}", x));
             var doc = new HtmlDocument();
             doc.LoadHtml(page);
             var lunchDay = new LunchDay{
                                            Date = doc.DocumentNode.SelectSingleNode(string.Format(DivClass, DateClass)).InnerText
                                        };
             var offers = doc.DocumentNode.SelectNodes(string.Format(DivClass, OfferClass));
             foreach(var offer in offers)
             {
                 var menuDescriptions = offer.ChildNodes.Where(d => d.Attributes.Contains("class") &&
                                                                    d.Attributes["class"].Value.Contains("menu-description")
                                                              ).ToList();
                 if (menuDescriptions.Count > 0)
                 {
                     lunchDay.Menus.Add(new Menu
                                    {
                                        Title = offer.ChildNodes.Single(d => d.Attributes.Contains("class") &&
                                                                             d.Attributes["class"].Value.Contains
                                                                                 (TitleClass)).InnerText.Trim(),
                                        Description =
                                            offer.ChildNodes.Single(d => d.Attributes.Contains("class") &&
                                                                         d.Attributes["class"].Value.Contains(
                                                                             DescriptionClass)).
                                            InnerText.Replace("\n\n", ". ").Replace("\n", " ").Trim(),
                                        InternalPrice =
                                            float.Parse(
                                                offer.ChildNodes.Single(d => d.Attributes.Contains("class") &&
                                                                             d.Attributes["class"].Value.Contains
                                                                                 (DescriptionClass)).
                                                    SelectNodes(
                                                        string.Format(@"//span[@class=""{0}""]", PriceItemClass))
                                                    [0].InnerText.Replace(
                                                        "INT", "").Trim()),
                                        ExternalPrice =
                                            float.Parse(
                                                offer.ChildNodes.Single(d => d.Attributes.Contains("class") &&
                                                                             d.Attributes["class"].Value.Contains
                                                                                 (DescriptionClass)).
                                                    SelectNodes(
                                                        string.Format(@"//span[@class=""{0}""]", PriceItemClass))
                                                    [1].InnerText.Replace(
                                                        "EXT", "").Trim())
                                    });
                 }
             }
         }
     }
 }