public async Task UpdateMealOptionSelected(MealOptionSelected MealOptionSelected = MealOptionSelected.None) { if (MealOptionSelectedPreviously != MealOptionSelected.None && MealOptionSelectedPreviously == MealOptionSelected) { return; } this.FullMealsStyle = this.LabelStyleDefault; this.ShakesStyle = this.LabelStyleDefault; this.ProMealsStyle = this.LabelStyleDefault; this.FullMealsImage = TextResources.icon_full_meals_gray; this.ShakesImage = TextResources.icon_shakes_gray; this.ProMealsImage = TextResources.icon_pro_meals_gray; switch (MealOptionSelected) { case MealOptionSelected.FullMeals: this.FullMealsStyle = this.LabelStyleSelected; this.FullMealsImage = TextResources.icon_full_meals; break; case MealOptionSelected.Shakes: this.ShakesStyle = this.LabelStyleSelected; this.ShakesImage = TextResources.icon_shakes; break; case MealOptionSelected.ProMeals: this.ProMealsStyle = this.LabelStyleSelected; this.ProMealsImage = TextResources.icon_pro_meals; break; } MealOptionSelectedPreviously = MealOptionSelected; await this.GetData(MealOptionSelected); }
private async Task GetData(MealOptionSelected mealOptionSelected) { if (mealOptionSelected == MealOptionSelected.None) { return; } var mealPlanDetail = (await this.GetAsync()).FirstOrDefault(l => l.MealTitleCompare.ToLower().Contains(mealOptionSelected.ToString().ToLower())); var accordionSources = new List <AccordionMultiViewSource>(); var mealPlanOptionDetails = mealPlanDetail?.MealPlanOptionDetails.OrderBy(m => m.DisplaySequence).ThenBy(m => m.ID).ToList() ?? new List <MealPlanOptionDetail>(); await this.SetMealHeaderImage(mealPlanDetail); foreach (var mealPlanOptionDetail in mealPlanOptionDetails) { switch (mealPlanDetail?.ViewType) { case "list": accordionSources.Add(await SetupMealPlanOptionList(mealPlanOptionDetail, mealPlanOptionDetail.MealPlanOptionListDetails.OrderBy(m => m.DisplaySequence) .ThenBy(m => m.ID).ToList(), mealPlanDetail.ViewType)); break; case "grid": accordionSources.Add(await SetupMealPlanOptionGrid(mealPlanOptionDetail, mealPlanOptionDetail.MealPlanOptionGridDetails.OrderBy(m => m.DisplaySequence) .ThenBy(m => m.ID).ToList(), mealPlanDetail.ViewType)); break; } } this.AccordionSources = accordionSources; }