/// <summary> /// Event handler for when the asynchronous find network sessions /// operation has completed. /// </summary> void FindSessionsOperationCompleted(object sender, OperationCompletedEventArgs e) { try { // End the asynchronous find network sessions operation. AvailableNetworkSessionCollection availableSessions = NetworkSession.EndFind(e.AsyncResult); if (availableSessions.Count == 0) { // If we didn't find any sessions, display an error. availableSessions.Dispose(); ScreenManager.AddScreen( new MessageBoxScreen(Resources.NoSessionsFound, false)); } else { // If we did find some sessions, proceed to the JoinSessionScreen. ScreenManager.AddScreen(new JoinSessionScreen(availableSessions)); } } catch (NetworkException exception) { ScreenManager.AddScreen(new NetworkErrorScreen(exception)); } catch (GamerPrivilegeException exception) { ScreenManager.AddScreen(new NetworkErrorScreen(exception)); } }
/// <summary> /// Event handler for when the asynchronous create network session /// operation has completed. /// </summary> void CreateSessionOperationCompleted(object sender, OperationCompletedEventArgs e) { try { // End the asynchronous create network session operation. NetworkSession networkSession = NetworkSession.EndCreate(e.AsyncResult); // Create a component that will manage the session we just created. NetworkSessionComponent.Create(ScreenManager, networkSession); // Go to the lobby screen. ScreenManager.AddScreen(new LobbyScreen(networkSession)); } catch (NetworkException exception) { ScreenManager.AddScreen(new NetworkErrorScreen(exception)); } catch (GamerPrivilegeException exception) { ScreenManager.AddScreen(new NetworkErrorScreen(exception)); } }