Example #1
0
 private static IList <IInternalFriend> CreateFriends(IUserDatabase userDatabase)
 {
     return(userDatabase.GetAllFriendDocuments().Select(delegate(FriendDocument friendDoc)
     {
         UserDocument userBySwid = userDatabase.GetUserBySwid(friendDoc.Swid);
         return RemoteUserFactory.CreateFriend(friendDoc.Swid, friendDoc.IsTrusted, userBySwid.DisplayName, userBySwid.FirstName, userDatabase);
     }).ToList());
 }
Example #2
0
 public void UpdateUserDocument(UserDocument userDocument)
 {
     try
     {
         users.Update(userDocument);
     }
     catch (CorruptionException ex)
     {
         databaseCorruptionHandler.HandleCorruption(ex);
         throw;
     }
 }
Example #3
0
        private UserDocument GetUserDocumentBySwidOrDisplayName(string swid, string displayName)
        {
            UserDocument userDocument = null;

            if (swid != null)
            {
                userDocument = GetUserBySwid(swid);
            }
            if (userDocument == null && displayName != null)
            {
                userDocument = GetUserByDisplayName(displayName);
            }
            return(userDocument);
        }
Example #4
0
 private static IEnumerable <OutgoingFriendInvitation> GetOutgoingFriendInvitations(IUserDatabase userDatabase, IInternalLocalUser localUser)
 {
     return((from friendInvitationDoc in userDatabase.GetFriendInvitationDocuments(isInviter : true)
             where userDatabase.GetUserByDisplayName(friendInvitationDoc.DisplayName) != null
             select friendInvitationDoc).Select(delegate(FriendInvitationDocument friendInvitationDoc)
     {
         UserDocument userByDisplayName = userDatabase.GetUserByDisplayName(friendInvitationDoc.DisplayName);
         string displayName = userByDisplayName.DisplayName;
         IInternalUnidentifiedUser invitee = RemoteUserFactory.CreateUnidentifiedUser(displayName, userByDisplayName.FirstName, userDatabase);
         bool isTrusted = friendInvitationDoc.IsTrusted;
         OutgoingFriendInvitation outgoingFriendInvitation = new OutgoingFriendInvitation(localUser, invitee, isTrusted);
         outgoingFriendInvitation.SendComplete(friendInvitationDoc.FriendInvitationId);
         return outgoingFriendInvitation;
     }).ToList());
 }
Example #5
0
        public void PersistUser(string swid, string hashedSwid, string displayName, string firstName, string status)
        {
            UserDocument userDocumentBySwidOrDisplayName = GetUserDocumentBySwidOrDisplayName(swid, displayName);

            if (userDocumentBySwidOrDisplayName == null)
            {
                UserDocument userDocument = new UserDocument();
                userDocument.Swid               = swid;
                userDocument.HashedSwid         = hashedSwid;
                userDocument.DisplayName        = displayName;
                userDocument.FirstName          = firstName;
                userDocument.Status             = status;
                userDocumentBySwidOrDisplayName = userDocument;
                InsertUserDocument(userDocumentBySwidOrDisplayName);
                return;
            }
            bool flag = false;

            if (swid != null && swid != userDocumentBySwidOrDisplayName.Swid)
            {
                userDocumentBySwidOrDisplayName.Swid = swid;
                flag = true;
            }
            if (hashedSwid != null && hashedSwid != userDocumentBySwidOrDisplayName.HashedSwid)
            {
                userDocumentBySwidOrDisplayName.HashedSwid = hashedSwid;
                flag = true;
            }
            if (displayName != null && displayName != userDocumentBySwidOrDisplayName.DisplayName)
            {
                userDocumentBySwidOrDisplayName.DisplayName = displayName;
                flag = true;
            }
            if (firstName != null && firstName != userDocumentBySwidOrDisplayName.FirstName)
            {
                userDocumentBySwidOrDisplayName.FirstName = firstName;
                flag = true;
            }
            if (status != null && status != userDocumentBySwidOrDisplayName.Status)
            {
                userDocumentBySwidOrDisplayName.Status = status;
                flag = true;
            }
            if (flag)
            {
                UpdateUserDocument(userDocumentBySwidOrDisplayName);
            }
        }
Example #6
0
        private static void HandleFriendshipRemoved(IUserDatabase userDatabase, IInternalLocalUser localUser, AbstractRemoveFriendshipNotificationEventArgs e)
        {
            string          swid           = e.Notification.FriendUserId;
            string          displayName    = null;
            IInternalFriend internalFriend = localUser.InternalFriends.FirstOrDefault((IInternalFriend f) => f.Swid == swid);

            if (internalFriend != null)
            {
                displayName = internalFriend.DisplayName.Text;
            }
            else
            {
                UserDocument userBySwid = userDatabase.GetUserBySwid(swid);
                if (userBySwid != null)
                {
                    displayName = userBySwid.DisplayName;
                }
            }
            userDatabase.DeleteFriend(swid);
            localUser.RemoveFriend(swid, sendEvent: true);
            if (displayName == null)
            {
                return;
            }
            FriendInvitationDocument incomingInvitation = userDatabase.GetFriendInvitationDocuments(isInviter: false).FirstOrDefault((FriendInvitationDocument doc) => doc.DisplayName == displayName);

            if (incomingInvitation != null)
            {
                foreach (IInternalIncomingFriendInvitation item in localUser.InternalIncomingFriendInvitations.Where((IInternalIncomingFriendInvitation i) => i.InvitationId == incomingInvitation.FriendInvitationId))
                {
                    localUser.RemoveIncomingFriendInvitation(item);
                }
                userDatabase.DeleteFriendInvitation(incomingInvitation.FriendInvitationId);
            }
            FriendInvitationDocument outgoingInvitation = userDatabase.GetFriendInvitationDocuments(isInviter: true).FirstOrDefault((FriendInvitationDocument doc) => doc.DisplayName == displayName);

            if (outgoingInvitation == null)
            {
                return;
            }
            foreach (IInternalOutgoingFriendInvitation item2 in localUser.InternalOutgoingFriendInvitations.Where((IInternalOutgoingFriendInvitation i) => i.InvitationId == outgoingInvitation.FriendInvitationId))
            {
                localUser.RemoveOutgoingFriendInvitation(item2);
            }
            userDatabase.DeleteFriendInvitation(outgoingInvitation.FriendInvitationId);
        }
Example #7
0
 public void UpdateDisplayName(string displayName, Action <IUpdateDisplayNameResult> callback)
 {
     DisplayNameUpdater.UpdateDisplayName(logger, mixWebCallFactory, displayName, delegate(IUpdateDisplayNameResult r)
     {
         try
         {
             if (r.Success)
             {
                 DisplayName = new DisplayName(displayName);
                 this.OnDisplayNameUpdated(displayName);
                 UserDocument userBySwid = userDatabase.GetUserBySwid(Swid);
                 userBySwid.DisplayName  = displayName;
                 userDatabase.UpdateUserDocument(userBySwid);
                 registrationProfile.UpdateDisplayName(displayName);
             }
             callback(r);
         }
         catch (Exception ex)
         {
             logger.Critical("Unhandled exception: " + ex);
             callback(new UpdateDisplayNameResult(success: false));
         }
     });
 }