Ejemplo n.º 1
0
        public async Task <CustomerPagedVM> GetCustomersAsync(int page, int pageSize, string keywords)
        {
            var vm = new CustomerPagedVM
            {
                PageIndex = page - 1,
                PageSize  = pageSize,
                Keywords  = keywords
            };

            var query = _context.Customers.Include(d => d.Projects).AsQueryable();

            if (!string.IsNullOrEmpty(keywords))
            {
                query = query.Where(d => d.Name.Contains(keywords) || d.Description.Contains(keywords) || d.Phone.Contains(keywords));
            }

            vm.RowCount = await query.CountAsync();

            vm.Customers = await query.OrderByDescending(d => d.CreatedDate)
                           .Skip(vm.PageIndex * vm.PageSize).Take(vm.PageSize).ProjectTo <CustomerVM>(_mapper.ConfigurationProvider).ToListAsync();

            return(vm);
        }
Ejemplo n.º 2
0
        public async Task <CustomerPagedVM> GetCustomersAsync(int page, int pageSize, string keywords, string orderBy, string orderMode, int customerType = 0)
        {
            var vm = new CustomerPagedVM
            {
                PageIndex    = page - 1,
                PageSize     = pageSize,
                Keywords     = keywords,
                OrderBy      = orderBy,
                OrderMode    = orderMode,
                CustomerType = customerType
            };

            var query = _db.Customers.AsNoTracking().Include(d => d.Projects).AsQueryable();

            if (!string.IsNullOrEmpty(keywords))
            {
                query = query.Where(d => d.Name.Contains(keywords) || d.Description.Contains(keywords) || d.Phone.Contains(keywords));
            }
            if (customerType > 0)
            {
                query = query.Where(d => d.CustomerType == customerType);
            }

            if (!string.IsNullOrEmpty(orderBy))
            {
                switch (orderBy)
                {
                case "name":
                    if (orderMode == "desc")
                    {
                        query = query.OrderByDescending(d => d.Name);
                    }
                    else
                    {
                        query = query.OrderBy(d => d.Name);
                    }
                    break;

                case "createdDate":
                    if (orderMode == "desc")
                    {
                        query = query.OrderByDescending(d => d.CreatedDate);
                    }
                    else
                    {
                        query = query.OrderBy(d => d.CreatedDate);
                    }
                    break;

                default:
                    query = query.OrderByDescending(d => d.CreatedDate);
                    break;
                }
            }
            else
            {
                query = query.OrderByDescending(d => d.CreatedDate);
            }



            vm.RowCount = await query.CountAsync();

            vm.Customers = await query.Skip(vm.PageIndex *vm.PageSize).Take(vm.PageSize).ProjectTo <CustomerVM>(_mapper.ConfigurationProvider).ToListAsync();

            return(vm);
        }