public async Task <ScaniaRestaurant> GetByRestaurantId(int restaurantId, DateTime?date = null) { var restaurant = _restaurants.GetById(restaurantId); var menu = await restaurant.GetMenu(); var result = ScaniaRestaurantConverter.ConvertFrom(restaurant, menu); if (date.HasValue) { CultureInfo cul = CultureInfo.CurrentCulture; int weekNum = cul.Calendar.GetWeekOfYear( date.Value, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday); var week = result.Weeks.FirstOrDefault(m => m.WeekNumber == weekNum); if (week != null) { var dayMenu = week.Menus.FirstOrDefault(m => m.Date == date); if (dayMenu != null) { week.Menus = new List <ScaniaDay>() { dayMenu }; result.Weeks = new List <ScaniaWeek>() { week }; } else { result.Weeks = null; } } else { result.Weeks = null; } } return(result); }
public Restaurant GetById(int id) { return(_restaurants.GetById(id)); }