예제 #1
0
        private void SearchOrders(CompanyOrderSearchViewModel model)
        {
            try
            {
                using (UnitOfWorkManager.NewUnitOfWork())
                {
                    var companies = _companyService.GetAll();
                    model.CompanyList.Add(new SelectListItem {
                        Text = "所有", Value = ""
                    });
                    foreach (var item in companies)
                    {
                        model.CompanyList.Add(new SelectListItem {
                            Text = item.CompanyName, Value = item.Id.ToString()
                        });
                    }
                    Guid?companyId = model.SelectedCompanyId;

                    var searchModel = new CompanyOrderSearchModel
                    {
                        PageIndex   = model.PageIndex,
                        CompanyId   = companyId,
                        MinBookTime = model.MinSearchTime,
                        MaxBookTime = model.MaxSearchTime,
                    };
                    model.CompanyOrders = _companyOrderService.Search(searchModel);
                }
            }
            catch (Exception ex)
            {
                ErrorNotification(ex);
            }
        }
예제 #2
0
        public IPagedList <CompanyOrder> Search(CompanyOrderSearchModel searchModel)
        {
            var query = _context.CompanyOrder
                        .Where(x => (searchModel.CompanyId == null || searchModel.CompanyId == x.Company.Id) &&
                               (searchModel.CreatedStartTime == null || x.CreatedDate >= searchModel.CreatedStartTime) &&
                               (searchModel.CreatedEndTime == null || x.CreatedDate <= searchModel.CreatedEndTime) &&
                               (searchModel.MinBookTime == null || x.SubOrders.Where(s => s.StartDate >= searchModel.MinBookTime).Count() > 0) &&
                               (searchModel.MaxBookTime == null || x.SubOrders.Where(s => s.EndDate <= searchModel.MaxBookTime).Count() > 0)
                               )
                        .OrderByDescending(x => x.CreatedDate);
            var count  = query.Count();
            var result = query.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize).ToList();

            return(new PagedList <CompanyOrder>(result, searchModel.PageIndex, searchModel.PageSize, count));
        }
예제 #3
0
 public IPagedList <CompanyOrder> Search(CompanyOrderSearchModel searchModel)
 {
     return(_companyOrderRepository.Search(searchModel));
 }