public ViewRestaurantSpecs(Restaurant restaurant) { this.InitializeComponent(); Title = restaurant.Name; NavigationPage.SetBackButtonTitle(this, ""); _restaurant = restaurant; Device.BeginInvokeOnMainThread(() => { }); Loading.IsVisible = false; Loading.IsRunning = false; SpecsPanel.IsVisible = true; lvFoodSpecials.ItemTapped += async(sender, e) => { ((ListView)sender).SelectedItem = null; var flattenedSpec = (FoodSpecial)e.Item; var spec = await FoodSpecialService.GetSpecsFromStorageAsync(); await Navigation.PushAsync(new ManageFoodSpecial(spec.Single(x => x.SpecialId == flattenedSpec.SpecialId))); }; }
async Task PopulateList(Restaurant restaurant) { var specs = await FoodSpecialService.GetSpecsFromStorageAsync(); var foodSpecialsFlat = GetFlattenedFoodSpecials(specs.Where(x => x.RestaurantId == restaurant.Id)); var groupings = foodSpecialsFlat .GroupBy(fs => fs.DaysOfWeek.First()) .OrderBy(g => g.Key) .Select(x => new Grouping <DayOfWeek, FoodSpecial>(x.Key, x)); lvFoodSpecials.ItemsSource = new ObservableCollection <Grouping <DayOfWeek, FoodSpecial> >(groupings); lvFoodSpecials.IsGroupingEnabled = true; }
/// <summary> /// Sets the values of the readonly fields /// </summary> async Task SetFields() { var spec = await FoodSpecialService.GetSpecsFromStorageAsync(); _spec = spec.Single(x => x.SpecialId == _spec.SpecialId); RestaurantName.Text = _spec.Restaurant.Name; lblTitle.Text = _spec.Title; if (_spec.Description != null) { lblDescription.Text = _spec.Description; } else { lblDescription.Text = "(No description)"; lblDescription.TextColor = Color.Gray; } lblDays.Text = string.Join(", ", _spec.DaysOfWeek.Select(x => x.ToString())); //Comma deliminate days of week lblHours.Text = _spec.Hours; }