const int Parkinglotcapacity = 100; // Macro Substitude // 26 is the equvilant of 2 default ships (Char 0, Ship 0). used while debuging % for predictibility public static async Task InitiateDialogueAsync(RectangularPlatform parkingDeck) { parkingDeck.ShowCapacity(); Console.WriteLine("What's your name?"); var customerName = Console.ReadLine(); // Connect to DB here while api is loading :desktop: // establishDataBaseConnection(); Character customer = ApiUtils.LoadCharacter(customerName); //Task<Character> taskLoadChar = new Task<Character>(function: () => ApiUtils.LoadCharacter(customerName)); //Task<List<Ship.Result>> taskLoadShips = new Task<List<Ship.Result>>(function: () => loadAllVehiclesAsync(customer)); var taskLoadShips = Task.Factory.StartNew(() => loadAllVehiclesAsync(customer)); //Task<int> taskLoadShips = new Task<int>(function: ()=>loadAllVehiclesAsync(customer)); //taskLoadShips.Start(); //System.Console.WriteLine("FROM UI"); // should be called last but appear first. ✔ var currentPilot = new StarWarsPerson { Name = customer.Name }; if (DbUtils.IsDocked(currentPilot)) { Logger.systemLog("You already have a ship here, do you want to check it out or swap it for another one? ", ConsoleColor.DarkYellow); Logger.systemLog("S = swap, E = check out ", ConsoleColor.DarkYellow); string sAnswer = Console.ReadLine(); //char cAnswer = Console.ReadLine(); if (sAnswer[0] == 'e' || sAnswer[0] == 'E') { parkingDeck.CheckoutShip(currentPilot); return; } if (sAnswer[0] == 's' || sAnswer[0] == 'S') { parkingDeck.CheckoutShip(currentPilot); } // switch (sAnswer[0]) // { // case 'e': // case 'E': // parkingDeck.CheckoutShip(currentPilot); // break; // // case 's': // case 'S': // parkingDeck.CheckoutShip(currentPilot); // break; // // default: // break; // } } if (customer.Exists) { List <Ship.Result> vShip = await await taskLoadShips; //"await await" <-- intellisense WTF Console.WriteLine(); Logger.systemLog("Which ship?", ConsoleColor.DarkYellow); for (int i = 0; i != vShip.Count; i++) { Console.WriteLine(i + " - " + vShip[i].name); } int iAnswer = Convert.ToInt32(Console.ReadLine()); Ship.Result ship = new Ship.Result(); ship = vShip[iAnswer]; customer.CurrentShipName = ship.name; currentPilot.ShipName = ship.name; currentPilot.Length = ship.length; if (parkingDeck.ShipWillFit(ship.length)) { if (customer.Wealth > parkingDeck.CalculateDockingFee(ship.length)) { parkingDeck.DockShip(currentPilot); } else { Logger.systemLog("Sorry, you can't afford that"); } } else { Logger.systemLog("Your ship wont fit"); } } else { Logger.systemLog("You do not have access to this garage"); } }