Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var rocketFuel = new GasCompany {
                BasePrice = 90.0
            };

            var gs1 = new GasStation(Region.Sjælland, "København");
            var gs2 = new GasStation(Region.Fyn, "Odense");
            var gs3 = new GasStation(Region.Jylland, "Århus");

            rocketFuel.Attach(gs1);
            rocketFuel.Attach(gs2);
            rocketFuel.Attach(gs3);

            var pb1 = new PriceBoard(1);
            var pb2 = new PriceBoard(2);
            var pb3 = new PriceBoard(3);

            Console.WriteLine("Tilknyt lysskilt til tankstation:");
            gs1.Attach(pb1);
            Console.WriteLine();
            Console.WriteLine("Tilknyt lysskilt til tankstation:");
            gs2.Attach(pb2);
            Console.WriteLine();
            Console.WriteLine("Tilknyt lysskilt til tankstation:");
            gs3.Attach(pb3);
            Console.WriteLine();

            Console.WriteLine($"Opdatér selskabets basispris til {100} kr:");
            rocketFuel.BasePrice = 100;
            Console.WriteLine();
            Console.WriteLine($"Opdatér selskabets basispris til {105} kr:");
            rocketFuel.BasePrice = 105;
            Console.WriteLine();
            Console.WriteLine($"Opdatér selskabets basispris til {95} kr:");
            rocketFuel.BasePrice = 95;
            Console.WriteLine();

            Console.WriteLine($"Sæt rabat på tankstation i {gs2.City}:");
            gs2.Discount = true;
            Console.WriteLine();

            Console.WriteLine($"Opdatér selskabets basispris til {100} kr:");
            rocketFuel.BasePrice = 100;
            Console.WriteLine();

            Console.WriteLine($"Fjern rabat på tankstation i {gs2.City}:");
            gs2.Discount = false;
            Console.WriteLine();

            var gp1 = new GasPump();
            var gp2 = new GasPump();
            var gp3 = new GasPump();

            Console.WriteLine("Tilknyt stander 1 til tankstation:");
            gs1.Attach(gp1);
            Console.WriteLine();
            Console.WriteLine("Tilknyt stander 2 til tankstation:");
            gs1.Attach(gp2);
            Console.WriteLine();
            Console.WriteLine("Tilknyt stander 3 til tankstation:");
            gs1.Attach(gp3);
            Console.WriteLine();

            var ct = new CardTerminal();

            Console.WriteLine("Tilknyt stander 1 til betalingsautomat:");
            gp1.Attach(ct);
            Console.WriteLine();
            Console.WriteLine("Tilknyt stander 2 til betalingsautomat:");
            gp2.Attach(ct);
            Console.WriteLine();
            Console.WriteLine("Tilknyt stander 3 til betalingsautomat:");
            gp3.Attach(ct);
            Console.WriteLine();

            Console.WriteLine($"Vælg AlcoOxygen på stander 1 og tank 45 liter:");
            gp1.SelectFuel(FuelType.AlcoOxy);
            gp1.Pump(45.0);
            Console.WriteLine();

            Console.WriteLine($"Opdatér selskabets basispris til {110} kr:");
            rocketFuel.BasePrice = 110;
            Console.WriteLine();

            Console.WriteLine($"Vælg HydroOxygen på stander 3 og tank 32 liter:");
            gp3.SelectFuel(FuelType.HydroOxy);
            gp3.Pump(32.0);
            Console.WriteLine();

            Console.WriteLine($"Betal regning på stander 1:");
            ct.PayFilling(1);
            Console.WriteLine();

            Console.WriteLine($"Betal regning på stander 3:");
            ct.PayFilling(3);
            Console.WriteLine();


            Console.ReadKey(true);
        }
 public void Update(ISubject subject)
 {
     currentCompany = (GasCompany)subject;
     this.KeroOxy   = ((GasCompany)subject).BasePrice;
 }