public HeavierThanAirAircraft AddTurboshaftEngines(HeavierThanAirAircraft aircraft) { TurbineEngineFactory turbineEngineFactory = TurbineEngineFactory.GeTurbineEngineFactory(); Turboshaft turboshaft = turbineEngineFactory.TryMakeTurboshaft(1, 1, 2, new Generator(), null, 100, 888, 8, new List <Propellant> { new Propellant(PropellantsEnum.Jet_A) }, new List <Oxidiser> { new Oxidiser(OxidisersEnum.GOX) }, "no manuf", "model 1", "88888888", 2000, 3, 0, OnOff.Stopped, false); aircraft.Engines.Add(turboshaft); aircraft.Engines.Add(turbineEngineFactory.TryMakeTurboshaft(1, 1, 2, new Generator(), null, 100, 888, 8, new List <Propellant> { new Propellant(PropellantsEnum.Jet_A) }, new List <Oxidiser> { new Oxidiser(OxidisersEnum.GOX) }, "no manuf", "model 1", "99999999", 2000, 3, 0, OnOff.Stopped, false)); return(aircraft); }
//public bool TryMakeTurboshaft(float gearingR, float maxtorque, uint numberofshafts, // Dictionary<Generator, double> gens, // List<Spool> spools, int egt, int isp, int numberofcycles, List<Propellants> fueList, // List<Oxidisers> oxidisers, string manuf, string model, string serialnumber, float maxpower, // float operatingtime, float fuelflow, OnOff stat, out Turboshaft incomingTurboshaft, bool hasreverse = true, string parentvehicleID = null) //{ // try // { // Turboshaft turboshaft = MakeTurboshaft(gearingR, maxtorque, numberofshafts, gens, spools, egt, isp, // numberofcycles, fueList, // oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, // parentvehicleID); // incomingTurboshaft = turboshaft; // return true; // } // catch (ArgumentNullException argumentNullException) // { // Console.WriteLine(argumentNullException.Message); // incomingTurboshaft = null; // return false; // } // catch (ArgumentException argumentException) // { // Console.WriteLine(argumentException.Message); // incomingTurboshaft = null; // return false; // } // catch (Exception e) // { // Console.WriteLine(e.Message); // incomingTurboshaft = null; // return false; // } //} public Turboshaft TryMakeTurboshaft(float gearingR, float maxtorque, int numberofshafts, Generator gen, List <Spool> spools, int egt, int isp, int numberofcycles, List <Propellant> fueList, List <Oxidiser> oxidisers, string manuf, string model, string serialnumber, float maxpower, float operatingtime, float fuelflow, OnOff stat, bool hasreverse = true, PoweredAircraft parentvehicle = null) { Turboshaft turboshaft = new Turboshaft(); try { turboshaft = MakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); return(turboshaft); } catch (ArgumentNullException argumentNullException) { Console.WriteLine(argumentNullException.Message); switch (argumentNullException.ParamName) { case nameof(spools): spools = new List <Spool>(); turboshaft = TryMakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); break; case nameof(serialnumber): serialnumber = "no serial number specified"; turboshaft = TryMakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); break; case nameof(fueList): fueList = new List <Propellant>(); turboshaft = TryMakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); break; case nameof(oxidisers): oxidisers = new List <Oxidiser>(); turboshaft = TryMakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); break; } } catch (ArgumentException argumentException) { Console.WriteLine(argumentException.Message); switch (argumentException.ParamName) { case nameof(numberofshafts): numberofshafts = 1; turboshaft = TryMakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); break; case nameof(maxtorque): maxtorque = 1; turboshaft = TryMakeTurboshaft(gearingR, maxtorque, numberofshafts, gen, spools, egt, isp, numberofcycles, fueList, oxidisers, manuf, model, serialnumber, maxpower, operatingtime, fuelflow, stat, hasreverse, parentvehicle); break; } } catch (Exception e) { Console.WriteLine(e.Message); } return(turboshaft); }