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); } }
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); } }
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); } } }