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()); }
public void UpdateUserDocument(UserDocument userDocument) { try { users.Update(userDocument); } catch (CorruptionException ex) { databaseCorruptionHandler.HandleCorruption(ex); throw; } }
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); }
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()); }
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); } }
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); }
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)); } }); }