/// <summary> /// this removes the catigories the indiviula does not want to see /// </summary> /// <param name="str"></param> public void FilterCat(List <string> str) { if (!str.Contains("Combo")) { foreach (CretaceousCombo d in AvailableCombos.ToArray()) { availableCombos.Remove(d); } } if (!str.Contains("Entree")) { foreach (Entree e in AvailableEntrees.ToArray()) { availableEntrees.Remove(e); } } if (!str.Contains("Drink")) { foreach (Drink d in AvailableDrinks.ToArray()) { availableDrinks.Remove(d); } } if (!str.Contains("Side")) { foreach (Side d in AvailableSides.ToArray()) { availableSides.Remove(d); } } }
public void SetAvailableDrink(DrinksPageItem drinkToAdd, DrinkPosition position) { if (drinkToAdd.Clone() is DrinksPageItem newDrink) { newDrink.DrinkPosition = position; AvailableDrinks.RemoveAt((int)position); AvailableDrinks.Insert((int)newDrink.DrinkPosition, newDrink); } LocalDataHandler.SaveTextData("availableDrinks.json", JsonConvert.SerializeObject(AvailableDrinks, Formatting.Indented)); }
public override void Initialize(IConfigurationManager configManager) { base.Initialize(configManager); if (ConfigManager.FindAllComponentsOfType <IBartenderController>().Any() && AvailableDrinks.Any()) { List <String> drinkNames = AvailableDrinks.Select(d => d.Name).ToList(); XmlGrammar grammar = GrammarUtility.CreateGrammarFromList(ConfigManager.GetPathForFile("BartenderGrammar.grxml", GetType()), "DrinkName", drinkNames); Provider = new GrammarProvider(grammar, GrammarUtility.GetGenericTrueFalseGrammar(ConfirmationRuleName, CommandName, new List <String> { "o k" }, new List <String> { "cancel" })); } }
/// <summary> /// Handles form submissions, displays the page content after searching and filtering is applied. /// </summary> public void OnPost() { AvailableCombos = Menu.AvailableCombos; AvailableEntrees = Menu.AvailableEntrees; AvailableSides = Menu.AvailableSides; AvailableDrinks = Menu.AvailableDrinks; if (search != null) { AvailableCombos = AvailableCombos.Where(item => item.ToString().Contains(search, StringComparison.OrdinalIgnoreCase)); AvailableEntrees = AvailableEntrees.Where(item => item.ToString().Contains(search, StringComparison.OrdinalIgnoreCase)); AvailableSides = AvailableSides.Where(item => item.ToString().Contains(search, StringComparison.OrdinalIgnoreCase)); AvailableDrinks = AvailableDrinks.Where(item => item.ToString().Contains(search, StringComparison.OrdinalIgnoreCase)); } if (minimumPrice != null && minimumPrice < maximumPrice) { AvailableCombos = AvailableCombos.Where(item => item.Price >= minimumPrice); AvailableEntrees = AvailableEntrees.Where(item => item.Price >= minimumPrice); AvailableSides = AvailableSides.Where(item => item.Price >= minimumPrice); AvailableDrinks = AvailableDrinks.Where(item => item.Price >= minimumPrice); } if (maximumPrice != null && maximumPrice > minimumPrice) { AvailableCombos = AvailableCombos.Where(item => item.Price <= maximumPrice); AvailableEntrees = AvailableEntrees.Where(item => item.Price <= maximumPrice); AvailableSides = AvailableSides.Where(item => item.Price <= maximumPrice); AvailableDrinks = AvailableDrinks.Where(item => item.Price <= maximumPrice); } if (possibleIngredients.Count > 0) { foreach (string i in possibleIngredients) { AvailableCombos = AvailableCombos.Where(item => !item.Ingredients.Contains(i)); AvailableEntrees = AvailableEntrees.Where(item => !item.Ingredients.Contains(i)); AvailableSides = AvailableSides.Where(item => !item.Ingredients.Contains(i)); AvailableDrinks = AvailableDrinks.Where(item => !item.Ingredients.Contains(i)); } } }
/// <summary> /// Removes a menu item from the appropriate lists /// </summary> /// <param name="item">The item to remove</param> public void RemoveItem(IMenuItem item) { AvalibleMenuItems.Remove(item); if (item is Entree e) { AvalibleEntrees.Remove(e); } else if (item is Side s) { AvailableSides.Remove(s); } else if (item is Drink d) { AvailableDrinks.Remove(d); } else if (item is CretaceousCombo c) { AvailableCombos.Remove(c); } }
/// <summary> /// Removes item from menu lists /// </summary> /// <param name="item">Menu item</param> public void Remove(IMenuItem item) { AvailableMenuItems.Remove(item); if (item is Entree) { AvailableEntrees.Remove(item as Entree); } if (item is Side) { AvailableSides.Remove(item as Side); } if (item is Drink) { AvailableDrinks.Remove(item as Drink); } if (item is CretaceousCombo) { AvailableCombos.Remove(item as CretaceousCombo); } }
public IHotDrink MakeDrink(AvailableDrinks drink, int amount) { return(factories[drink].Prepare(amount)); }
public static int GetIndex(Ingredient ing) => AvailableDrinks.IndexOf(ing.Drink.Brand + "/" + ing.Drink.Name + "," + ing.Drink.Percentage + "%");
/// <summary> /// creates an instance of menu /// </summary> public Menu() { AvailableMenuItem.Add(new JurassicJava()); AvailableMenuItem.Add(new Sodasaurus()); AvailableMenuItem.Add(new Tyrannotea()); AvailableMenuItem.Add(new Water()); AvailableDrinks.Add(new JurassicJava()); AvailableDrinks.Add(new Sodasaurus()); AvailableDrinks.Add(new Tyrannotea()); AvailableDrinks.Add(new Water()); AvailableMenuItem.Add(new Brontowurst()); AvailableMenuItem.Add(new DinoNuggets()); AvailableMenuItem.Add(new Tyrannotea()); AvailableMenuItem.Add(new PrehistoricPBJ()); AvailableMenuItem.Add(new PterodactylWings()); AvailableMenuItem.Add(new SteakosaurusBurger()); AvailableMenuItem.Add(new TRexKingBurger()); AvailableMenuItem.Add(new VelociWrap()); AvailableEntrees.Add(new Brontowurst()); AvailableEntrees.Add(new DinoNuggets()); AvailableEntrees.Add(new PrehistoricPBJ()); AvailableEntrees.Add(new PterodactylWings()); AvailableEntrees.Add(new SteakosaurusBurger()); AvailableEntrees.Add(new TRexKingBurger()); AvailableEntrees.Add(new VelociWrap()); AvailableMenuItem.Add(new Fryceritops()); AvailableMenuItem.Add(new MeteorMacAndCheese()); AvailableMenuItem.Add(new MezzorellaSticks()); AvailableMenuItem.Add(new Triceritots()); AvailableSides.Add(new Fryceritops()); AvailableSides.Add(new MeteorMacAndCheese()); AvailableSides.Add(new MezzorellaSticks()); AvailableSides.Add(new Triceritots()); AvailableMenuItem.Add(new CretaceousCombo(new Brontowurst())); AvailableMenuItem.Add(new CretaceousCombo(new DinoNuggets())); AvailableMenuItem.Add(new CretaceousCombo(new PrehistoricPBJ())); AvailableMenuItem.Add(new CretaceousCombo(new PterodactylWings())); AvailableMenuItem.Add(new CretaceousCombo(new SteakosaurusBurger())); AvailableMenuItem.Add(new CretaceousCombo(new TRexKingBurger())); AvailableMenuItem.Add(new CretaceousCombo(new VelociWrap())); AvailableCombos.Add(new CretaceousCombo(new Brontowurst())); AvailableCombos.Add(new CretaceousCombo(new DinoNuggets())); AvailableCombos.Add(new CretaceousCombo(new PrehistoricPBJ())); AvailableCombos.Add(new CretaceousCombo(new PterodactylWings())); AvailableCombos.Add(new CretaceousCombo(new SteakosaurusBurger())); AvailableCombos.Add(new CretaceousCombo(new TRexKingBurger())); AvailableCombos.Add(new CretaceousCombo(new VelociWrap())); foreach (IOrderItem menu in AvailableMenuItem) { foreach (string i in menu.Ingredients) { if (!PossibleIngredients.Contains(i)) { PossibleIngredients.Add(i); } } } PossibleIngredients.Sort(); }
public IHotDrink Prepare(AvailableDrinks drink, int amount) { return(_factory[drink].Prepare(amount)); }
/// <summary> /// Method for each attribute set to post /// </summary> public void OnPost() { AvailableCombos = Menu.AvailableCombos; AvailableEntrees = Menu.AvailableEntrees; AvailableSides = Menu.AvailableSides; AvailableDrinks = Menu.AvailableDrinks; if (search != null) { //SearchName(search); AvailableCombos = AvailableCombos.Where(item => item.Description.Contains(search, StringComparison.OrdinalIgnoreCase)); AvailableEntrees = AvailableEntrees.Where(item => item.Description.Contains(search, StringComparison.OrdinalIgnoreCase)); AvailableSides = AvailableSides.Where(item => item.Description.Contains(search, StringComparison.OrdinalIgnoreCase)); AvailableDrinks = AvailableDrinks.Where(item => item.Description.Contains(search, StringComparison.OrdinalIgnoreCase)); } // MIN PRICE if (minPrice != null) { if (minPrice is float minimumPrice) { AvailableCombos = AvailableCombos.Where(item => item.Price >= minimumPrice); AvailableEntrees = AvailableEntrees.Where(item => item.Price >= minimumPrice); AvailableSides = AvailableSides.Where(item => item.Price >= minimumPrice); AvailableDrinks = AvailableDrinks.Where(item => item.Price >= minimumPrice); } } // MAX PRICE if (maxPrice != null) { if (maxPrice is float maximumPrice) { AvailableCombos = AvailableCombos.Where(item => item.Price <= maximumPrice); AvailableEntrees = AvailableEntrees.Where(item => item.Price <= maximumPrice); AvailableEntrees = AvailableEntrees.Where(item => item.Price <= maximumPrice); AvailableDrinks = AvailableDrinks.Where(item => item.Price <= maximumPrice); } } if (menuCategory.Count != 0) { if (!menuCategory.Contains("Combo")) { AvailableCombos = new List <CretaceousCombo>(); } if (!menuCategory.Contains("Entree")) { AvailableEntrees = new List <Entree>(); } if (!menuCategory.Contains("Side")) { AvailableSides = new List <Side>(); } if (!menuCategory.Contains("Drink")) { AvailableDrinks = new List <Drink>(); } } //INGREDIENT if (ingredient.Count > 0) { AvailableCombos = AvailableCombos.Where(item => { foreach (string i in ingredient) { if (item.Ingredients.Contains(i)) { return(false); } } return(true); }); AvailableEntrees = AvailableEntrees.Where(item => { foreach (string i in ingredient) { if (item.Ingredients.Contains(i)) { return(false); } } return(true); }); AvailableSides = AvailableSides.Where(item => { foreach (string i in ingredient) { if (item.Ingredients.Contains(i)) { return(false); } } return(true); }); AvailableDrinks = AvailableDrinks.Where(item => { foreach (string i in ingredient) { if (item.Ingredients.Contains(i)) { return(false); } } return(true); }); } } // End of OnPost method
/// <summary> /// Method executed whenever a post request is recieved for the current page. Searches and filters /// the menu items on the page and then returns the ones that match the filters. /// </summary> public void OnPost() { if (Menu == null) { Menu = new Menu(); } AvailableCombos = Menu.AvailableCombos; AvailableEntrees = Menu.AvailableEntrees; AvailableSides = Menu.AvailableSides; AvailableDrinks = Menu.AvailableDrinks; if (search != null) { //AvailableCombos = Menu.Search(AvailableCombos, search); AvailableCombos = AvailableCombos.Where(item => item.Description.Replace("Small", "") .Contains(search, StringComparison.CurrentCultureIgnoreCase)); //AvailableEntrees = Menu.Search(AvailableEntrees, search); AvailableEntrees = AvailableEntrees.Where(item => item.Description.Replace("Small", "") .Contains(search, StringComparison.CurrentCultureIgnoreCase)); //AvailableSides = Menu.Search(AvailableSides, search); AvailableSides = AvailableSides.Where(item => item.Description.Replace("Small", "") .Contains(search, StringComparison.CurrentCultureIgnoreCase)); //AvailableDrinks = Menu.Search(AvailableDrinks, search); AvailableDrinks = AvailableDrinks.Where(item => item.Description.Replace("Small", "") .Contains(search, StringComparison.CurrentCultureIgnoreCase)); } if (menuCategory.Count > 0) { if (!menuCategory.Contains("Combo")) { AvailableCombos = new List <CretaceousCombo>(); } if (!menuCategory.Contains("Entree")) { AvailableEntrees = new List <Entree>(); } if (!menuCategory.Contains("Side")) { AvailableSides = new List <Side>(); } if (!menuCategory.Contains("Drink")) { AvailableDrinks = new List <Drink>(); } } if (minimumPrice is float min) { //AvailableCombos = Menu.FilterByMinimumPrice(AvailableCombos, min); AvailableCombos = AvailableCombos.Where(item => item.Price >= min); //AvailableEntrees = Menu.FilterByMinimumPrice(AvailableEntrees, min); AvailableEntrees = AvailableEntrees.Where(item => item.Price >= min); //AvailableSides = Menu.FilterByMinimumPrice(AvailableSides, min); AvailableSides = AvailableSides.Where(item => item.Price >= min); //AvailableDrinks = Menu.FilterByMinimumPrice(AvailableDrinks, min); AvailableDrinks = AvailableDrinks.Where(item => item.Price >= min); } if (maximumPrice is float max) { //AvailableCombos = Menu.FilterByMaximumPrice(AvailableCombos, max); AvailableCombos = AvailableCombos.Where(item => item.Price <= max); //AvailableEntrees = Menu.FilterByMaximumPrice(AvailableEntrees, max); AvailableEntrees = AvailableEntrees.Where(item => item.Price <= max); //AvailableSides = Menu.FilterByMaximumPrice(AvailableSides, max); AvailableSides = AvailableSides.Where(item => item.Price <= max); //AvailableDrinks = Menu.FilterByMaximumPrice(AvailableDrinks, max); AvailableDrinks = AvailableDrinks.Where(item => item.Price <= max); } if (excludedIngredients.Count > 0) { //AvailableCombos = Menu.FilterByExcludedIngredients(AvailableCombos, excludedIngredients); AvailableCombos = AvailableCombos.Where(item => { foreach (string ingredient in excludedIngredients) { if (item.Ingredients.Contains(ingredient)) { return(false); } } return(true); }); //AvailableEntrees = Menu.FilterByExcludedIngredients(AvailableEntrees, excludedIngredients); AvailableEntrees = AvailableEntrees.Where(item => { foreach (string ingredient in excludedIngredients) { if (item.Ingredients.Contains(ingredient)) { return(false); } } return(true); }); //AvailableSides = Menu.FilterByExcludedIngredients(AvailableSides, excludedIngredients); AvailableSides = AvailableSides.Where(item => { foreach (string ingredient in excludedIngredients) { if (item.Ingredients.Contains(ingredient)) { return(false); } } return(true); }); //AvailableDrinks = Menu.FilterByExcludedIngredients(AvailableDrinks, excludedIngredients); AvailableDrinks = AvailableDrinks.Where(item => { foreach (string ingredient in excludedIngredients) { if (item.Ingredients.Contains(ingredient)) { return(false); } } return(true); }); } }