Example #1
0
        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);
        }
Example #2
0
        /**
         * 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));
        }