コード例 #1
0
 public Notification()
 {
     // Initializarea datei notificarii cu data curenta
     notificationDate = DateTime.Now;
     // Promotia curenta
     promotion = PizzaShop.GetPizzaShop().GetPromotion();
 }
コード例 #2
0
        // Metoda ce intoarce o pizza la intamplare cu 75% reducere
        public Pizza Execute(Promotion promotion)
        {
            Random random        = new Random();
            Pizza  discountPizza = null;

            switch (random.Next(1, 5))
            {
            case 1:
                discountPizza = PizzaShop.GetPizzaShop().CreatePizza("Quattro Formaggi");
                break;

            case 2:
                discountPizza = PizzaShop.GetPizzaShop().CreatePizza("Quattro Stagioni");
                break;

            case 3:
                discountPizza = PizzaShop.GetPizzaShop().CreatePizza("Carnivora");
                break;

            case 4:
                discountPizza = PizzaShop.GetPizzaShop().CreatePizza("Mexicana");
                break;
            }

            discountPizza.Price *= 0.25;

            return(discountPizza);
        }
コード例 #3
0
        static void Main(string[] args)
        {
            var shop1 = PizzaShop.GetInstance();
            var shop2 = PizzaShop.GetInstance();

            var pizza = shop1.OrderPizza("Pepperoni");
        }
コード例 #4
0
ファイル: OrderForm.cs プロジェクト: florinmihu31/PizzaShop
        private void button3_Click(object sender, EventArgs e)
        {
            if (!ValidateInput())
            {
                return;
            }

            new BillForm(PizzaShop.GetPizzaShop().CurrentCustomer).Show();
        }
コード例 #5
0
ファイル: OrderForm.cs プロジェクト: florinmihu31/PizzaShop
        private void DisplayNotifications(object sender, EventArgs e)
        {
            if (textBox1.Text == null || textBox1.Text == "")
            {
                errorProvider1.SetError(textBox1, "Nu ai introdus un nume!");
                return;
            }

            PizzaShop pizzaShop = PizzaShop.GetPizzaShop();
            Promotion promotion = pizzaShop.GetPromotion();

            if (pizzaShop.CurrentCustomer == null)
            {
                pizzaShop.CurrentCustomer = new User(textBox1.Text);
            }

            promotion.AddObserver(pizzaShop.CurrentCustomer);
            promotion.NotifyAllObservers(new Notification());

            MessageBox.Show(pizzaShop.CurrentCustomer.ListNotificationsToString());
        }
コード例 #6
0
ファイル: OrderForm.cs プロジェクト: florinmihu31/PizzaShop
        private void button2_Click(object sender, EventArgs e)
        {
            if (!ValidateInput())
            {
                return;
            }

            PizzaShop pizzaShop = PizzaShop.GetPizzaShop();

            if (pizzaShop.CurrentCustomer == null)
            {
                pizzaShop.CurrentCustomer = new User(textBox1.Text);
            }

            try {
                pizzaShop.CurrentCustomer.AddToOrderList(textBox2.Text);
            } catch (Exception) {
                errorProvider1.SetError(textBox2, "Nu exista pizza comandata de tine!");
                return;
            }

            MessageBox.Show("Pizza a fost adaugata pe lista!");
        }
コード例 #7
0
ファイル: User.cs プロジェクト: florinmihu31/PizzaShop
        // Metoda ce completeaza comanda
        public void CompleteOrder()
        {
            // Promotia curenta
            Promotion promotion = PizzaShop.GetPizzaShop().GetPromotion();
            // Numarul de pizza deja comandate
            int numberOfPizzas = orderedPizzas.Count;

            /*
             * In functie de ziua curenta si de numarul de pizza deja comandate
             * se adauga pizzele primite la promotie
             */
            switch (promotion.DayOfWeek)
            {
            case DayOfWeek.Monday:
            case DayOfWeek.Tuesday:
            case DayOfWeek.Wednesday:
            case DayOfWeek.Thursday:
                for (uint i = 0; i < numberOfPizzas / 2; i++)
                {
                    orderedPizzas.Add(promotion.ExecuteStrategy());
                }
                break;

            case DayOfWeek.Friday:
            case DayOfWeek.Saturday:
            case DayOfWeek.Sunday:
                for (uint i = 0; i < numberOfPizzas; i++)
                {
                    orderedPizzas.Add(promotion.ExecuteStrategy());
                }
                break;
            }

            // Variabile primeste valoarea true la finalizarea comenzii
            orderCompleted = true;
        }
コード例 #8
0
        static void Main(string[] args)
        {
            // Crearea instantei magazinului
            PizzaShop pizzaShop = PizzaShop.GetPizzaShop();
            // Crearea unei pizza si afisarea informatiilor despre aceasta
            Pizza quattroFormaggi = pizzaShop.CreatePizza("Quattro Formaggi");

            Console.WriteLine(quattroFormaggi.GetPrice());
            Console.WriteLine(quattroFormaggi.GetWeight());

            // Instantierea unor utilizatori
            User user1 = new User("Florin");
            User user2 = new User("Alex");

            // Instantierea unui obiect pentru promotia din ziua respectiva
            Promotion promotion = pizzaShop.GetPromotion();

            // Adaugarea urmaritorilor promotiei
            promotion.AddObserver(user1);
            promotion.AddObserver(user2);
            // Trimiterea notificarii catre urmaritori
            promotion.NotifyAllObservers(new Notification());

            // Afisarea notificarilor pentru utilizatorul 1
            user1.ListNotifications();
            // Adaugarea pe lista a comenzilor
            user1.AddToOrderList("Carnivora");
            user1.AddToOrderList("Carnivora");
            user1.AddToOrderList("Quattro Formaggi");
            // Finalizarea comenzii
            user1.CompleteOrder();
            // Afisarea pizzelor comandate de catre utilizatorul 1
            user1.ListOrderedPizzas();
            // Afisarea pretului de plata pentru primul utilizator
            Console.WriteLine("Suma totala este: {0}", user1.GetTotalPrice());
        }
コード例 #9
0
ファイル: User.cs プロジェクト: florinmihu31/PizzaShop
 // Metoda ce adauga la comanda o pizza cu numele dat
 public void AddToOrderList(string pizzaName)
 {
     orderedPizzas.Add(PizzaShop.GetPizzaShop().CreatePizza(pizzaName));
 }