/// <summary> /// Buy an item. /// </summary> private static void WriteAction_PlaceOrder() { Console.Write("Enter the name of the item being purchased: "); string itemName = Console.ReadLine().Trim(); bool hasItem = Database_API.TryGetItem(itemName); if (!hasItem) { Console.WriteLine("No such item exists in the database."); } else { if (Database_API.GetItem(itemName).priceByWeight) { Console.Write("enter the weight of the purchase: "); float quantity = float.Parse(Console.ReadLine()); pim.Add(itemName, quantity); } else { Console.Write("enter how many items are being purchased. "); int quantity = int.Parse(Console.ReadLine()); while (quantity > 0) { pim.Add(itemName); quantity--; } } } Console.WriteLine("Purchases added. Please review the receipt for specifics."); WriteAction_Total(); }
/// <summary> /// Write the prompt needed to add an item into the database. /// </summary> private static void WriteAction_Add_To_DB_Special() { bool hasItem = false; Console.WriteLine("If a special is added to the database that already affects an item, then the new" + "special will replace the old one."); Console.Write("Enter the name of the item being affected: "); string name = Console.ReadLine().Trim(); hasItem = Database_API.TryGetItem(name); string isDeferred; string disType; string disValue; int fireCount = 0; int affectCount = 0; int fireLimit = 0; bool defer = false; if (hasItem) { Console.WriteLine("Is the special deferred? (As in, 'buy x get y FREE') (y/n): "); isDeferred = Console.ReadLine(); defer = isDeferred.TrimStart().ToLower()[0] == 'y'; Console.WriteLine("How does the special calculate its discount? " + "(1: flat (2 dollars off per item), 2: by percentage, 3: set price (as in, 3 for 5) (1/2/3): "); disType = Console.ReadLine(); int type = int.Parse(disType); Special.DISCOUNT_TYPE typeAdd = Special.DISCOUNT_TYPE.SET_TO_AMOUNT; switch (type) { case 1: typeAdd = Special.DISCOUNT_TYPE.SET_TO_AMOUNT; break; case 2: typeAdd = Special.DISCOUNT_TYPE.REDUCE_BY_PERCENTAGE; break; case 3: typeAdd = Special.DISCOUNT_TYPE.REDUCE_BY_DOLLAR; break; } Console.Write("What is the value of the discount? (If it's a percentage," + "enter the desired value without percentage sign: "); disValue = Console.ReadLine(); int value = int.Parse(disValue); if (!defer) { Console.Write("How many items does this special need to fire? "); fireCount = int.Parse(Console.ReadLine()); Console.Write("How many items does this special affect when fired? "); affectCount = int.Parse(Console.ReadLine()); } Console.Write("How many times can a customer use this special? "); fireLimit = int.Parse(Console.ReadLine()); if (defer) { Database_API.AddSpecial(new SpecialDeferred(name, value, typeAdd, fireLimit)); } else { Database_API.AddSpecial(new SpecialNormal(name, value, typeAdd, fireCount, affectCount, fireLimit)); } Console.WriteLine("Special added successfully."); } else { Console.WriteLine("No such item exists in the database. Make sure it's spelled correctly."); } }