Implemented Strategy Pattern
This commit is contained in:
@@ -5,14 +5,15 @@ namespace Tello_Drone
|
||||
public class ConsoleClient
|
||||
{
|
||||
|
||||
private readonly IMissions _missions;
|
||||
private readonly IMissionList _missionList;
|
||||
private readonly IConsoleLogger _consoleLogger;
|
||||
private readonly IMissionCommander _missionCommander;
|
||||
|
||||
public ConsoleClient(IMissions missions, IConsoleLogger consoleLogger)
|
||||
public ConsoleClient(IMissionList missionList, IConsoleLogger consoleLogger, IMissionCommander missionCommander)
|
||||
{
|
||||
_missions = missions;
|
||||
_missionCommander = missionCommander;
|
||||
_missionList = missionList;
|
||||
_consoleLogger = consoleLogger;
|
||||
_missions.SetUpDrone();
|
||||
}
|
||||
|
||||
public void Run()
|
||||
@@ -20,27 +21,17 @@ namespace Tello_Drone
|
||||
while (true)
|
||||
{
|
||||
_consoleLogger.Log("Choose a mission to run.");
|
||||
_consoleLogger.Log("1: Mission 1");
|
||||
_consoleLogger.Log("2: Mission 2");
|
||||
_consoleLogger.Log("3: Mission 3");
|
||||
|
||||
var userInput = Console.ReadLine();
|
||||
|
||||
switch (userInput)
|
||||
for (int x = 0; x < _missionList.GetMissionList().Count; x++)
|
||||
{
|
||||
case "1":
|
||||
_missions.RunMission1();
|
||||
break;
|
||||
case "2":
|
||||
_missions.RunMission2();
|
||||
break;
|
||||
case "exit":
|
||||
return;
|
||||
default:
|
||||
_consoleLogger.Log("Not A Valid Entry...Try Again");
|
||||
Run();
|
||||
break;
|
||||
var currentMission = _missionList.GetMissionList()[x];
|
||||
_consoleLogger.Log($"{x+1}: {currentMission.Item1}");
|
||||
}
|
||||
|
||||
|
||||
var userInput = Convert.ToInt16(Console.ReadLine());
|
||||
_missionCommander.RunMission(_missionList.GetMissionList()[userInput-1].Item2);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user