Пример #1
0
 /// <summary>
 /// Triggers the <see cref="LoggedIn"/> event
 /// </summary>
 protected void TriggerLoggedInEvent(IUserExtension user)
 {
     if (LoggedIn != null)
     {
         LoggedIn.Invoke(user);
     }
 }
Пример #2
0
        /// <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;
        }
Пример #3
0
 private void FinalizeLogin(IUserExtension extension, UserLoginInformation newUser)
 {
     AlbotDBManager.onUserLogedIn(newUser, extension.Peer.Id);
     if (LoggedIn != null)
     {
         LoggedIn.Invoke(extension);
     }
 }
Пример #4
0
        protected virtual void OnUserLoggedOut(IUserExtension account)
        {
            var chatExt = account.Peer.GetExtension <ChatUserExtension>();

            if (chatExt != null)
            {
                RemoveChatUser(chatExt);
            }
        }
Пример #5
0
        protected virtual void OnUserLoggedIn(IUserExtension account)
        {
            var chatUser = CreateChatUser(account.Peer, account.Username);

            AddChatUser(chatUser);

            // Add the extension
            account.Peer.AddExtension(chatUser);
        }
Пример #6
0
        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;
        }
Пример #7
0
        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);
        }
Пример #8
0
        protected virtual void OnUserLoggedOut(IUserExtension account)
        {
            ChatUserExtension chatUser;

            ChatUsers.TryGetValue(account.Username.ToLower(), out chatUser);

            if (chatUser != null)
            {
                RemoveChatUser(chatUser);
            }
        }
Пример #9
0
        /// <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);
            });
        }
Пример #10
0
 /// <summary>
 ///     Triggers the <see cref="LoggedIn" /> event
 /// </summary>
 protected void TriggerLoggedInEvent(IUserExtension user)
 {
     LoggedIn?.Invoke(user);
 }