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