public void Update(Subject subject) { if (subject != this) { gasStation = (GasStation)subject; } Console.WriteLine($" Stander {Number} på tankstation i {gasStation.City}({gasStation.Region}):"); string status; if (Liters > 0) { status = "Betal påfyldning"; } else { status = "Klar til brug"; } Console.WriteLine($" Valgt brændstof: {Fuel}"); Console.WriteLine($" Antal liter: {Liters} liter"); Console.WriteLine($" Pris: {Price} kr"); Console.WriteLine($" Status: {status}"); foreach (FuelType fuelType in Enum.GetValues(typeof(FuelType))) { Console.WriteLine($" {fuelType}: {GetPrice(fuelType)} kr/liter"); } }
public void Update(Subject subject) { GasStation gs = (GasStation)subject; Console.WriteLine($" Lysskilt på tankstation i {gs.City}({gs.Region}):"); double totalPrice = gs.GasCompany.BasePrice; totalPrice *= (double)gs.Region / 100d; foreach (FuelType fuelType in Enum.GetValues(typeof(FuelType))) { double fuelPrice = totalPrice; fuelPrice *= (double)fuelType / 100d; if (gs.Discount) { fuelPrice *= 0.9; // 10% off } Console.WriteLine($" {fuelType}: {fuelPrice} kr / liter"); } }
static void Main(string[] args) { var rocketFuel = new GasCompany { BasePrice = 90.0 }; var gs1 = new GasStation(RegionType.Sjælland, "København"); var gs2 = new GasStation(RegionType.Fyn, "Odense"); var gs3 = new GasStation(RegionType.Jylland, "Århus"); rocketFuel.Attach(gs1); rocketFuel.Attach(gs2); rocketFuel.Attach(gs3); var pb1 = new PriceBoard(); var pb2 = new PriceBoard(); var pb3 = new PriceBoard(); 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(1); var gp2 = new GasPump(2); var gp3 = new GasPump(3); 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.AlcoOxygen); 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.HydroOxygen); 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(); }