public Spaceship CreateSpaceship(string name, SpaceshipType type) { ISpaceshipBuilder builder = new SpaceshipBuilder(name); switch (type) { case SpaceshipType.Combat: builder.BuildFuselage(Fuselage.SemiMonocoque); builder.BuildEngines(Engines.Photonic); builder.BuildAvionics(Avionics.Rockwell); builder.BuildWeaponry(Weaponry.Missile); builder.BuildType(SpaceshipType.Combat); return(builder.BuildSpaceship()); case SpaceshipType.Defense: builder.BuildFuselage(Fuselage.Monocoque); builder.BuildEngines(Engines.Quantum); builder.BuildAvionics(Avionics.Bendix); builder.BuildWeaponry(Weaponry.Kinetic); builder.BuildType(SpaceshipType.Defense); return(builder.BuildSpaceship()); case SpaceshipType.Transport: builder.BuildFuselage(Fuselage.Framework); builder.BuildEngines(Engines.FTL); builder.BuildAvionics(Avionics.Proline); builder.BuildWeaponry(Weaponry.Beam); builder.BuildType(SpaceshipType.Transport); return(builder.BuildSpaceship()); } return(null); }
static void Main(string[] args) { try { //if the '_' in the miles and the currency in the document is not just for formatting then we will //go thru every element in the string and then select all that are not '_' and try to parse them //Example: milesTraveled.Select(x=>x!='_').ToString() IBuilder spaceshipBuilder = new SpaceshipBuilder(); var spaceship = (Spaceship)spaceshipBuilder.Build(); ITaxCalculator spaceshipTax = new SpaceshipTax(spaceship); //really don't like the validation here but for now i don't have any clue where to put it :\ Console.WriteLine("Year of tax calculation: "); if (!int.TryParse(Console.ReadLine(), out var yearOfTaxCalc)) { throw new ArgumentException("Invalid type!"); } if (yearOfTaxCalc < spaceship.YearOfPurchase) { throw new ArgumentException("It can only calculate present taxes :|"); } decimal taxes = spaceshipTax.Calculate(yearOfTaxCalc); Console.WriteLine($"You have to pay {taxes:f2} DVS to the Big Sister."); } catch (Exception e) { Console.WriteLine(e.Message); } }
private static List <Spaceship> GetArmada() { var ships = new List <Spaceship>(); var shipBuilder = new SpaceshipBuilder(); var shipYard = new ShipYard(shipBuilder); shipYard.BuildStartedShip(); ships.Add(shipBuilder.GetShip()); shipYard.BuildAttackCruiser(); ships.Add(shipBuilder.GetShip()); shipYard.BuildBattleship(); ships.Add(shipBuilder.GetShip()); shipYard.BuildMiner(); ships.Add(shipBuilder.GetShip()); shipYard.BuildFriendShip(); ships.Add(shipBuilder.GetShip()); return(ships); }