Beispiel #1
0
        private static WeekMenu CreateTestWeekMenu(DateOnly date)
        {
            var menu1 = new TodayMenu(date)
            {
                Breakfast = new Menu(MenuType.Breakfast)
                {
                    Menus        = new[] { "aaa", "bbb", "ccc", "dddd" },
                    SpecialMenus = new[] { "aaa", "bbb", "ccc", "dddd" }
                },
                Lunch = new Menu(MenuType.Breakfast)
                {
                    Menus        = new[] { "aaa", "bbb", "ccc", "dddd" },
                    SpecialMenus = new[] { "aaa", "bbb", "ccc", "dddd" }
                },
                Dinner = new Menu(MenuType.Breakfast)
                {
                    Menus        = new[] { "aaa", "bbb", "ccc", "dddd" },
                    SpecialMenus = new[] { "aaa", "bbb", "ccc", "dddd" }
                }
            };

            var menu2 = menu1 with
            {
                Date  = date.AddDays(1),
                Lunch = new Menu(MenuType.Breakfast)
                {
                    Menus = new[] { "aaa", "bbb" }
                }
            };

            return(new WeekMenu(new[] { menu1, menu2 }));
        }
    }
Beispiel #2
0
    public static IReadOnlyCollection <TodayMenu> ParseAllDayMenu(HtmlDocument html)
    {
        try
        {
            var table = html.DocumentNode.SelectSingleNode(@"//table[@id='user-table']");

            var dates      = table.SelectNodes(@"./tr/th").Skip(1).GetEnumerator();
            var menus      = table.SelectNodes(@"./tbody/tr");
            var breakfasts = menus[0].Elements("td").GetEnumerator();
            var lunchs     = menus[1].Elements("td").GetEnumerator();
            var dinners    = menus[2].Elements("td").GetEnumerator();

            var weekMenu = new List <TodayMenu>();
            while (dates.MoveNext())
            {
                var breakfast = breakfasts.MoveNext();
                var lunch     = lunchs.MoveNext();
                var dinner    = dinners.MoveNext();

                var date      = ParseDateText(dates.Current.InnerText);
                var todayMenu = new TodayMenu(date)
                {
                    Breakfast = breakfast ? ParseMenu(MenuType.Breakfast, breakfasts.Current) : new Menu(MenuType.Lunch),
                    Lunch     = lunch ? ParseMenu(MenuType.Lunch, lunchs.Current) : new Menu(MenuType.Lunch),
                    Dinner    = dinner ? ParseMenu(MenuType.Dinner, dinners.Current) : new Menu(MenuType.Dinner),
                };
                weekMenu.Add(todayMenu);
            }

            return(weekMenu);
        }
        catch (Exception e)
        {
            throw new MenuParseException("Faild to parse menu html", e);
        }
    }