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 }); } }
private void SaveSettings(ConnectExtruderModel connectExtruderModel) { _settings.UserName = connectExtruderModel.UserName; _settings.EncryptedPassword = connectExtruderModel.Password; _settings.MyName = connectExtruderModel.Name; _settings.Save(); }
private ConnectExtruderModel GetConnectExtruderModel() { var result = new ConnectExtruderModel { UserName = _settings.UserName, Password = _settings.EncryptedPassword, Name = _settings.MyName, }; _settings.InitializeConnectExtruderModel(result); return(result); }
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); }
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(); } }
public async Task <ApiResultBase> ConnectExtruder(ConnectExtruderModel connectExtruderModel) { return(await StartRealtimeConnection(connectExtruderModel)); }