public List <YardSaleItem> FilteredYardSaleItems([FromBody] YardSaleHomeViewModel model) { List <YardSaleItem> FilteredItems = new List <YardSaleItem> { }; if (model.ItemCategoryFilter == "0" && model.ItemNameFilter == "") { FilteredItems = context.YardSaleItem.OrderBy(d => d.DatePosted).ToList(); } else if (model.ItemNameFilter == "" && model.ItemCategoryFilter != "0") { FilteredItems = context.YardSaleItem.Where(ysi => ysi.Category == model.ItemCategoryFilter).OrderBy(d => d.DatePosted).ToList(); } else if (model.ItemCategoryFilter == "0" && model.ItemNameFilter != "") { FilteredItems = context.YardSaleItem.Where(ysi => ysi.ItemName.ToLower() == model.ItemNameFilter.ToLower()).OrderBy(d => d.DatePosted).ToList(); } else { FilteredItems = context.YardSaleItem.Where(ysi => ysi.Category == model.ItemCategoryFilter && ysi.ItemName.ToLower() == model.ItemNameFilter.ToLower()).OrderBy(d => d.DatePosted).ToList(); } FilteredItems.ForEach(i => i.PostingUser = context.User.Where(u => u.UserId == i.PostingUserId).SingleOrDefault()); FilteredItems.ForEach(d => d.DatePosted = d.DatePosted.Date); FilteredItems = FilteredItems.OrderByDescending(d => d.DatePosted).ToList(); return(FilteredItems); }
/** * Purpose: Returns the main view for all yardsale items * Arguments: * None * Return: * returns the view for the yardsale index(home) page */ public IActionResult Index() { YardSaleHomeViewModel model = new YardSaleHomeViewModel(context); User CurrentUser = ActiveUser.Instance.User; //GET ALL FRIEND ITEMS WHERE THE CURRENT USER IS THE SENDING USER IN THE FRIEND REQUEST RELATIONSHIP // AND THE RELATIONSHIP STATUS IS 1 (ARE FRIENDS) List <YardSaleItem> FriendItems1 = (from r in context.Relationship join ysi in context.YardSaleItem on r.ReciverUserId equals ysi.PostingUserId where r.SenderUserId == CurrentUser.UserId && r.Status == 1 select ysi).ToList(); //GET ALL FRIEND ITEMS WHERE THE CURRENT USER IS THE RECIEVING USER IN THE FRIEND REQUEST RELATIONSHIP // AND THE RELATIONSHIP STATUS IS 1 (ARE FRIENDS) List <YardSaleItem> FriendItems2 = (from r in context.Relationship join ysi in context.YardSaleItem on r.SenderUserId equals ysi.PostingUserId where r.ReciverUserId == CurrentUser.UserId && r.Status == 1 select ysi).ToList(); //GET ALL OF THE CURRENT USERS YARDSALE ITEMS List <YardSaleItem> UserItems = context.YardSaleItem.Where(ysi => ysi.PostingUserId == CurrentUser.UserId).ToList(); //ADD ALL OF THE 3 LISTS ABOVE TOGETHER INTO ONE MODEL LIST, AND ORDER BY THE DATE POSTED model.YardSaleItems = FriendItems1.Concat(FriendItems2).Concat(UserItems).OrderByDescending(i => i.DatePosted).ToList(); model.UserStyle = context.Style.Where(s => s.UserId == CurrentUser.UserId).SingleOrDefault(); model.YardSaleItems.ForEach(i => i.PostingUser = context.User.Where(u => u.UserId == i.PostingUserId).SingleOrDefault()); model.YardSaleItems.ForEach(i => i.ItemComments = context.Comment.Where(c => c.YardSaleItemId == i.YardSaleItemId).ToList()); foreach (YardSaleItem item in model.YardSaleItems) { foreach (Comment c in item.ItemComments) { c.User = context.User.Where(u => u.UserId == c.UserId).SingleOrDefault(); } } return(View(model)); }