コード例 #1
0
        public static void Main(string[] args)
        {
            PizzaStore pizzaStore = new NYStore();
            Pizza      pizza      = pizzaStore.OrderPizza("Cheese");

            pizzaStore = new ChicagoStore();
            pizza      = pizzaStore.OrderPizza("Meet");
        }
コード例 #2
0
        public static void CreatePizzaTestDrive()
        {
            PizzaStore nyStore      = new NYPizzaStore();
            PizzaStore chicagoStore = new ChicagoStore();

            Pizza pizza = nyStore.OrderPizza("cheese");

            Console.WriteLine($"Ethan ordered a {pizza.Name}");
            Console.WriteLine();

            pizza = chicagoStore.OrderPizza("cheese");
            Console.WriteLine($"Joel ordered a {pizza.Name}");
        }
コード例 #3
0
 private StoreSingleton(PizzaBoxContext context)
 {
     _context = context;
     Stores   = _context.Stores.ToList();
     if (Stores == null)
     {
         var s = new ChicagoStore();
         var n = new NewYorkStore();
         _context.Add(s);
         _context.Add(n);
     }
     //Stores = _context.Stores.ToList();
 }
コード例 #4
0
        /// <summary>
        /// Map DBStore => AStore
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public AStore Map(DBStore entity)
        {
            AStore store = null;

            switch (entity.STORE)
            {
            case Entities.EntityModels.STORES.NEWYORK:
                store = new NewYorkStore();
                break;

            case Entities.EntityModels.STORES.CHICAGO:
                store = new ChicagoStore();
                break;

            default:
                throw new ArgumentException("Store not recognized. Store could not be mapped properly");
            }

            return(store);
        }
コード例 #5
0
        public AStore Map(Store model)
        {
            AStore aStore = null;

            switch (model.StoreType)
            {
            case STORE_TYPE.Chicago:
                aStore = new ChicagoStore();
                break;

            case STORE_TYPE.NewYork:
                aStore = new NewYorkStore();
                break;

            case STORE_TYPE.Unknown:
            // TODO: add logging to these last 2
            default:
                throw new ArgumentException("Store mapper is attempting to map a store type that does not exist in the codebase");
            }
            aStore.Name = model.Name;
            return(aStore);
        }
コード例 #6
0
        //------------------------------------------------------------------------------------------------------------------------------//
        private void InitChicagoStore()
        {
            Dictionary <string, decimal> chicagoToppings = new Dictionary <string, decimal>();

            chicagoToppings.Add("beef", 0.75m);
            chicagoToppings.Add("chicken", 1.50m);
            chicagoToppings.Add("ham", 0.57m);
            chicagoToppings.Add("mushroom", 0.45m);
            chicagoToppings.Add("olive", 0.25m);
            chicagoToppings.Add("peppers", 0.30m);
            chicagoToppings.Add("pineapple", 0.50m);
            chicagoToppings.Add("pepporoni", 0.25m);
            chicagoToppings.Add("salami", 0.70m);
            chicagoToppings.Add("sausage", 0.70m);
            chicagoToppings.Add("bacon", 0.50m);
            chicagoToppings.Add("onion", 1.00m);
            Dictionary <string, decimal> chicagoSize = new Dictionary <string, decimal>();

            chicagoSize.Add("small", 4.50m);
            chicagoSize.Add("medium", 5.50m);
            chicagoSize.Add("large", 6.50m);
            Dictionary <string, decimal> chicagoCrust = new Dictionary <string, decimal>();

            chicagoCrust.Add("regular", 0.50m);
            chicagoCrust.Add("hand-tossed", 1.00m);
            chicagoCrust.Add("thin", 0.50m);

            ChicagoStore initChicago = new ChicagoStore();

            initChicago.MaxPizzas   = 50;
            initChicago.MaxPrice    = 200.00m;
            initChicago.MaxToppings = 4;

            foreach (KeyValuePair <string, decimal> kvp in chicagoToppings)
            {
                string  topping = kvp.Key;
                decimal value   = kvp.Value;
                var     curComp = context.Comps.SingleOrDefault(n => n.Name == topping);
                if (curComp is null)
                {
                    var             curType = context.ItemTypes.SingleOrDefault(n => n.Name == "toppings");
                    APizzaComponent newComp = new APizzaComponent(kvp.Key, curType);
                    context.Add <APizzaComponent>(newComp);
                    context.SaveChanges();
                }
                var forsureComp = context.Comps.SingleOrDefault(n => n.Name == topping);
                initChicago.ToppingsList.Add(new Topping(initChicago, value, 100, forsureComp));
            }

            foreach (KeyValuePair <string, decimal> kvp in chicagoCrust)
            {
                string  crust   = kvp.Key;
                decimal value   = kvp.Value;
                var     curComp = context.Comps.SingleOrDefault(n => n.Name == crust);
                if (curComp is null)
                {
                    var             curType = context.ItemTypes.SingleOrDefault(n => n.Name == "crust");
                    APizzaComponent newComp = new APizzaComponent(kvp.Key, curType);
                    context.Add <APizzaComponent>(newComp);
                    context.SaveChanges();
                }
                var forsureComp = context.Comps.SingleOrDefault(n => n.Name == crust);
                initChicago.CrustList.Add(new Crust(initChicago, value, 100, forsureComp));
            }

            foreach (KeyValuePair <string, decimal> kvp in chicagoSize)
            {
                string  size    = kvp.Key;
                decimal value   = kvp.Value;
                var     curComp = context.Comps.SingleOrDefault(n => n.Name == size);
                if (curComp is null)
                {
                    var             curType = context.ItemTypes.SingleOrDefault(n => n.Name == "size");
                    APizzaComponent newComp = new APizzaComponent(kvp.Key, curType);
                    context.Add <APizzaComponent>(newComp);
                    context.SaveChanges();
                }
                var forsureComp = context.Comps.SingleOrDefault(n => n.Name == size);
                initChicago.SizeList.Add(new Size(initChicago, value, 100, forsureComp));
            }

            initChicago.InitPresetPizza();

            context.Add <AStore>(initChicago);
            context.SaveChanges();
        }
コード例 #7
0
        public static void AsACustomer()
        {
            APizza pizzaType = null;
            AStore storeType = null;

            var stpProgram = false;
            var ss         = StoreSingleton.Instance;

            ss.Seeding();

            Console.Clear();

            do
            {
                // print all the stores available, must be from file or db

                Console.WriteLine("\nSelect a store\n");
                int count = 1;

                foreach (var item in ss.Stores)
                {
                    Console.Write("{0}. ", count); // Labels the stores 1-3 //form the xml file
                    Console.WriteLine(item);
                    count++;
                }

                Console.Write("Choice: ");
                // select a store
                var input = Console.ReadLine();

                Console.Clear();
                switch (input)
                {
                case "1":

                    stpProgram = true;
                    // run the code for store1
                    storeType = new ChicagoStore();

                    //take customer name
                    Customer cust = new Customer();
                    Console.Write("Enter your name: ");
                    cust.CustomerName = Console.ReadLine();
                    Console.Clear();

                    // print the customer menu
                    System.Console.WriteLine("1. Place Order");
                    System.Console.WriteLine("2. View Orders History");
                    System.Console.WriteLine("3. Exit");

                    Console.Write("Choice: ");
                    // select a menu option
                    var input2 = Console.ReadLine();
                    Console.Clear();
                    switch (input2)
                    {
                    case "1":
                        // run the code dor placing order
                        Console.Write("What type of Pizza would you like?\n");
                        ss.SeedingPizza();
                        //Print all pizzas
                        int count2  = 1;
                        var stPizza = ss.storePizza;
                        foreach (var item in stPizza)
                        {
                            Console.Write("{0}. ", count2);
                            Console.WriteLine(item.GetType().ToString().Split(".")[3]);
                            count2++;
                        }
                        Console.WriteLine("4. Custom Pizza");
                        Console.Write("Choice: ");
                        var choice = Console.ReadLine();

                        Console.Clear();
                        switch (choice)
                        {
                        case "1":
                            Console.WriteLine("What size of Crust would you like?\n");
                            Console.WriteLine("1. Small");
                            Console.WriteLine("2. Medium");
                            Console.WriteLine("3. Large");
                            Console.Write("Choice: ");
                            var choice2 = Console.ReadLine();

                            switch (choice2)
                            {
                            case "1":
                                Size smallSize = new Size("Small");
                                pizzaType = new MeatPizza(smallSize);
                                break;

                            case "2":
                                Size mediumSize = new Size("Medium");
                                pizzaType = new MeatPizza(mediumSize);
                                break;

                            case "3":
                                Size largeSize = new Size("Large");
                                pizzaType = new MeatPizza(largeSize);
                                break;

                            default:
                                Console.WriteLine("Incorrect Input");
                                break;
                            }
                            Console.Clear();
                            //saves order
                            Order orderInstance = new Order();                 //new order
                            orderInstance.orderPizzas   = new List <APizza>(); //initialize out list
                            orderInstance.orderCustomer = cust;                //assigning cust to our new order
                            orderInstance.orderStore    = storeType;           //assiging storeType to our store we chose

                            //add pizzatype to our list
                            orderInstance.orderPizzas.Add(pizzaType);
                            ss.saveOrder(new List <Order>()
                            {
                                orderInstance
                            });                                                            //saves orderInstance to xml from list
                            stpProgram = false;
                            break;

                        default:
                            break;
                        }
                        break;

                    case "2":
                        stpProgram = false;
                        // run the code for view order history
                        var stOrder = ss.storeOrder;
                        foreach (var item in stOrder)
                        {
                            Console.WriteLine(item.GetType().ToString().Split(".")[3]);
                        }
                        ss.readOrder(stOrder);
                        break;

                    case "3":
                        stpProgram = true;
                        return;

                    default:
                        stpProgram = false;
                        Console.Clear();
                        Console.WriteLine("Incorrect Input");
                        break;
                    }
                    break;

                case "2":     // run the code for store2
                    stpProgram = false;
                    break;

                case "3":     // run the code for store2
                    stpProgram = false;
                    break;

                default:
                    stpProgram = false;
                    Console.Clear();
                    Console.WriteLine("Incorrect Input");
                    break;
                }
            }while (!stpProgram);

            Console.Clear();
        }