public PagedResultDto <MerchandiseDto> GetMerchandises(MerchandiseFilter input)
        {
            var query = merchandiseRepository.GetAll().Where(x => !x.IsDelete);

            // filter by code
            if (input.Code != null)
            {
                query = query.Where(x => x.Code.ToLower().Contains(input.Code.ToLower()));
            }

            //filter by name
            if (input.Name != null)
            {
                query = query.Where(x => x.Name.ToLower().Contains(input.Name.ToLower()));
            }

            // filter by typeID
            if (input.TypeID != 0)
            {
                query = query.Where(x => x.TypeID == input.TypeID);
            }

            // filter by type vender
            if (input.TypeVender != 0)
            {
                query = query.Where(x => x.TypeVender == input.TypeVender);
            }

            // filter by isActive
            if (input.IsActive != null)
            {
                if (input.IsActive.Equals("True"))
                {
                    query = query.Where(x => x.IsActive == true);
                }
                else if (input.IsActive.Equals("False"))
                {
                    query = query.Where(x => x.IsActive == false);
                }
            }


            var totalCount = query.Count();

            // sort
            if (!string.IsNullOrWhiteSpace(input.Sorting))
            {
                query = query.OrderBy(input.Sorting);
            }

            // paging
            var items = query.PageBy(input).ToList();

            // result
            return(new PagedResultDto <MerchandiseDto>(
                       totalCount,
                       items.Select(item => ObjectMapper.Map <MerchandiseDto>(item)).ToList()));
        }
 public PagedResultDto <MerchandiseDto> GetMerchandiseByFilter(MerchandiseFilter filter)
 {
     return(merchandiseAppService.GetMerchandises(filter));
 }