예제 #1
0
        private IQueryable <ProductTierTransferReport> AddFilterOnQuery(
            GetAllProductTierTransferReportsFilter filter,
            IQueryable <ProductTierTransferReport> queryable
            )
        {
            queryable = queryable.Where(x => x.IsDeleted == false);

            if (filter?.FromQuantity != null)
            {
                queryable = queryable.Where(x => x.Quantity >= filter.FromQuantity);
            }

            if (filter?.ToQuantity != null && filter?.ToQuantity > 0)
            {
                queryable = queryable.Where(x => x.Quantity <= filter.ToQuantity);
            }

            if (filter?.FromTierId != null && filter?.FromTierId > 0)
            {
                queryable = queryable.Where(x => x.FromTierId == filter.FromTierId);
            }

            if (filter?.ToTierId != null && filter?.ToTierId > 0)
            {
                queryable = queryable.Where(x => x.Quantity == filter.ToTierId);
            }


            return(queryable);
        }
예제 #2
0
        public async Task <int> CountAllAsync(
            PaginationFilter pagination,
            GetAllProductTierTransferReportsFilter filter)
        {
            var queryable = _context.ProductTierTransferReports.AsQueryable();

            queryable = AddFilterOnQuery(filter, queryable);
            return(await queryable.CountAsync());
        }
예제 #3
0
        /** GET ALL ASYNC */
        public async Task <IEnumerable <ProductTierTransferReport> > GetAllAsync(
            PaginationFilter pagination,
            GetAllProductTierTransferReportsFilter filter)
        {
            var queryable = _context.ProductTierTransferReports.AsQueryable();

            queryable = AddFilterOnQuery(filter, queryable);

            var skip = (pagination.PageNumber - 1) * pagination.PageSize;

            return(await queryable
                   .Skip(skip)
                   .Take(pagination.PageSize)
                   .Include(pttr => pttr.ProductTier)
                   .ThenInclude(pt => pt.Product)
                   .Include(pttr => pttr.StorageManager)
                   .ToListAsync());
        }