예제 #1
0
        /// <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();
        }
예제 #2
0
        /// <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.");
            }
        }