Beispiel #1
0
        /// <summary>
        /// See interface docs.
        /// </summary>
        /// <param name="view"></param>
        public void Connect(IXPlaneView view)
        {
            view.ConnectionStatus = "";

            var settings = new XPlaneSettings()
            {
                Host       = view.Host,
                XPlanePort = view.XPlanePort,
                ReplyPort  = view.ReplyPort,
            };

            var validationMessage = ValidateSettings(settings);

            view.ConnectionStatus = validationMessage ?? "";

            if (String.IsNullOrEmpty(validationMessage))
            {
                var connection = Factory.ResolveSingleton <IXPlaneConnection>();
                try {
                    connection.Connect(settings);
                    view.ConnectionStatus = Strings.Connected;

                    var storage = Factory.Resolve <IXPlaneSettingsStorage>();
                    storage.Save(settings);
                } catch (Exception ex) {
                    view.ConnectionStatus = $"Caught exception when connecting: {ex}";
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// See interface docs.
        /// </summary>
        /// <param name="view"></param>
        public void Disconnect(IXPlaneView view)
        {
            view.ConnectionStatus = Strings.Disconnected;

            var connection = Factory.ResolveSingleton <IXPlaneConnection>();

            connection.Disconnect();
        }
Beispiel #3
0
        /// <summary>
        /// See interface docs.
        /// </summary>
        /// <param name="view"></param>
        public void Initialise(IXPlaneView view)
        {
            var storage  = Factory.Resolve <IXPlaneSettingsStorage>();
            var settings = storage.Load();

            view.Host             = settings.Host;
            view.XPlanePort       = settings.XPlanePort;
            view.ReplyPort        = settings.ReplyPort;
            view.ConnectionStatus = Strings.NotConnected;
        }