/// <summary> /// Try connect to the current lync instance /// </summary> private void ConnectToLync() { // Connect to Lync try { _lyncClient = LyncClient.GetClient(); if (this.IsSignedIn) { ConnnectedAction?.Invoke(); LastKnownStatus = ConnectionStatus.Connected; } // And when we ever disconnect, try to establish again _lyncClient.StateChanged -= ClientStateChangedEvent; _lyncClient.StateChanged += ClientStateChangedEvent; // Default binds // When a new convo starts _lyncClient.ConversationManager.ConversationAdded -= ConversationAddedHandler; _lyncClient.ConversationManager.ConversationAdded += ConversationAddedHandler; } catch (ClientNotFoundException ex) { if (LastKnownStatus == ConnectionStatus.Connected) { DisconnectedAction?.Invoke(); } else { LastKnownStatus = ConnectionStatus.Disconnected; } } }
private void ClientStateChangedEvent(object sender, ClientStateChangedEventArgs args) { if (args.OldState == ClientState.SignedIn && args.NewState != ClientState.SignedIn) { DisconnectedAction?.Invoke(); } if (args.OldState != ClientState.SignedIn && args.NewState == ClientState.SignedIn) { ConnnectedAction?.Invoke(); } }
public void Disconnect(string reason, bool sendDisconnect = true) { DisconnectedAction?.Invoke(reason, sendDisconnect); }