Example #1
0
 public void SyncToGetStateResponse(GetStateResponse response, Action callback)
 {
     if (response.Alerts != null)
     {
         foreach (Disney.Mix.SDK.Internal.MixDomain.Alert alert in response.Alerts)
         {
             AddAlert(new Alert(alert));
         }
     }
     ClearFriends();
     if (response.Friendships != null)
     {
         foreach (Friendship friendship in response.Friendships)
         {
             PersistUser(friendship.FriendUserId, null, null, null, null);
             FriendDocument friendDocument = new FriendDocument();
             friendDocument.Swid      = friendship.FriendUserId;
             friendDocument.IsTrusted = friendship.IsTrusted.Value;
             FriendDocument doc = friendDocument;
             InsertFriend(doc);
         }
     }
     ClearFriendInvitations();
     if (response.FriendshipInvitations != null)
     {
         foreach (FriendshipInvitation friendshipInvitation in response.FriendshipInvitations)
         {
             List <User>       source    = response.Users;
             Func <User, bool> predicate = (User user) => user.DisplayName == friendshipInvitation.FriendDisplayName;
             User user2 = source.FirstOrDefault(predicate);
             if (user2 != null)
             {
                 string firstName    = user2.FirstName;
                 string userId       = user2.UserId;
                 string hashedUserId = user2.HashedUserId;
                 string status       = user2.Status;
                 PersistUser(userId, hashedUserId, friendshipInvitation.FriendDisplayName, firstName, status);
             }
             FriendInvitationDocument friendInvitationDocument = new FriendInvitationDocument();
             friendInvitationDocument.FriendInvitationId = friendshipInvitation.FriendshipInvitationId.Value;
             friendInvitationDocument.IsInviter          = friendshipInvitation.IsInviter.Value;
             friendInvitationDocument.IsTrusted          = friendshipInvitation.IsTrusted.Value;
             friendInvitationDocument.DisplayName        = friendshipInvitation.FriendDisplayName;
             FriendInvitationDocument doc2 = friendInvitationDocument;
             InsertFriendInvitation(doc2);
         }
     }
     if (response.Users != null)
     {
         foreach (User user3 in response.Users)
         {
             PersistUser(user3.UserId, user3.HashedUserId, user3.DisplayName, user3.FirstName, user3.Status);
         }
     }
     callback();
 }
Example #2
0
 public void InsertFriend(FriendDocument doc)
 {
     try
     {
         if (!Contains(friends, doc.Swid))
         {
             friends.Insert(doc);
         }
     }
     catch (CorruptionException ex)
     {
         databaseCorruptionHandler.HandleCorruption(ex);
         throw;
     }
 }
Example #3
0
        private static void HandleFriendshipAdded(IUserDatabase userDatabase, IInternalLocalUser localUser, AbstractAddFriendshipNotificationEventArgs e)
        {
            AddFriendshipNotification notification = e.Notification;
            User friend = notification.Friend;

            userDatabase.PersistUser(friend.UserId, friend.HashedUserId, friend.DisplayName, friend.FirstName, friend.Status);
            FriendDocument friendDocument = new FriendDocument();

            friendDocument.Swid      = friend.UserId;
            friendDocument.IsTrusted = notification.IsTrusted.Value;
            friendDocument.Nickname  = null;
            FriendDocument doc = friendDocument;

            userDatabase.InsertFriend(doc);
            long value = e.Notification.FriendshipInvitationId.Value;

            userDatabase.DeleteFriendInvitation(value);
            localUser.AddFriend(friend, notification.IsTrusted.Value, value);
        }