コード例 #1
0
        //private void LoadPizzaPage()
        //{
        //    var currentMainPage = (Application.Current.MainPage as MasterDetailPage);
        //    currentMainPage.Detail = new NavigationPage(new PizzaPage());
        //    Application.Current.MainPage = currentMainPage;
        //}

        private void LoadPreviousDrinkSelections(DrinkCategory categoryDisplayed)
        {
            //Get drink Order items and load to current screen category.
            //Will load to DrinkDisplayDictionary with key of categoryDisplayed.
            var currentOrder = OrderManager.Instance.OrderInProgress;

            foreach (var orderItem in currentOrder.OrderItems)
            {
                if (orderItem is Drink)
                {
                    var drinkAlreadyOnTempOrder = (Drink)orderItem;

                    //Save items to Dictionary that is on the current order.
                    var drinkKey = Tuple.Create <DrinkType, DrinkSize>(drinkAlreadyOnTempOrder.DrinkType, drinkAlreadyOnTempOrder.DrinkSize);
                    if (DrinksOnTempOrderDictionary.ContainsKey(drinkKey))
                    {
                        DrinksOnTempOrderDictionary[drinkKey] = drinkAlreadyOnTempOrder;
                    }
                    else
                    {
                        DrinksOnTempOrderDictionary.Add(drinkKey, drinkAlreadyOnTempOrder);
                    }

                    //if drink on current order is in category displayed, then we'll want
                    //to show what the order already has.
                    if (drinkAlreadyOnTempOrder.DrinkCategory == categoryDisplayed)
                    {
                        if (!DrinkDisplayDictionary.ContainsKey(categoryDisplayed))
                        {
                            LoadDrinkCategoryForDisplay(categoryDisplayed);
                        }

                        //Populate current drink items displayed with item count of
                        //drinks already on the order.
                        var drinksDisplayed = DrinkDisplayDictionary[categoryDisplayed];
                        foreach (var drinkDisplayItem in drinksDisplayed)
                        {
                            foreach (var drink in drinkDisplayItem.RowDrinks)
                            {
                                if (drink.DrinkType == drinkAlreadyOnTempOrder.DrinkType &&
                                    drink.DrinkSize == drinkAlreadyOnTempOrder.DrinkSize)
                                {
                                    drink.ItemCount = drinkAlreadyOnTempOrder.ItemCount;
                                }
                            }

                            //if (saveDrinkTypeToScrollTo == drinkDisplayItem.Drink.DrinkType)
                            //{
                            //    drinkDisplayIndexToScrollTo = drinkDisplayItem.DrinkDisplayItemIndex;
                            //}
                        }
                    }
                }
            }
        }
コード例 #2
0
        private void LoadDrinkCategoryForDisplay(DrinkCategory newDrinkCategory)
        {
            List <DrinkDisplayRow> rows = new List <DrinkDisplayRow>();

            try
            {
                if (DrinkDisplayDictionary.ContainsKey(newDrinkCategory))
                {
                    rows = DrinkDisplayDictionary[newDrinkCategory];
                }
                else
                {
                    List <Drink> drinksForDisplay = MenuDrinks.GetDrinksList(newDrinkCategory);
                    if (newDrinkCategory == DrinkCategory.DraftBeer)
                    {
                        var pints    = new List <Drink>();
                        var pitchers = new List <Drink>();
                        foreach (var drink in drinksForDisplay)
                        {
                            if (drink.DrinkSize == DrinkSize.Pint)
                            {
                                pints.Add(drink);
                            }
                            else
                            {
                                pitchers.Add(drink);
                            }
                        }
                        rows = GetDrinkDisplayRows(pints);
                        rows.AddRange(GetDrinkDisplayRows(pitchers));
                    }
                    else
                    {
                        rows = GetDrinkDisplayRows(drinksForDisplay);
                    }

                    DrinkDisplayDictionary.Add(newDrinkCategory, rows);
                }

                if (newDrinkCategory == DrinkCategory.DraftBeer)
                {
                    DrinksGroups = new ObservableCollection <DrinksGroup>(ConvertBeerRowsToGroups(rows));
                }
                else
                {
                    DrinkDisplayItems = new ObservableCollection <DrinkDisplayRow>(rows);
                }
            }
            catch (Exception ex)
            {
                var error = ex.InnerException;
                throw;
            }
        }