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(); }
public void InsertFriend(FriendDocument doc) { try { if (!Contains(friends, doc.Swid)) { friends.Insert(doc); } } catch (CorruptionException ex) { databaseCorruptionHandler.HandleCorruption(ex); throw; } }
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); }