public async Task <ActionResult> TimeLine() { var username = User.Identity.Name; var userByUsername = await DatabaseContext.RegisteredUsers.Find(new BsonDocument { { "Account.UserName", username } }).ToListAsync(); var userTradingDetails = await DatabaseContext.LetsTradingDetails.Find(new BsonDocument { { "_id", userByUsername[0].Id } }).ToListAsync(); var userTimeLinePosts = new UserTimeLinePostsList(); var usersPersonalDetails = await DatabaseContext.RegisteredUsers.Find(_ => true).ToListAsync(); var usersTradingDetails = await DatabaseContext.LetsTradingDetails.Find(_ => true).ToListAsync(); var userid = usersPersonalDetails.Find(user => user.Account.UserName.Equals(username)).Id; var currentUserPersonalDetails = usersPersonalDetails.Find(user => user.Id.Equals(userid)); var currentUserTradingDetails = usersTradingDetails.Find(user => user.Id.Equals(userid)); usersPersonalDetails.Remove(currentUserPersonalDetails); usersTradingDetails.Remove(currentUserTradingDetails); userTimeLinePosts.UserTimelinePostsList = GetUserTimelinePosts(usersPersonalDetails, usersTradingDetails); userTimeLinePosts.UserTimelinePostsList.Reverse(); userTimeLinePosts.UserTimelineRecommendedPostsList = GetUserTimelineRecommendedPosts(userTradingDetails[0], usersPersonalDetails, usersTradingDetails); return(View("TimeLine", userTimeLinePosts)); }
/// <summary> /// This method is used to search for posts on the timeline page of the web application. /// </summary> /// <param name="searchInput">The string that is being searched</param> /// <returns>returns the list of posts that match the search string.</returns> public async Task <ActionResult> SearchPosts(string searchInput) { var isPresent = false; var username = User.Identity.Name; var userTimeLinePosts = new UserTimeLinePostsList(); var usersPersonalDetails = await DatabaseContext.RegisteredUsers.Find(_ => true).ToListAsync(); var usersTradingDetails = await DatabaseContext.LetsTradingDetails.Find(_ => true).ToListAsync(); var userid = usersPersonalDetails.Find(user => user.Account.UserName.Equals(username)).Id; var currentUserPersonalDetails = usersPersonalDetails.Find(user => user.Id.Equals(userid)); var currentUserTradingDetails = usersTradingDetails.Find(user => user.Id.Equals(userid)); usersPersonalDetails.Remove(currentUserPersonalDetails); usersTradingDetails.Remove(currentUserTradingDetails); userTimeLinePosts.UserTimelinePostsList = new List <UsersTimeLinePost>(); var tempList = GetUserTimelinePosts(usersPersonalDetails, usersTradingDetails); foreach (var post in tempList) { foreach (var tag in post.Request.Tags) { if (string.IsNullOrEmpty(searchInput) || tag.ToLower().Equals(searchInput.ToLower())) { isPresent = true; } } if (isPresent) { userTimeLinePosts.UserTimelinePostsList.Add(post); isPresent = false; } } userTimeLinePosts.UserTimelinePostsList.Reverse(); return(View("TimeLineFiltered", userTimeLinePosts)); }