예제 #1
0
        public List <ActivityFeedListItem> GetOneFriendsActivityFeed(string username)
        {
            using (var ctx = new ApplicationDbContext())
            {
                var userProfile  = ctx.Profiles.Single(e => e.ID == _userId);
                var otherProfile = ctx.Profiles.Single(e => e.Username == username);
                List <ActivityFeedListItem> activityFeed = new List <ActivityFeedListItem>();

                foreach (var activity in otherProfile.Feed)
                {
                    bool likedByUser = LikedByUser(activity);
                    var  timePosted  = GetFeedPostTime(activity);
                    var  whoLiked    = new List <Profile>();
                    foreach (var like in activity.Likes)
                    {
                        whoLiked.Add(like.Profile);
                    }

                    var activityItem = new ActivityFeedListItem
                    {
                        ID             = activity.ID,
                        UserID         = activity.UserID,
                        Name           = otherProfile.FullName,
                        Content        = activity.Content,
                        Activity       = activity.Activity,
                        Username       = otherProfile.Username,
                        ProfilePicture = otherProfile.ProfilePicture,
                        ObjectID       = activity.ObjectID,
                        ObjectType     = activity.ObjectType,
                        Created        = activity.Created,
                        BusinessID     = activity.BusinessID,
                        WhoLiked       = whoLiked,
                        AmountOfLikes  = activity.AmountOfLikes,
                        LikedByUser    = likedByUser,
                        WhenPosted     = timePosted,
                    };
                    activityFeed.Add(activityItem);
                }
                activityFeed = activityFeed.OrderByDescending(d => d.Created.DateTime).ToList();

                return(activityFeed);
            }
        }
예제 #2
0
        public ActivityFeedListItem GetFeedItem(int id)
        {
            using (var ctx = new ApplicationDbContext())
            {
                var activity     = ctx.ActivityFeed.Single(e => e.ID == id);
                var userProfile  = ctx.Profiles.Single(e => e.ID == _userId);
                var activityItem = new ActivityFeedListItem();

                bool likedByUser = LikedByUser(activity);
                var  timePosted  = GetFeedPostTime(activity);
                var  whoLiked    = new List <Profile>();
                foreach (var like in activity.Likes)
                {
                    whoLiked.Add(like.Profile);
                }

                if (activity.UserID != null)
                {
                    activityItem = new ActivityFeedListItem
                    {
                        ID               = activity.ID,
                        UserID           = activity.UserID,
                        Name             = activity.Profile.FullName,
                        Content          = activity.Content,
                        Activity         = activity.Activity,
                        Username         = activity.Profile.Username,
                        ProfilePicture   = activity.Profile.ProfilePicture,
                        UsersFullName    = userProfile.FullName,
                        ObjectID         = activity.ObjectID,
                        ObjectType       = activity.ObjectType,
                        Created          = activity.Created,
                        BusinessID       = activity.BusinessID,
                        WhoLiked         = whoLiked,
                        AmountOfLikes    = activity.AmountOfLikes,
                        AmountOfComments = activity.AmountOfComments,
                        Comments         = activity.Comments,
                        Likes            = activity.Likes,
                        LikedByUser      = likedByUser,
                        WhenPosted       = timePosted,
                    };
                }
                else
                {
                    activityItem = new ActivityFeedListItem
                    {
                        ID               = activity.ID,
                        UserID           = activity.UserID,
                        Name             = activity.Business.Name,
                        Content          = activity.Content,
                        Activity         = activity.Activity,
                        ObjectID         = activity.ObjectID,
                        ObjectType       = activity.ObjectType,
                        UsersFullName    = userProfile.FullName,
                        Created          = activity.Created,
                        BusinessID       = activity.BusinessID,
                        WhoLiked         = whoLiked,
                        AmountOfLikes    = activity.AmountOfLikes,
                        AmountOfComments = activity.AmountOfComments,
                        Likes            = activity.Likes,
                        Comments         = activity.Comments,
                        LikedByUser      = likedByUser,
                        WhenPosted       = timePosted,
                    };
                }
                return(activityItem);
            }
        }
예제 #3
0
        public List <ActivityFeedListItem> GetFullFriendsActivityFeed()
        {
            using (var ctx = new ApplicationDbContext())
            {
                List <ActivityFeedListItem> activityFeed = new List <ActivityFeedListItem>();
                try
                {
                    var userProfile = ctx.Profiles.Single(e => e.ID == _userId);

                    foreach (var friend in userProfile.FriendsList)
                    {
                        //FriendsProfile
                        if (friend.FriendsID != null)
                        {
                            var otherProfile = ctx.Profiles.Single(e => e.ID == friend.FriendsID);

                            //Liked By User??
                            var orderedFeed = otherProfile.Feed.OrderByDescending(d => d.Created.DateTime).ToList();
                            foreach (var activity in orderedFeed)
                            {
                                bool likedByUser = LikedByUser(activity);
                                var  timePosted  = GetFeedPostTime(activity);

                                //Who Liked the Post?
                                var whoLiked = new List <Profile>();
                                foreach (var like in activity.Likes)
                                {
                                    whoLiked.Add(like.Profile);
                                }

                                if ((DateTimeOffset.Now - activity.Created).TotalDays <= 3)
                                {
                                    var activityItem = new ActivityFeedListItem
                                    {
                                        ID             = activity.ID,
                                        UserID         = activity.UserID,
                                        Name           = otherProfile.FullName,
                                        Content        = activity.Content,
                                        Activity       = activity.Activity,
                                        Username       = otherProfile.Username,
                                        ProfilePicture = otherProfile.ProfilePicture,
                                        UsersFullName  = userProfile.FullName,
                                        ObjectID       = activity.ObjectID,
                                        ObjectType     = activity.ObjectType,
                                        Created        = activity.Created,
                                        BusinessID     = activity.BusinessID,
                                        WhoLiked       = whoLiked,
                                        AmountOfLikes  = activity.AmountOfLikes,
                                        LikedByUser    = likedByUser,
                                        WhenPosted     = timePosted,
                                    };
                                    activityFeed.Add(activityItem);
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
                        //BusinessProfile
                        if (friend.BusinessID != null)
                        {
                            var otherProfile = ctx.Businesses.Single(e => e.ID == friend.BusinessID);
                            var orderedFeed  = otherProfile.Feed.OrderByDescending(d => d.Created.DateTime).ToList();
                            foreach (var activity in orderedFeed)
                            {
                                bool likedByUser = LikedByUser(activity);
                                var  timePosted  = GetFeedPostTime(activity);

                                //Who Liked The Post
                                var whoLiked = new List <Profile>();
                                foreach (var like in activity.Likes)
                                {
                                    whoLiked.Add(like.Profile);
                                }

                                if ((DateTimeOffset.Now - activity.Created).TotalDays <= 3 && activity.Activity != "Follow")
                                {
                                    var activityItem = new ActivityFeedListItem
                                    {
                                        ID            = activity.ID,
                                        UserID        = activity.UserID,
                                        Name          = otherProfile.Name,
                                        Content       = activity.Content,
                                        Activity      = activity.Activity,
                                        ObjectID      = activity.ObjectID,
                                        ObjectType    = activity.ObjectType,
                                        UsersFullName = userProfile.FullName,
                                        Created       = activity.Created,
                                        BusinessID    = activity.BusinessID,
                                        WhoLiked      = whoLiked,
                                        AmountOfLikes = activity.AmountOfLikes,
                                        LikedByUser   = likedByUser,
                                        WhenPosted    = timePosted,
                                    };
                                    activityFeed.Add(activityItem);
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
                    }
                    activityFeed = activityFeed.OrderByDescending(d => d.Created.DateTime).ToList();
                    return(activityFeed);
                }
                catch { return(activityFeed); }
            }
        }