Implemented Strategy Pattern

This commit is contained in:
2019-09-11 15:53:52 -06:00
parent 58a197afbd
commit 6e42363daf
15 changed files with 169 additions and 88 deletions

View File

@@ -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);
}
}