public void TestInviteAFriend() { ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; SessionData data = SecurityManager.CreateNewSession(inviter, ClientInformation); FriendInvitationDTO result = null; RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; result = Service.InviteFriendOperation(data.Token, arg); }); Assert.IsNotNull(result); Assert.AreEqual(InvitationType.Invite, result.InvitationType); int count = Session.QueryOver <FriendInvitation>().RowCount(); Assert.AreEqual(1, count); var invitation = Session.Get <FriendInvitation>(new FriendInvitation() { Inviter = profiles[0], Invited = profiles[1] }); Assert.IsNotNull(invitation); Assert.AreEqual(DateTime.Now.Day, invitation.CreateDate.Day); Assert.AreEqual(FriendInvitationType.Invitation, invitation.InvitationType); }
public void TestDoNotSendMessageAfterInvitation() { profiles[1].Settings.NotificationSocial = ProfileNotification.Message; profiles[0].Settings.NotificationSocial = ProfileNotification.Message; insertToDatabase(profiles[1]); insertToDatabase(profiles[0]); FriendInvitationDTO result = null; ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; SessionData data = CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; result = Service.InviteFriendOperation(data.Token, arg); Assert.IsFalse(((MockEmailService)Service.EMailService).EMailSent); }); int count = Session.QueryOver <Message>().RowCount(); Assert.AreEqual(0, count); }
public void TestCancelInvitation() { ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; FriendInvitationDTO result = null; SessionData data = SecurityManager.CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //result = Service.InviteFriendOperation(data.Token, invited, InviteFriendOperation.Invite); var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; result = Service.InviteFriendOperation(data.Token, arg); }); Assert.IsNotNull(result); Assert.AreEqual(InvitationType.Invite, result.InvitationType); int count = Session.QueryOver <FriendInvitation>().RowCount(); Assert.AreEqual(1, count); //now the same user wants to cancel the invitation (means delete invitation object from the db) RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Reject; result = Service.InviteFriendOperation(data.Token, arg); }); Assert.IsNull(result); count = Session.QueryOver <FriendInvitation>().RowCount(); Assert.AreEqual(0, count); }
public static FriendInvitationDTO InviteFriendOperation(InviteFriendOperationData data) { return(exceptionHandling(delegate { return Instance.InviteFriendOperation(Token, data); })); }
public void TestInviteAFriend_RemoveFromInvitedFavoritesCollection() { ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; profiles[1].FavoriteUsers.Add(profiles[0]); insertToDatabase(profiles[1]); SessionData data = SecurityManager.CreateNewSession(inviter, ClientInformation); FriendInvitationDTO result = null; RunServiceMethod(delegate(InternalBodyArchitectService service) { var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; result = service.InviteFriendOperation(data.Token, arg); }); data = SecurityManager.CreateNewSession(invited, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService service) { var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Accept; result = service.InviteFriendOperation(data.Token, arg); }); var dbProfile = Session.Get <Profile>(invited.Id); Assert.AreEqual(1, dbProfile.Friends.Count); Assert.AreEqual(0, dbProfile.FavoriteUsers.Count); }
public FriendInvitationDTO InviteFriendOperation(Token token, InviteFriendOperationData data) { var securityInfo = SecurityManager.EnsureAuthentication(token); var service = new InvitationService(Session, securityInfo, Configuration, PushNotificationService, EMailService); return(service.InviteFriendOperation(data)); }
public void TestSendMessageAfterRejectFriendship() { profiles[1].Settings.NotificationSocial = ProfileNotification.Message; profiles[0].Settings.NotificationSocial = ProfileNotification.Message; insertToDatabase(profiles[1]); insertToDatabase(profiles[0]); FriendInvitationDTO result = null; ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; SessionData data = CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; result = Service.InviteFriendOperation(data.Token, arg); }); data = CreateNewSession(invited, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Accept; result = Service.InviteFriendOperation(data.Token, arg); }); //reject friendship RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Reject; arg.Message = "test msg"; result = Service.InviteFriendOperation(data.Token, arg); Assert.IsFalse(((MockEmailService)Service.EMailService).EMailSent); }); int count = Session.QueryOver <Message>().RowCount(); //one message from accept and second from reject friendship Assert.AreEqual(2, count); var message = Session.QueryOver <Message>().List(); Assert.AreEqual(invited.GlobalId, message[0].Sender.GlobalId); Assert.AreEqual(MessagePriority.System, message[0].Priority); Assert.AreEqual(inviter.GlobalId, message[0].Receiver.GlobalId); Assert.AreEqual(MessagePriority.System, message[1].Priority); Assert.AreEqual(invited.GlobalId, message[1].Sender.GlobalId); Assert.AreEqual(inviter.GlobalId, message[1].Receiver.GlobalId); Assert.IsNotNull(message[1].Content); }
public void friendshipOperation(InviteFriendOperation operation) { var m = new ServiceManager <InviteFriendOperationCompletedEventArgs>(delegate(BodyArchitectAccessServiceClient client1, EventHandler <InviteFriendOperationCompletedEventArgs> operationCompleted) { InviteFriendOperationData data = new InviteFriendOperationData(); data.Operation = operation; data.User = user; client1.InviteFriendOperationCompleted -= operationCompleted; client1.InviteFriendOperationCompleted += operationCompleted; client1.InviteFriendOperationAsync(ApplicationState.Current.SessionData.Token, data); }); m.OperationCompleted += (s, a) => { FaultException <BAServiceException> faultEx = a.Error as FaultException <BAServiceException>; if (a.Error != null && (faultEx == null || faultEx.Detail.ErrorCode != ErrorCode.ObjectNotFound)) { BugSenseHandler.Instance.SendExceptionAsync(a.Error); onOperationCompleted(); BAMessageBox.ShowError(ApplicationStrings.UserViewModel_ErrOperation); } else { if (operation == InviteFriendOperation.Reject) { ApplicationState.Current.ProfileInfo.Friends.Remove(user); NotifyPropertyChanged("IsFriend"); NotifyPropertyChanged("IsCalendarAccessible"); NotifyPropertyChanged("HasAccessToMeasurements"); } else { ApplicationState.Current.ProfileInfo.Invitations.Add(new FriendInvitationDTO() { CreatedDateTime = DateTime.UtcNow, InvitationType = InvitationType.Invite, Invited = user }); } NotifyPropertyChanged("CanBeFriend"); onOperationCompleted(); } }; if (!m.Run()) { onOperationCompleted(); if (ApplicationState.Current.IsOffline) { BAMessageBox.ShowError(ApplicationStrings.ErrOfflineMode); } else { BAMessageBox.ShowError(ApplicationStrings.ErrNoNetwork); } } }
public void TestGetProfileInformations_WithRejectedFriendship() { ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; SessionData data = SecurityManager.CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; Service.InviteFriendOperation(data.Token, arg); }); data = SecurityManager.CreateNewSession(invited, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Accept; Service.InviteFriendOperation(data.Token, arg); }); int count = Session.QueryOver <FriendInvitation>().RowCount(); Assert.AreEqual(0, count); //reject friendship RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Reject; Service.InviteFriendOperation(data.Token, arg); }); count = Session.QueryOver <FriendInvitation>().RowCount(); Assert.AreEqual(0, count); GetProfileInformationCriteria criteria = new GetProfileInformationCriteria(); ProfileInformationDTO info = null; RunServiceMethod(delegate(InternalBodyArchitectService Service) { info = Service.GetProfileInformation(data.Token, criteria); }); Assert.AreEqual(0, info.Messages.Count); data = SecurityManager.CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { info = Service.GetProfileInformation(data.Token, criteria); }); Assert.AreEqual(2, info.Messages.Count); }
public void TestInviteAFriend_RejectFriendship() { FriendInvitationDTO result = null; ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; SessionData data = SecurityManager.CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //Service.InviteFriendOperation(data.Token, invited, InviteFriendOperation.Invite); var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; Service.InviteFriendOperation(data.Token, arg); }); //so now invited user invoke the same method but with reversed arguments (in this case invited became iviter) data = SecurityManager.CreateNewSession(invited, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //Service.InviteFriendOperation(data.Token, inviter, InviteFriendOperation.Accept); var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Accept; Service.InviteFriendOperation(data.Token, arg); }); int count = Session.QueryOver <FriendInvitation>().RowCount(); var profileInviter = Session.Get <Profile>(inviter.Id); var profileInvited = Session.Get <Profile>(invited.Id); Assert.AreEqual(1, profileInviter.Friends.Count); Assert.AreEqual(1, profileInvited.Friends.Count); data = SecurityManager.CreateNewSession(invited, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //result = Service.InviteFriendOperation(data.Token, inviter, InviteFriendOperation.Reject); var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Reject; result = Service.InviteFriendOperation(data.Token, arg); }); Assert.IsNull(result); count = Session.QueryOver <FriendInvitation>().RowCount(); profileInviter = Session.Get <Profile>(inviter.Id); profileInvited = Session.Get <Profile>(invited.Id); Assert.AreEqual(0, profileInviter.Friends.Count); Assert.AreEqual(0, profileInvited.Friends.Count); Assert.AreEqual(0, count); }
public void TestSendMessageAfterRejectFriendship() { FriendInvitationDTO result = null; ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; SessionData data = SecurityManager.CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; result = Service.InviteFriendOperation(data.Token, arg); }); data = SecurityManager.CreateNewSession(invited, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Accept; result = Service.InviteFriendOperation(data.Token, arg); }); //reject friendship RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Reject; arg.Message = "test msg"; result = Service.InviteFriendOperation(data.Token, arg); }); int count = Session.QueryOver <Message>().RowCount(); //one message from accept and second from reject friendship Assert.AreEqual(2, count); var message = Session.QueryOver <Message>().List(); Assert.AreEqual(MessageType.InvitationAccepted, message[0].MessageType); Assert.AreEqual(invited.Id, message[0].Sender.Id); Assert.AreEqual(MessagePriority.System, message[0].Priority); Assert.AreEqual(inviter.Id, message[0].Receiver.Id); Assert.AreEqual(MessageType.FriendshipRejected, message[1].MessageType); Assert.AreEqual(MessagePriority.System, message[1].Priority); Assert.AreEqual(invited.Id, message[1].Sender.Id); Assert.AreEqual(inviter.Id, message[1].Receiver.Id); Assert.AreEqual("test msg", message[1].Content); }
public void TestInviteAFriend_DeletedProfileException() { ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[3].Tag; SessionData data = SecurityManager.CreateNewSession(inviter, ClientInformation); FriendInvitationDTO result = null; RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; result = Service.InviteFriendOperation(data.Token, arg); }); }
public void TestAcceptInvitation_Statistics() { FriendInvitationDTO result = null; ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; SessionData data = CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //result = Service.InviteFriendOperation(data.Token, invited, InviteFriendOperation.Invite); var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; result = Service.InviteFriendOperation(data.Token, arg); }); data = CreateNewSession(invited, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Accept; result = Service.InviteFriendOperation(data.Token, arg); }); var dbProfile = Session.Get <Profile>(inviter.GlobalId); var test = dbProfile.Friends.Count; Assert.AreEqual(1, dbProfile.Statistics.FriendsCount); dbProfile = Session.Get <Profile>(invited.GlobalId); Assert.AreEqual(1, dbProfile.Statistics.FriendsCount); //now we reject the friendship RunServiceMethod(delegate(InternalBodyArchitectService Service) { //result = Service.InviteFriendOperation(data.Token, inviter, InviteFriendOperation.Reject); var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Reject; result = Service.InviteFriendOperation(data.Token, arg); }); dbProfile = Session.Get <Profile>(inviter.GlobalId); Assert.AreEqual(0, dbProfile.Statistics.FriendsCount); dbProfile = Session.Get <Profile>(invited.GlobalId); Assert.AreEqual(0, dbProfile.Statistics.FriendsCount); }
public void TestInviteAFriend_RejectAfterRejectFriendship() { ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; SessionData data = SecurityManager.CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //Service.InviteFriendOperation(data.Token, invited, InviteFriendOperation.Invite); var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; Service.InviteFriendOperation(data.Token, arg); }); data = SecurityManager.CreateNewSession(invited, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //Service.InviteFriendOperation(data.Token, inviter, InviteFriendOperation.Accept); var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Accept; Service.InviteFriendOperation(data.Token, arg); }); data = SecurityManager.CreateNewSession(invited, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //Service.InviteFriendOperation(data.Token, inviter, InviteFriendOperation.Reject); var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Reject; Service.InviteFriendOperation(data.Token, arg); }); data = SecurityManager.CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //Service.InviteFriendOperation(data.Token, invited, InviteFriendOperation.Reject); var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Reject; Service.InviteFriendOperation(data.Token, arg); }); }
void inviteOperation(InviteFriendOperation operation) { progressBar.ShowProgress(true, ApplicationStrings.ProfileInfoPage_ProgressSend); var m = new ServiceManager <InviteFriendOperationCompletedEventArgs>(delegate(BodyArchitectAccessServiceClient client1, EventHandler <InviteFriendOperationCompletedEventArgs> operationCompleted) { InviteFriendOperationData data = new InviteFriendOperationData(); data.Operation = operation; data.User = viewModel.User; client1.InviteFriendOperationCompleted -= operationCompleted; client1.InviteFriendOperationCompleted += operationCompleted; client1.InviteFriendOperationAsync(ApplicationState.Current.SessionData.Token, data); }); m.OperationCompleted += (s, a) => { progressBar.ShowProgress(false); FaultException <BAServiceException> faultEx = a.Error as FaultException <BAServiceException>; if (a.Error != null && faultEx.Detail.ErrorCode != ErrorCode.ObjectNotFound) { BAMessageBox.ShowError(ApplicationStrings.InvitationViewPage_ErrInvitationOperation); } else { ApplicationState.Current.ProfileInfo.Invitations.Remove(viewModel.Invitation); if (NavigationService.CanGoBack) { NavigationService.GoBack(); } } }; if (!m.Run()) { progressBar.ShowProgress(false); if (ApplicationState.Current.IsOffline) { BAMessageBox.ShowError(ApplicationStrings.ErrOfflineMode); } else { BAMessageBox.ShowError(ApplicationStrings.ErrNoNetwork); } } }
private void usrProgressIndicatorButtons1_OkClick(object sender, CancellationSourceEventArgs e) { try { InviteFriendOperationData data = new InviteFriendOperationData(); data.User = user; data.Operation = operation; data.Message = memoEdit1.Text; ServiceManager.InviteFriendOperation(data); UserContext.RefreshUserData(); ThreadSafeClose(); } catch (CannotAcceptRejectInvitationDoesntExistException ex) { UserContext.RefreshUserData(); ExceptionHandler.Default.Process(ex, ApplicationStrings.ErrorInvitationDoesntExist, ErrorWindow.MessageBox); ThreadSafeClose(System.Windows.Forms.DialogResult.OK); } }
public void TestInviteAFriend_AcceptInvitation_UsingInviteOperation() { ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; FriendInvitationDTO result = null; SessionData data = CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //result = Service.InviteFriendOperation(data.Token, invited, InviteFriendOperation.Invite); var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; result = Service.InviteFriendOperation(data.Token, arg); }); Assert.IsNotNull(result); Assert.AreEqual(InvitationType.Invite, result.InvitationType); //so now invited user invoke the same method but with reversed arguments (in this case invited became iviter) data = CreateNewSession(invited, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //result = Service.InviteFriendOperation(data.Token, inviter, InviteFriendOperation.Invite); var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Invite; result = Service.InviteFriendOperation(data.Token, arg); }); Assert.IsNull(result); int count = Session.QueryOver <FriendInvitation>().RowCount(); var profileInviter = Session.Get <Profile>(inviter.GlobalId); var profileInvited = Session.Get <Profile>(invited.GlobalId); Assert.AreEqual(1, profileInviter.Friends.Count); Assert.AreEqual(1, profileInvited.Friends.Count); Assert.AreEqual(profileInvited, profileInviter.Friends.ElementAt(0)); Assert.AreEqual(profileInviter, profileInvited.Friends.ElementAt(0)); Assert.AreEqual(0, count); }
public void TestInviteAFriend_AcceptInvitation_UsingAcceptOperation() { FriendInvitationDTO result = null; ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; SessionData data = SecurityManager.CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //result = Service.InviteFriendOperation(data.Token, invited, InviteFriendOperation.Invite); var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; result = Service.InviteFriendOperation(data.Token, arg); }); Assert.IsNotNull(result); Assert.AreEqual(InvitationType.Invite, result.InvitationType); data = SecurityManager.CreateNewSession(invited, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //result = Service.InviteFriendOperation(data.Token, inviter, InviteFriendOperation.Accept); var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Accept; result = Service.InviteFriendOperation(data.Token, arg); }); Assert.IsNull(result); int count = Session.QueryOver <FriendInvitation>().RowCount(); var profileInviter = Session.Get <Profile>(inviter.Id); var profileInvited = Session.Get <Profile>(invited.Id); Assert.AreEqual(1, profileInviter.Friends.Count); Assert.AreEqual(1, profileInvited.Friends.Count); Assert.AreEqual(profileInvited, profileInviter.Friends[0]); Assert.AreEqual(profileInviter, profileInvited.Friends[0]); Assert.AreEqual(0, count); }
public void TestInviteAFriend_DuplicateInvitation() { ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; FriendInvitationDTO result = null; SessionData data = SecurityManager.CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //result = Service.InviteFriendOperation(data.Token, invited, InviteFriendOperation.Invite); var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; result = Service.InviteFriendOperation(data.Token, arg); }); Assert.IsNotNull(result); Assert.AreEqual(InvitationType.Invite, result.InvitationType); int count = Session.QueryOver <FriendInvitation>().RowCount(); Assert.AreEqual(1, count); //we send invitation second time - in the database still should be one invitation RunServiceMethod(delegate(InternalBodyArchitectService Service) { //result = Service.InviteFriendOperation(data.Token, invited, InviteFriendOperation.Invite); var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; result = Service.InviteFriendOperation(data.Token, arg); }); Assert.IsNull(result); count = Session.QueryOver <FriendInvitation>().RowCount(); Assert.AreEqual(1, count); var invitation = Session.QueryOver <FriendInvitation>().SingleOrDefault(); Assert.IsNotNull(invitation); Assert.AreEqual(FriendInvitationType.Invitation, invitation.InvitationType); }
public void TestSendMessageAfterRejectInvitation() { FriendInvitationDTO result = null; ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; SessionData data = SecurityManager.CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; result = Service.InviteFriendOperation(data.Token, arg); }); data = SecurityManager.CreateNewSession(invited, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Reject; arg.Message = "test msg"; result = Service.InviteFriendOperation(data.Token, arg); }); int count = Session.QueryOver <Message>().RowCount(); Assert.AreEqual(1, count); var message = Session.QueryOver <Message>().SingleOrDefault(); Assert.AreEqual(MessageType.InvitationRejected, message.MessageType); Assert.AreEqual("test msg", message.Content); Assert.AreEqual(MessagePriority.System, message.Priority); Assert.AreEqual(invited.Id, message.Sender.Id); Assert.AreEqual(inviter.Id, message.Receiver.Id); }
public void TestInviteAFriend_AlreadyFriendsException() { ProfileDTO inviter = (ProfileDTO)profiles[0].Tag; ProfileDTO invited = (ProfileDTO)profiles[1].Tag; SessionData data = SecurityManager.CreateNewSession(inviter, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //Service.InviteFriendOperation(data.Token, invited, InviteFriendOperation.Invite); var arg = new InviteFriendOperationData(); arg.User = invited; arg.Operation = InviteFriendOperation.Invite; Service.InviteFriendOperation(data.Token, arg); }); //accept invitation data = SecurityManager.CreateNewSession(invited, ClientInformation); RunServiceMethod(delegate(InternalBodyArchitectService Service) { //Service.InviteFriendOperation(data.Token, inviter, InviteFriendOperation.Accept); var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Accept; Service.InviteFriendOperation(data.Token, arg); }); //this should throw exception because those users are friends already RunServiceMethod(delegate(InternalBodyArchitectService Service) { //Service.InviteFriendOperation(data.Token, inviter, InviteFriendOperation.Invite); var arg = new InviteFriendOperationData(); arg.User = inviter; arg.Operation = InviteFriendOperation.Invite; Service.InviteFriendOperation(data.Token, arg); }); }
public FriendInvitationDTO InviteFriendOperation(Token token, InviteFriendOperationData data) { return(exceptionHandling(token, () => InternalService.InviteFriendOperation(token, data))); }
public FriendInvitationDTO InviteFriendOperation(Token token, InviteFriendOperationData data) { throw new NotImplementedException(); }
public FriendInvitationDTO InviteFriendOperation(InviteFriendOperationData data) { Log.WriteWarning("InviteFriendOperation:Username={0},Operation:{1},User:{2}", SecurityInfo.SessionData.Profile.UserName, data.Operation, data.User.UserName); if (SecurityInfo.SessionData.Profile.GlobalId == data.User.GlobalId) { throw new InvalidOperationException("You cannot add yourself as a friend"); } var session = Session; FriendInvitation returnValue = null; using (var tx = session.BeginSaveTransaction()) { var friendProfile = session.Get <Profile>(data.User.GlobalId); var inviter = session.Get <Profile>(SecurityInfo.SessionData.Profile.GlobalId); if (friendProfile.IsDeleted) { throw new UserDeletedException("Cannot invite a deleted profile"); } if (data.Operation == Model.InviteFriendOperation.Invite) { if (inviter.Friends.Contains(friendProfile)) { throw new ProfileAlreadyFriendException("Specified profile is already a friend"); } //check if user add invitation second time var existingInvitation = session.Get <FriendInvitation>(new FriendInvitation() { Inviter = inviter, Invited = friendProfile }); if (existingInvitation == null) { Log.WriteVerbose("1: existingInvitation == null"); existingInvitation = session.Get <FriendInvitation>(new FriendInvitation() { Inviter = friendProfile, Invited = inviter }); if (existingInvitation == null) { Log.WriteVerbose("2: existingInvitation == null. Perform invite operation"); FriendInvitation invitation = new FriendInvitation(); invitation.Inviter = inviter; invitation.Invited = friendProfile; invitation.Message = data.Message; invitation.CreateDate = Configuration.TimerService.UtcNow; invitation.InvitationType = FriendInvitationType.Invite; session.Save(invitation); returnValue = invitation; if ((friendProfile.Settings.NotificationSocial & ProfileNotification.Email) == ProfileNotification.Email) { EmailService.SendEMail(friendProfile, "InviteFriendEMailSubject", "InviteFriendEMailMessage", inviter.UserName, DateTime.Now, data.Message); } } else { acceptInvitation(session, friendProfile, inviter, existingInvitation, data); } } } else if (data.Operation == Model.InviteFriendOperation.Accept) { var existingInvitation = session.Get <FriendInvitation>(new FriendInvitation() { Inviter = friendProfile, Invited = inviter }); if (existingInvitation != null) { acceptInvitation(session, friendProfile, inviter, existingInvitation, data); } else { throw new CannotAcceptRejectInvitationDoesntExistException("You are not invited to be a friend for specified user"); } } else {//reject var existingInvitation = session.Get <FriendInvitation>(new FriendInvitation() { Inviter = friendProfile, Invited = inviter }); if (existingInvitation != null) { Log.WriteVerbose("3: existingInvitation != null."); if (existingInvitation.InvitationType == FriendInvitationType.Invite) { session.Delete(existingInvitation); //messageService.SendSystemMessage(data.Message, inviter, friendProfile, MessageType.InvitationRejected); //SendMessage(friendProfile.Settings.NotificationSocial, inviter, friendProfile, data.Message, MessageType.InvitationRejected //, "RejectInvitationEmailSubject", "RejectInvitationEmailMessage", inviter.UserName, DateTime.Now, data.Message); NewSendMessageEx(inviter.Settings.NotificationSocial, inviter, friendProfile, "RejectInvitationEmailSubject", "RejectInvitationEmailMessage", inviter.UserName, DateTime.Now, data.Message); } else { Log.WriteError("4:This should not be invoked."); } } else if (inviter.Friends.Contains(friendProfile)) { Log.WriteVerbose("Reject friendship"); inviter.Friends.Remove(friendProfile); friendProfile.Friends.Remove(inviter); ProfileStatisticsUpdater.UpdateFriends(session, inviter, friendProfile); //SendMessage(friendProfile.Settings.NotificationSocial, inviter, friendProfile, data.Message, MessageType.FriendshipRejected // , "RejectFriendshipEmailSubject", "RejectFriendshipEmailMessage", inviter.UserName, DateTime.Now, data.Message); NewSendMessageEx(inviter.Settings.NotificationSocial, inviter, friendProfile, "RejectFriendshipEmailSubject", "RejectFriendshipEmailMessage", inviter.UserName, DateTime.Now, data.Message); //messageService.SendSystemMessage(data.Message, inviter, friendProfile, MessageType.FriendshipRejected); } else { existingInvitation = session.Get <FriendInvitation>(new FriendInvitation() { Inviter = inviter, Invited = friendProfile }); //user whats to cancel invitation if (existingInvitation != null) { Log.WriteVerbose("Reject invitation"); session.Delete(existingInvitation); } else { throw new CannotAcceptRejectInvitationDoesntExistException("There is no invitation to reject"); } } } tx.Commit(); Log.WriteVerbose("Operation completed"); if (returnValue != null) { return(ObjectsConverter.ConvertFriendInvitation(inviter, returnValue)); } return(null); } }
void acceptInvitation(ISession session, Profile inviter, Profile invited, FriendInvitation existingInvitation, InviteFriendOperationData data) { Log.WriteVerbose("accept invitation. Friend:{0}, Inviter:{1}", inviter.UserName, invited.UserName); inviter.Friends.Add(invited); invited.Friends.Add(inviter); session.Update(inviter); session.Update(invited); session.Delete(existingInvitation); //now check and remove this user from followers list invited.FavoriteUsers.Remove(inviter); inviter.FavoriteUsers.Remove(invited); ProfileStatisticsUpdater.UpdateFriends(session, invited, inviter); //MessageService messageService = new MessageService(Session, null, Configuration, PushNotification); //messageService.SendSystemMessage(data.Message,invited, inviter, MessageType.InvitationAccepted); //SendMessage(inviter.Settings.NotificationSocial, invited, inviter, data.Message, MessageType.InvitationAccepted, "AcceptInvitationEMailSubject", "AcceptInvitationEMailMessage", inviter.UserName,DateTime.Now,data.Message); NewSendMessageEx(inviter.Settings.NotificationSocial, invited, inviter, "AcceptInvitationEMailSubject", "AcceptInvitationEMailMessage", inviter.UserName, DateTime.Now, data.Message); }