Пример #1
0
        public async Task <PaginatedItemsViewModel <FoodViewModel> > GetFoodByCategory(int id, int pageSize, int pageIndex)
        {
            var filterSpecification = new FoodFilterSpecification(id);
            var roots = await _asyncFoodRepository.ListAsync(filterSpecification);

            var root = roots.FirstOrDefault();
            var menu = await _asyncMenuRepository.GetByIdAsync(root.MenuId);

            if (menu.ExprireTime >= DateTime.Now)
            {
                var totalItems  = roots.Count();
                var itemsOnPage = roots.OrderBy(x => x.Name)
                                  .Select(x => new FoodViewModel
                {
                    Id          = x.Id,
                    Description = x.Description,
                    Name        = x.Name,
                    Price       = x.Price,
                    MenuId      = x.MenuId,
                    CategoryId  = x.CategoryId,
                    Image       = x.Image
                })
                                  .Skip(pageSize * pageIndex)
                                  .Take(pageSize)
                                  .ToList();

                var model = new PaginatedItemsViewModel <FoodViewModel>(
                    pageIndex, pageSize, totalItems, itemsOnPage);
                return(model);
            }
            return(null);
        }
Пример #2
0
        public async Task <PaginatedItemsViewModel <FoodViewModel> > SearchFoodByFoodName(string foodName, int pageIndex, int pageSize)
        {
            if (!String.IsNullOrEmpty(foodName))
            {
                var filterSpecification = new FoodFilterSpecification(foodName);
                var roots = await _asyncFoodRepository.ListAsync(filterSpecification);

                var root = roots.FirstOrDefault();
                var menu = await _asyncMenuRepository.GetByIdAsync(root.MenuId);

                var totalItems  = roots.Count();
                var itemsOnPage = roots.OrderBy(x => x.Name)
                                  .Select(x => new FoodViewModel
                {
                    Id          = x.Id,
                    Description = x.Description,
                    Name        = x.Name,
                    Price       = x.Price,
                    MenuId      = x.MenuId,
                    CategoryId  = x.CategoryId,
                    Image       = x.Image
                })
                                  .Skip(pageSize * pageIndex)
                                  .Take(pageSize)
                                  .ToList();

                var model = new PaginatedItemsViewModel <FoodViewModel>(
                    pageIndex, pageSize, totalItems, itemsOnPage);

                return(model);
            }
            return(await GetAll(pageIndex, pageSize));
        }