public Notification() { // Initializarea datei notificarii cu data curenta notificationDate = DateTime.Now; // Promotia curenta promotion = PizzaShop.GetPizzaShop().GetPromotion(); }
// 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); }
static void Main(string[] args) { var shop1 = PizzaShop.GetInstance(); var shop2 = PizzaShop.GetInstance(); var pizza = shop1.OrderPizza("Pepperoni"); }
private void button3_Click(object sender, EventArgs e) { if (!ValidateInput()) { return; } new BillForm(PizzaShop.GetPizzaShop().CurrentCustomer).Show(); }
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()); }
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!"); }
// 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; }
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()); }
// Metoda ce adauga la comanda o pizza cu numele dat public void AddToOrderList(string pizzaName) { orderedPizzas.Add(PizzaShop.GetPizzaShop().CreatePizza(pizzaName)); }