/// <summary> /// Triggers the <see cref="LoggedIn"/> event /// </summary> protected void TriggerLoggedInEvent(IUserExtension user) { if (LoggedIn != null) { LoggedIn.Invoke(user); } }
/// <summary> /// Invoked, when user logs into the master server /// </summary> /// <param name="session"></param> /// <param name="accountData"></param> private void OnLoggedIn(IUserExtension user) { user.Peer.Disconnected += OnPeerPlayerDisconnected; // Create a profile ObservableServerProfile profile; if (_profiles.ContainsKey(user.Username)) { // There's a profile from before, which we can use profile = _profiles[user.Username]; profile.ClientPeer = user.Peer; } else { // We need to create a new one profile = CreateProfile(user.Username, user.Peer); _profiles.Add(user.Username, profile); } // Restore profile data from database (only if not a guest) if (!user.AccountData.IsGuest) { Database.RestoreProfile(profile); } // Save profile property user.Peer.AddExtension(new ProfileExtension(profile, user.Peer)); // Listen to profile events profile.ModifiedInServer += OnProfileChanged; }
private void FinalizeLogin(IUserExtension extension, UserLoginInformation newUser) { AlbotDBManager.onUserLogedIn(newUser, extension.Peer.Id); if (LoggedIn != null) { LoggedIn.Invoke(extension); } }
protected virtual void OnUserLoggedOut(IUserExtension account) { var chatExt = account.Peer.GetExtension <ChatUserExtension>(); if (chatExt != null) { RemoveChatUser(chatExt); } }
protected virtual void OnUserLoggedIn(IUserExtension account) { var chatUser = CreateChatUser(account.Peer, account.Username); AddChatUser(chatUser); // Add the extension account.Peer.AddExtension(chatUser); }
public QuizzesController(IQuizService quizService, IMapper mapper, IUserExtension userValidation) { Guard.ArgumentNotNull(quizService, nameof(quizService)); Guard.ArgumentNotNull(mapper, nameof(mapper)); Guard.ArgumentNotNull(userValidation, nameof(userValidation)); _quizService = quizService; _mapper = mapper; _userValidation = userValidation; }
protected void FinalizeLogin(IUserExtension extension) { extension.Peer.Disconnected += OnUserDisconnect; // Add to lookup of logged in users LoggedInUsers.Add(extension.Username.ToLower(), extension); // Trigger the login event LoggedIn?.Invoke(extension); }
protected virtual void OnUserLoggedOut(IUserExtension account) { ChatUserExtension chatUser; ChatUsers.TryGetValue(account.Username.ToLower(), out chatUser); if (chatUser != null) { RemoveChatUser(chatUser); } }
/// <summary> /// Invoked, when user logs into the master server /// </summary> /// <param name="session"></param> /// <param name="accountData"></param> private void OnLoggedIn(IUserExtension user) { user.Peer.Disconnected += OnPeerPlayerDisconnected; // Create a profile ObservableServerProfile profile; if (_profiles.ContainsKey(user.Username)) { // There's a profile from before, which we can use profile = _profiles[user.Username]; profile.ClientPeer = user.Peer; } else { // We need to create a new one profile = CreateProfile(user.Username, user.Peer); _profiles.Add(user.Username, profile); } // Action, which does final "touches" to the profile // action is used so that we don't need to "repeat" code in the callback // (in case if it's a guest profile) Action <ObservableServerProfile> finalize = finalizedProfile => { // Save profile property user.Peer.AddExtension(new ProfileExtension(finalizedProfile, user.Peer)); // Listen to profile events finalizedProfile.ModifiedInServer += OnProfileChanged; }; // Restore profile data from database (only if not a guest) if (!user.AccountData.IsGuest) { // No need to restore the profile, so we can finalize it right now finalize(profile); return; } Database.RestoreProfile(profile, () => { // Finalize profile after it's restored finalize(profile); }); }
/// <summary> /// Triggers the <see cref="LoggedIn" /> event /// </summary> protected void TriggerLoggedInEvent(IUserExtension user) { LoggedIn?.Invoke(user); }