public MainWindow(ILogger <MainWindow> logger,
                          IConnector connector,
                          DrawingLogic drawingLogic,
                          ExportLogic exportLogic,
                          VersionLogic versionLogic,
                          Orchestrator orchestrator,
                          WindowFactory windowFactory)
            : base(orchestrator.ThreadLogic, orchestrator.StateMachine, orchestrator.ViewModel, orchestrator.ReplayLogic)
        {
            InitializeComponent();

            this.logger        = logger;
            this.connector     = connector;
            this.drawingLogic  = drawingLogic;
            this.exportLogic   = exportLogic;
            this.windowFactory = windowFactory;
            this.recorderLogic = orchestrator.RecorderLogic;

            stateMachine.StateChanged += StateMachine_StateChanged;

            connector.AircraftPositionUpdated += Connector_AircraftPositionUpdated;
            connector.Closed += Connector_Closed;

            DataContext = viewModel;

            currentVersion = versionLogic.GetVersion();
            Title         += " " + currentVersion;
        }
        public AIWindow(Orchestrator orchestrator, IConnector connector, DrawingLogic drawingLogic)
            : base(orchestrator.ThreadLogic, orchestrator.StateMachine, orchestrator.ViewModel, orchestrator.ReplayLogic)
        {
            InitializeComponent();

            DataContext       = orchestrator.ViewModel;
            this.connector    = connector;
            this.drawingLogic = drawingLogic;
        }