public MainWindow(ILogger <MainWindow> logger, IFlightConnector flightConnector, MainViewModel viewModel,
                          IOptionsMonitor <AppSettings> appSettings,
                          DiscordRichPresentLogic discordRichPresentLogic,
                          ATCServer atcServer, UserPreferencesLoader userPreferencesLoader, VersionLogic versionLogic,
                          UdpBroadcastLogic udpBroadcastLogic)
        {
            InitializeComponent();

            this.logger                  = logger;
            this.flightConnector         = flightConnector;
            this.atcServer               = atcServer;
            this.userPreferencesLoader   = userPreferencesLoader;
            this.versionLogic            = versionLogic;
            this.udpBroadcastLogic       = udpBroadcastLogic;
            this.viewModel               = viewModel;
            this.discordRichPresentLogic = discordRichPresentLogic;
            this.appSettings             = appSettings.CurrentValue;
            this.lineSimplifier          = new LineSimplifier();

            flightConnector.AircraftStatusUpdated   += FlightConnector_AircraftStatusUpdated;
            flightConnector.AircraftPositionChanged += FlightConnector_AircraftPositionChanged;
            flightConnector.AirportListReceived     += FlightConnector_AirportListReceived;
            flightConnector.Error += FlightConnector_Error;

            DataContext = viewModel;
        }