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 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 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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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 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);
        }
Esempio n. 8
0
        public static FriendInvitationDTO ConvertFriendInvitation(Profile profileDb, FriendInvitation invitation)
        {
            FriendInvitationDTO dto = Mapper.Map <FriendInvitation, FriendInvitationDTO>(invitation);

            //we don't need to send the same user who invoke this method
            if (invitation.Invited == profileDb)
            {
                dto.Invited = null;
            }
            else
            {
                dto.Inviter = null;
            }
            return(dto);
        }
        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);
            });
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 15
0
 public InvitationListItem(FriendInvitationDTO invitation)
 {
     this.invitation = invitation;
 }
Esempio n. 16
0
        public ProfileInformationDTO GetProfileInformation(Token token, GetProfileInformationCriteria criteria)
        {
            BodyArchitect.Service.V2.InternalBodyArchitectService service = new V2.InternalBodyArchitectService(NHibernateContext.Current().Session);
            V2.Model.Token v2token = new V2.Model.Token(token.SessionId, token.Language);
            V2.Model.GetProfileInformationCriteria v2Crit = new V2.Model.GetProfileInformationCriteria();
            //v2Crit.UserId
            int? tempId;
            Guid?tempGuid;

            if ((tempGuid = h.GetGuidFromInt(criteria)) == null)
            {
                tempGuid = null;
            }
            v2Crit.UserId = tempGuid;
            var res = service.GetProfileInformation(v2token, v2Crit);

            ProfileInformationDTO profile = new ProfileInformationDTO();

            profile.AboutInformation = res.AboutInformation;
            profile.Birthday         = res.Birthday;

            foreach (V2.Model.UserSearchDTO u in res.FavoriteUsers)
            {
                UserSearchDTO a = new UserSearchDTO();
                a.CountryId = u.CountryId;
                //a.CreationDate = u.CreationDate;
                SetProperty(a, "CreationDate", u.CreationDate);
                a.Gender = (BodyArchitect.Service.Model.Gender)u.Gender;
                //a.Id = u.GlobalId;
                tempId = null;
                if ((tempId = h.GetIntFromGuid(u.GlobalId)) == null)
                {
                    tempId = h.SetIntFromGuid(u);
                }
                if (tempId != null)
                {
                    a.Id = (int)tempId;
                }
                else
                {
                    throw new ArgumentException("Id not assigned to guid", u.GlobalId.ToString());
                }

                //a.IsDeleted = u.IsDeleted;
                SetProperty(a, "IsDeleted", u.IsDeleted);
                //a.Picture = u.Picture;
                a.Picture = new PictureInfoDTO();
                if (u.Picture != null)
                {
                    a.Picture.Hash      = u.Picture.Hash;
                    a.Picture.PictureId = u.Picture.PictureId;
                    a.Picture.SessionId = u.Picture.SessionId;
                }
                else
                {
                    a.Picture = null;
                }
                a.Privacy.BirthdayDate          = (BodyArchitect.Service.Model.Privacy)u.Privacy.BirthdayDate;
                a.Privacy.CalendarView          = (BodyArchitect.Service.Model.Privacy)u.Privacy.CalendarView;
                a.Privacy.Friends               = (BodyArchitect.Service.Model.Privacy)u.Privacy.Friends;
                a.Privacy.Searchable            = u.Privacy.Searchable;
                a.Privacy.Sizes                 = (BodyArchitect.Service.Model.Privacy)u.Privacy.Sizes;
                a.Statistics.A6WEntriesCount    = u.Statistics.A6WEntriesCount;
                a.Statistics.A6WFullCyclesCount = u.Statistics.A6WFullCyclesCount;
                a.Statistics.BlogCommentsCount  = u.Statistics.TrainingDayCommentsCount;
                a.Statistics.BlogEntriesCount   = u.Statistics.BlogEntriesCount;
                a.Statistics.FollowersCount     = u.Statistics.FollowersCount;
                a.Statistics.FriendsCount       = u.Statistics.FriendsCount;
                //a.Statistics.Id
                if ((tempId = h.GetIntFromGuid(u.Statistics.GlobalId)) == null)
                {
                    tempId = h.SetIntFromGuid(u.Statistics);
                }
                if (tempId != null)
                {
                    a.Id = (int)tempId;
                }
                else
                {
                    throw new ArgumentException("Id not assigned to guid", u.Statistics.GlobalId.ToString());
                }
                //a.Statistics.IsNew
                a.Statistics.LastEntryDate                = u.Statistics.LastEntryDate;
                a.Statistics.LastLoginDate                = u.Statistics.LastLoginDate;
                a.Statistics.LoginsCount                  = u.Statistics.LoginsCount;
                a.Statistics.MyBlogCommentsCount          = u.Statistics.MyTrainingDayCommentsCount;
                a.Statistics.SizeEntriesCount             = u.Statistics.SizeEntriesCount;
                a.Statistics.StrengthTrainingEntriesCount = u.Statistics.StrengthTrainingEntriesCount;
                a.Statistics.SupplementEntriesCount       = u.Statistics.SupplementEntriesCount;
                a.Statistics.Tag = u.Statistics.Tag;
                a.Statistics.TrainingDaysCount = u.Statistics.TrainingDaysCount;
                a.Statistics.VotingsCount      = u.Statistics.VotingsCount;
                a.Statistics.WorkoutPlansCount = u.Statistics.WorkoutPlansCount;
                a.UserName = u.UserName;
                profile.FavoriteUsers.Add(a);
            }


            //profile.Friends = res.Friends;
            foreach (V2.Model.UserSearchDTO u in res.Friends)
            {
                UserSearchDTO a = new UserSearchDTO();
                a.CountryId = u.CountryId;
                //a.CreationDate = u.CreationDate;
                SetProperty(a, "CreationDate", u.CreationDate);
                a.Gender = (BodyArchitect.Service.Model.Gender)u.Gender;
                //a.Id = u.GlobalId;
                tempId = null;
                if ((tempId = h.GetIntFromGuid(u.GlobalId)) == null)
                {
                    tempId = h.SetIntFromGuid(u);
                }
                if (tempId != null)
                {
                    a.Id = (int)tempId;
                }
                else
                {
                    throw new ArgumentException("Id not assigned to guid", u.GlobalId.ToString());
                }

                //a.IsDeleted = u.IsDeleted;
                SetProperty(a, "IsDeleted", u.IsDeleted);
                //a.Picture = u.Picture;
                a.Picture = new PictureInfoDTO();
                if (u.Picture != null)
                {
                    a.Picture.Hash      = u.Picture.Hash;
                    a.Picture.PictureId = u.Picture.PictureId;
                    a.Picture.SessionId = u.Picture.SessionId;
                }
                else
                {
                    a.Picture = null;
                }
                a.Privacy.BirthdayDate          = (BodyArchitect.Service.Model.Privacy)u.Privacy.BirthdayDate;
                a.Privacy.CalendarView          = (BodyArchitect.Service.Model.Privacy)u.Privacy.CalendarView;
                a.Privacy.Friends               = (BodyArchitect.Service.Model.Privacy)u.Privacy.Friends;
                a.Privacy.Searchable            = u.Privacy.Searchable;
                a.Privacy.Sizes                 = (BodyArchitect.Service.Model.Privacy)u.Privacy.Sizes;
                a.Statistics.A6WEntriesCount    = u.Statistics.A6WEntriesCount;
                a.Statistics.A6WFullCyclesCount = u.Statistics.A6WFullCyclesCount;
                a.Statistics.BlogCommentsCount  = u.Statistics.TrainingDayCommentsCount;
                a.Statistics.BlogEntriesCount   = u.Statistics.BlogEntriesCount;
                a.Statistics.FollowersCount     = u.Statistics.FollowersCount;
                a.Statistics.FriendsCount       = u.Statistics.FriendsCount;
                //a.Statistics.Id
                if ((tempId = h.GetIntFromGuid(u.Statistics.GlobalId)) == null)
                {
                    tempId = h.SetIntFromGuid(u.Statistics);
                }
                if (tempId != null)
                {
                    a.Id = (int)tempId;
                }
                else
                {
                    throw new ArgumentException("Id not assigned to guid", u.Statistics.GlobalId.ToString());
                }
                //a.Statistics.IsNew
                a.Statistics.LastEntryDate                = u.Statistics.LastEntryDate;
                a.Statistics.LastLoginDate                = u.Statistics.LastLoginDate;
                a.Statistics.LoginsCount                  = u.Statistics.LoginsCount;
                a.Statistics.MyBlogCommentsCount          = u.Statistics.MyTrainingDayCommentsCount;
                a.Statistics.SizeEntriesCount             = u.Statistics.SizeEntriesCount;
                a.Statistics.StrengthTrainingEntriesCount = u.Statistics.StrengthTrainingEntriesCount;
                a.Statistics.SupplementEntriesCount       = u.Statistics.SupplementEntriesCount;
                a.Statistics.Tag = u.Statistics.Tag;
                a.Statistics.TrainingDaysCount = u.Statistics.TrainingDaysCount;
                a.Statistics.VotingsCount      = u.Statistics.VotingsCount;
                a.Statistics.WorkoutPlansCount = u.Statistics.WorkoutPlansCount;
                a.UserName = u.UserName;
                profile.FavoriteUsers.Add(a);
            }

            //profile.Invitations =  res.Invitations;
            foreach (V2.Model.FriendInvitationDTO c in res.Invitations)
            {
                Model.FriendInvitationDTO a = new FriendInvitationDTO();
                a.CreatedDateTime   = c.CreatedDateTime;
                a.InvitationType    = (BodyArchitect.Service.Model.InvitationType)c.InvitationType;
                a.Invited.CountryId = c.Invited.CountryId;
                //a.Invited.Id
                SetProperty(a.Invited, "CreationDate", c.Invited.CreationDate);
                a.Invited.Gender = (BodyArchitect.Service.Model.Gender)c.Invited.Gender;
                //a.Id = c.Invited.GlobalId;
                tempId = null;
                if ((tempId = h.GetIntFromGuid(c.Invited.GlobalId)) == null)
                {
                    tempId = h.SetIntFromGuid(c.Invited);
                }
                if (tempId != null)
                {
                    a.Invited.Id = (int)tempId;
                }
                else
                {
                    throw new ArgumentException("Id not assigned to guid", c.Invited.GlobalId.ToString());
                }

                //a.IsDeleted = c.Invited.IsDeleted;
                SetProperty(a.Invited, "IsDeleted", c.Invited.IsDeleted);
                //a.Picture = c.Invited.Picture;
                a.Invited.Picture = new PictureInfoDTO();
                if (c.Invited.Picture != null)
                {
                    a.Invited.Picture.Hash      = c.Invited.Picture.Hash;
                    a.Invited.Picture.PictureId = c.Invited.Picture.PictureId;
                    a.Invited.Picture.SessionId = c.Invited.Picture.SessionId;
                }
                else
                {
                    a.Invited.Picture = null;
                }
                a.Invited.Privacy.BirthdayDate = (BodyArchitect.Service.Model.Privacy)c.Invited.Privacy.BirthdayDate;
                a.Invited.Privacy.CalendarView = (BodyArchitect.Service.Model.Privacy)c.Invited.Privacy.CalendarView;
                a.Invited.Privacy.Friends      = (BodyArchitect.Service.Model.Privacy)c.Invited.Privacy.Friends;
                a.Invited.Privacy.Searchable   = c.Invited.Privacy.Searchable;
                a.Invited.Privacy.Sizes        = (BodyArchitect.Service.Model.Privacy)c.Invited.Privacy.Sizes;
                a.Invited.UserName             = c.Invited.UserName;



                a.Inviter.CountryId = c.Inviter.CountryId;
                //a.Inviter.Id
                SetProperty(a.Inviter, "CreationDate", c.Inviter.CreationDate);
                a.Inviter.Gender = (BodyArchitect.Service.Model.Gender)c.Inviter.Gender;
                //a.Id = c.Inviter.GlobalId;
                tempId = null;
                if ((tempId = h.GetIntFromGuid(c.Inviter.GlobalId)) == null)
                {
                    tempId = h.SetIntFromGuid(c.Inviter);
                }
                if (tempId != null)
                {
                    a.Inviter.Id = (int)tempId;
                }
                else
                {
                    throw new ArgumentException("Id not assigned to guid", c.Inviter.GlobalId.ToString());
                }

                //a.IsDeleted = c.Inviter.IsDeleted;
                SetProperty(a.Inviter, "IsDeleted", c.Inviter.IsDeleted);
                //a.Picture = c.Inviter.Picture;
                a.Inviter.Picture = new PictureInfoDTO();
                if (c.Inviter.Picture != null)
                {
                    a.Inviter.Picture.Hash      = c.Inviter.Picture.Hash;
                    a.Inviter.Picture.PictureId = c.Inviter.Picture.PictureId;
                    a.Inviter.Picture.SessionId = c.Inviter.Picture.SessionId;
                }
                else
                {
                    a.Inviter.Picture = null;
                }
                a.Inviter.Privacy.BirthdayDate = (BodyArchitect.Service.Model.Privacy)c.Inviter.Privacy.BirthdayDate;
                a.Inviter.Privacy.CalendarView = (BodyArchitect.Service.Model.Privacy)c.Inviter.Privacy.CalendarView;
                a.Inviter.Privacy.Friends      = (BodyArchitect.Service.Model.Privacy)c.Inviter.Privacy.Friends;
                a.Inviter.Privacy.Searchable   = c.Inviter.Privacy.Searchable;
                a.Inviter.Privacy.Sizes        = (BodyArchitect.Service.Model.Privacy)c.Inviter.Privacy.Sizes;
                a.Inviter.UserName             = c.Inviter.UserName;

                a.Message = c.Message;
                profile.Invitations.Add(a);
            }


            profile.IsActivated       = res.IsActivated;
            profile.LastLogin         = res.LastLogin;
            profile.Messages          = null; //?
            profile.RetrievedDateTime = res.RetrievedDateTime;
            //profile.Settings = res.Settings;

            profile.Settings = new ProfileSettingsDTO();
            tempId           = null;
            if ((tempId = h.GetIntFromGuid(res.Settings.GlobalId)) == null)
            {
                tempId = h.SetIntFromGuid(res.Settings);
            }
            if (tempId != null)
            {
                profile.Settings.Id = (int)tempId;
            }
            else
            {
                throw new ArgumentException("Id not assigned to guid", res.Settings.GlobalId.ToString());
            }
            //profile.Role = res.Profile.
            profile.Settings.AutomaticUpdateMeasurements = res.Settings.AutomaticUpdateMeasurements;
            //profile.Settings.Id = res.Profile.Settings.GlobalId;

            //SetProperty(profile.Settings, "IsNew", res.Profile.Settings.IsNew);
            //profile.Settings.IsNew = res.Profile.Settings.IsNew;
            //TODO:check notifications
            profile.Settings.NotificationBlogCommentAdded      = res.Settings.NotificationBlogCommentAdded != BodyArchitect.Service.V2.Model.ProfileNotification.None;
            profile.Settings.NotificationExerciseVoted         = res.Settings.NotificationVoted != BodyArchitect.Service.V2.Model.ProfileNotification.None; //??
            profile.Settings.NotificationFriendChangedCalendar = res.Settings.NotificationFriendChangedCalendar != BodyArchitect.Service.V2.Model.ProfileNotification.None;
            profile.Settings.NotificationWorkoutPlanVoted      = res.Settings.NotificationVoted != BodyArchitect.Service.V2.Model.ProfileNotification.None; //??

            profile.User           = new UserSearchDTO();
            profile.User.CountryId = res.User.CountryId;
            SetProperty(profile.User, "CreationDate", res.User.CreationDate);
            profile.User.Gender = (BodyArchitect.Service.Model.Gender)res.User.Gender;
            //a.Id = res.User.GlobalId;
            tempId = null;
            if ((tempId = h.GetIntFromGuid(res.User.GlobalId)) == null)
            {
                tempId = h.SetIntFromGuid(res.User);
            }
            if (tempId != null)
            {
                profile.User.Id = (int)tempId;
            }
            else
            {
                throw new ArgumentException("Id not assigned to guid", res.User.GlobalId.ToString());
            }

            //a.IsDeleted = res.User.IsDeleted;
            SetProperty(profile.User, "IsDeleted", res.User.IsDeleted);
            //a.Picture = res.User.Picture;
            profile.User.Picture = new PictureInfoDTO();
            if (res.User.Picture != null)
            {
                profile.User.Picture.Hash      = res.User.Picture.Hash;
                profile.User.Picture.PictureId = res.User.Picture.PictureId;
                profile.User.Picture.SessionId = res.User.Picture.SessionId;
            }
            else
            {
                profile.User.Picture = null;
            }
            profile.User.Privacy.BirthdayDate = (BodyArchitect.Service.Model.Privacy)res.User.Privacy.BirthdayDate;
            profile.User.Privacy.CalendarView = (BodyArchitect.Service.Model.Privacy)res.User.Privacy.CalendarView;
            profile.User.Privacy.Friends      = (BodyArchitect.Service.Model.Privacy)res.User.Privacy.Friends;
            profile.User.Privacy.Searchable   = res.User.Privacy.Searchable;
            profile.User.Privacy.Sizes        = (BodyArchitect.Service.Model.Privacy)res.User.Privacy.Sizes;
            profile.User.UserName             = res.User.UserName;


            profile.Wymiary = new WymiaryDTO();
            if (res.Wymiary != null)
            {
                profile.Wymiary.DateTime = res.Wymiary.Time.DateTime;

                profile.Wymiary.Height = (int)res.Wymiary.Height;   //possible loss of data
                tempId = null;
                if ((tempId = h.GetIntFromGuid(res.Wymiary.GlobalId)) == null)
                {
                    tempId = h.SetIntFromGuid(res.Wymiary);
                }
                if (tempId != null)
                {
                    profile.Wymiary.Id = (int)tempId;
                }
                else
                {
                    throw new ArgumentException("Id not assigned to guid", res.Wymiary.GlobalId.ToString());
                }
                //profile.Wymiary.IsEmpty = res.Wymiary.IsEmpty; //READ ONLY
                profile.Wymiary.IsNaCzczo = false;  //res.Wymiary.????
                //profile.Wymiary.IsNew = res.Wymiary.IsNew;    //READ ONLY
                profile.Wymiary.Klatka       = (float)res.Wymiary.Klatka;
                profile.Wymiary.LeftBiceps   = (float)res.Wymiary.LeftBiceps;
                profile.Wymiary.LeftForearm  = (float)res.Wymiary.LeftForearm;
                profile.Wymiary.LeftUdo      = (float)res.Wymiary.LeftUdo;
                profile.Wymiary.Pas          = (float)res.Wymiary.Pas;
                profile.Wymiary.RightBiceps  = (float)res.Wymiary.RightBiceps;
                profile.Wymiary.RightForearm = (float)res.Wymiary.RightForearm;
                profile.Wymiary.RightUdo     = (float)res.Wymiary.RightUdo;
                profile.Wymiary.Tag          = res.Wymiary.Tag;
                profile.Wymiary.Weight       = (float)res.Wymiary.Weight;
            }
            return(profile);
        }
 public InvitationItemViewModel(FriendInvitationDTO invitation)
 {
     this.invitation = invitation;
 }