public IActionResult Get(CatUnitCriteria criteria, int page, int size)
        {
            var data   = catUnitService.Paging(criteria, page, size, out int rowCount);
            var result = new { data, totalItems = rowCount, page, size };

            return(Ok(result));
        }
        public async Task <IActionResult> ExportUnit(CatUnitCriteria catUnitCriteria)
        {
            Helper helper = new Helper();

            var responseFromApi = await HttpServiceExtension.GetDataFromApi(catUnitCriteria, aPis.CatalogueAPI + Urls.Catelogue.CatUnitUrl);

            var dataObjects = responseFromApi.Content.ReadAsAsync <List <CatUnit> >();

            var stream = helper.CreateCatUnitExcelFile(dataObjects.Result);

            return(new FileHelper().ExportExcel(stream, FilesNames.UnitList));
        }
        public IQueryable <CatUnitModel> Paging(CatUnitCriteria criteria, int pageNumber, int pageSize, out int rowsCount)
        {
            IQueryable <CatUnitModel> returnList = null;
            var data = GetBy(criteria);

            if (data == null)
            {
                rowsCount = 0;
                return(data);
            }
            rowsCount = data.Count();
            data      = data.OrderByDescending(x => x.DatetimeModified);
            if (pageSize > 1)
            {
                if (pageNumber < 1)
                {
                    pageNumber = 1;
                }
                returnList = data.Skip((pageNumber - 1) * pageSize).Take(pageSize);
            }
            return(returnList);
        }
        private IQueryable <CatUnitModel> GetBy(CatUnitCriteria criteria)
        {
            Expression <Func <CatUnitModel, bool> > query = null;

            if (criteria.All == null)
            {
                query = x => (x.Code ?? "").IndexOf(criteria.Code ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                        (x.UnitNameVn ?? "").IndexOf(criteria.UnitNameVn ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                        (x.UnitNameEn ?? "").IndexOf(criteria.UnitNameEn ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                        (x.UnitType ?? "").IndexOf(criteria.UnitType ?? "", StringComparison.OrdinalIgnoreCase) > -1 &&
                        (x.Active == criteria.Active || criteria.Active == null);
            }
            else
            {
                query = x => ((x.Code ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                              (x.UnitNameVn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                              (x.UnitNameEn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 ||
                              (x.UnitType ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) &&
                        (x.Active == criteria.Active || criteria.Active == null);
            }
            var data = Get().Where(query);

            return(data);
        }
        public IQueryable <CatUnitModel> Query(CatUnitCriteria criteria)
        {
            var data = GetBy(criteria);

            return(data);
        }
        public IActionResult Get(CatUnitCriteria criteria)
        {
            var result = catUnitService.Query(criteria);

            return(Ok(result));
        }