// GET: Innovation public ActionResult Index() { var userId = new Guid("AD350B67-86E3-4AFD-955F-1315B111EAFD"); //var userId = new Guid(User.Identity.GetUserId()); var userIdeas = new IdeasDto(); IdeasViewModel ivm = new IdeasViewModel(); //TAKE THE MOST RECENT (LAST) IDEA SEARCHED BY THE CURRENTLY LOGGED IN USER var userSearchedIdeas = _db.UserIdeaSearchHistory.Where(u => u.UserID == userId).Take(1).OrderByDescending(s => s.ID).FirstOrDefault(); //TAKE 5 RECENT IDEAS VIEWED BY THE USER CURRENTLY LOGGED IN var userViewedIdeas = _db.UserIdeaViewed.Where(uvi => uvi.UserID == userId).Take(5).OrderByDescending(uvi => uvi.ID).Select(uvi => uvi.UserIdeaID); //var requestedIdeas = new IdeasDto().GetIdeaRequest().Where(ri => ri.IdeaRequesterId == userId).Select(i => i.IdeasId); //ALL IDEAS ivm.RecentIdeas = userIdeas.GetIdeas().Take(10).OrderByDescending(ri => ri.IdeasId).ToList(); //TODO: Ensure that the system pulls all ideas except my own?? if (userViewedIdeas.Any()) { foreach (var ideas in userViewedIdeas) { //BASED ON USER PREFERENCES AND SEARCHES ivm.ViewedIdeas = userIdeas.GetIdeas().Where(vi => vi.IdeasId.ToString().Contains(ideas.ToString()) && vi.UserId == userId).Take(10).OrderByDescending(vi => vi.IdeasId).ToList(); } } if (userSearchedIdeas != null) { ivm.LastSearchedTerm = userSearchedIdeas.SearchedTerm; ivm.SearchedIdeas = userIdeas.GetIdeas().Where(si => si.Title.Contains(userSearchedIdeas.SearchedTerm) && si.UserId == userId).Take(10).OrderByDescending(si => si.IdeasId).ToList(); } return(View(ivm)); }