Esempio n. 1
0
        private async Task <ApiResultBase> StartRealtimeConnection(ConnectExtruderModel connectExtruderModel)
        {
            try
            {
                _connection = new HubConnection(SOS_URL);
                _proxy      = _connection.CreateHubProxy("SosHub");

                _proxy.On <int?, TimeSpan?>("setLights", OnSetLightsEventReceived);
                _proxy.On <int?, TimeSpan?>("setAudio", OnSetAudioEventReceived);
                _proxy.On <ModalDialogEventArgs>("modalDialog", OnModalDialogEventReceived);
                _proxy.On("forceDisconnect", OnForceDisconnect);
                _proxy.On <TrayIcon>("setTrayIcon", OnSetTrayIcon);
                _proxy.On <TrayNotifyEventArgs>("trayNotify", OnTrayNotify);
                _connection.Error        += ConnectionOnError;
                _connection.StateChanged += ConnectionOnStateChanged;
                _connection.Closed       += ConnectionOnClosed;
                await _connection.Start();

                var result = await _proxy.Invoke <ApiResultBase>("connectExtruder", connectExtruderModel);

                if (!result.Success)
                {
                    _connection.Stop();
                }
                return(result);
            }
            catch (Exception ex)
            {
                _log.Error("Unable to start realtime connection to SoS Online", ex);
                return(new ApiResultBase {
                    Success = false, ErrorMessage = ex.Message
                });
            }
        }
Esempio n. 2
0
 private void SaveSettings(ConnectExtruderModel connectExtruderModel)
 {
     _settings.UserName          = connectExtruderModel.UserName;
     _settings.EncryptedPassword = connectExtruderModel.Password;
     _settings.MyName            = connectExtruderModel.Name;
     _settings.Save();
 }
Esempio n. 3
0
        private ConnectExtruderModel GetConnectExtruderModel()
        {
            var result = new ConnectExtruderModel
            {
                UserName = _settings.UserName,
                Password = _settings.EncryptedPassword,
                Name     = _settings.MyName,
            };

            _settings.InitializeConnectExtruderModel(result);
            return(result);
        }
Esempio n. 4
0
        private async Task <bool> TryToConnect(ConnectExtruderModel connectExtruderModel)
        {
            _log.Debug("Attempting to connect as " + connectExtruderModel.UserName);
            UpdateNetworkStatus(true, "Verifying credentials");
            var result = await _sosOnlineService.ConnectExtruder(connectExtruderModel);

            if (!result.Success)
            {
                UpdateNetworkStatus(false, "Failed To Connect");
                MessageBox.Show(result.ErrorMessage);
            }
            return(result.Success);
        }
Esempio n. 5
0
        private async Task SettingsPageOnOnToggleConnection(object sender, ToggleConnectionEventArgs args)
        {
            if (!_connectedToServer)
            {
                ConnectExtruderModel connectExtruderModel = new ConnectExtruderModel
                {
                    UserName = args.UserName,
                    Password = _encryptor.EncryptString(args.PlainTextPassword),
                    Name     = args.Name,
                };
                _settings.InitializeConnectExtruderModel(connectExtruderModel);
                bool success = await TryToConnect(connectExtruderModel);

                if (success)
                {
                    SaveSettings(connectExtruderModel);
                    SetPage(PageType.BrowserPage);
                }
            }
            else
            {
                TryToDisconnect();
            }
        }
Esempio n. 6
0
 public async Task <ApiResultBase> ConnectExtruder(ConnectExtruderModel connectExtruderModel)
 {
     return(await StartRealtimeConnection(connectExtruderModel));
 }