public virtual PageCollection <TModel> Page <TModel>(PageQueryParameter <TEntity> parameter)
            where TModel : PropertyOwnerModel <TPropertyValueEntity>
        {
            var repository      = _repositoryProviderProvider.Provide <IEntityQueryRepository>().Provide();
            var context         = CreatePageQueryContext(parameter);
            var entities        = repository.Page(context);
            var models          = Mapper.Map <List <TModel> >(entities.List);
            var valueRepository = _repositoryProviderProvider.Provide <IPropertyValueQueryRepository>().Provide();
            var valueContext    = new GroupPropertyValueContext <TPropertyValueEntity>
            {
                ContextProvider          = _contextProvider,
                Keys                     = entities.List.Select(s => s.Id).ToList(),
                PropertyValueKeyProvider = _propertyValueKeyProviderSelector.Select(),
                UserId                   = UserContext.Current.UserId
            };
            var values = valueRepository.Grouping(valueContext);

            models.ForEach(model =>
            {
                var vs = values.FirstOrDefault(x => x.Key == model.Id);
                if (vs == null)
                {
                    return;
                }
                model.Properties = vs?.ToList();
            });
            return(new PageCollection <TModel>
            {
                PageSize = entities.PageSize,
                Count = entities.Count,
                List = models,
                Page = entities.Page
            });
        }
示例#2
0
 /// <summary>
 /// 创建 TeamQueryParameter 类的新实例。
 /// </summary>
 public TeamQueryParameter()
 {
     Name            = string.Empty;
     QueryByName     = false;
     Leader          = string.Empty;
     QueryByLeader   = false;
     PageQuery       = new PageQueryParameter();
     EnablePageQuery = false;
 }
 protected QueryEntityPageContext <TEntity> CreatePageQueryContext(PageQueryParameter <TEntity> parameter)
 {
     return(new QueryEntityPageContext <TEntity>
     {
         ContextProvider = _contextProvider,
         PageQueryParas = parameter,
         UserId = UserContext.Current.UserId,
         Predicate = parameter.CreatePredicate()
     });
 }
 /// <summary>
 /// 创建 ProblemArchieveQueryParameter 类的新实例。
 /// </summary>
 public ProblemArchieveQueryParameter()
 {
     Title            = string.Empty;
     Source           = string.Empty;
     Author           = string.Empty;
     Origin           = OJSystem.BIT;
     ContestId        = -1;
     PageQuery        = new PageQueryParameter();
     QueryByTitle     = false;
     QueryBySource    = false;
     QueryByAuthor    = false;
     QueryByOrigin    = false;
     QueryByContestId = true;
     EnablePageQuery  = false;
 }
示例#5
0
 public PageCollection <AccountEntity> Page(Expression <Func <AccountEntity, bool> > predicate, PageQueryParameter <AccountEntity> paras)
 {
     throw new NotImplementedException();
 }
示例#6
0
        public PageCollection <CustomerModel> Page(PageQueryParameter <CustomerEntity> parameter)
        {
            var service = _genericServiceProvider.Provide <IEntityQueryService <CustomerEntity, CustomerPropertyValueEntity> >();

            return(service.Page <CustomerModel>(parameter));
        }