public RegionCollectionResponse Fetch(RegionQueryCollectionRequest request) { base.FixupLimitAndPagingOnRequest(request); var totalItemCount = 0; var sortExpression = RepositoryHelper.ConvertStringToSortExpression(EntityType, request.Sort); var includeFields = RepositoryHelper.ConvertStringToExcludedIncludedFields(EntityType, request.Select); var prefetchPath = RepositoryHelper.ConvertStringToPrefetchPath(EntityType, request.Include, request.Select); var predicateBucket = RepositoryHelper.ConvertStringToRelationPredicateBucket(EntityType, request.Filter, request.Relations); EntityCollection <RegionEntity> entities; using (var adapter = DataAccessAdapterFactory.NewDataAccessAdapter()) { OnBeforeFetchRegionQueryCollectionRequest(adapter, request, sortExpression, includeFields, prefetchPath, predicateBucket, request.PageNumber, request.PageSize, request.Limit); entities = base.Fetch(adapter, sortExpression, includeFields, prefetchPath, predicateBucket, request.PageNumber, request.PageSize, request.Limit, request.RCache, out totalItemCount); OnAfterFetchRegionQueryCollectionRequest(adapter, request, entities, sortExpression, includeFields, prefetchPath, predicateBucket, request.PageNumber, request.PageSize, request.Limit, totalItemCount); } var response = new RegionCollectionResponse(entities.ToDtoCollection(), request.PageNumber, request.PageSize, totalItemCount); return(response); }
public EmployeesByRegionAndTerritoryCollectionResponse Fetch(EmployeesByRegionAndTerritoryQueryCollectionRequest request) { base.FixupLimitAndPagingOnRequest(request); var typedList = new EmployeesByRegionAndTerritoryTypedList(); var totalItemCount = 0; var sortExpression = RepositoryHelper.ConvertStringToSortExpression(TypedListType, request.Sort); var includedFieldNames = RepositoryHelper.ConvertStringToExcludedIncludedFields(request.Select); var predicateBucket = RepositoryHelper.ConvertStringToRelationPredicateBucket(TypedListType, typedList.GetRelationInfo(), request.Filter); using (var adapter = DataAccessAdapterFactory.NewDataAccessAdapter()) { OnBeforeFetchEmployeesByRegionAndTerritoryQueryCollectionRequest(adapter, request, sortExpression, includedFieldNames, predicateBucket, request.PageNumber, request.PageSize, request.Limit); totalItemCount = (int)adapter.GetDbCount(typedList.GetFieldsInfo(), predicateBucket, null, false); adapter.FetchTypedList(typedList.GetFieldsInfo(), typedList, predicateBucket, request.Limit, sortExpression, true, null, request.PageNumber, request.PageSize); OnAfterFetchEmployeesByRegionAndTerritoryQueryCollectionRequest(adapter, request, typedList, sortExpression, includedFieldNames, predicateBucket, request.PageNumber, request.PageSize, request.Limit, totalItemCount); } var dtos = new EmployeesByRegionAndTerritoryCollection(); var enumerator = typedList.GetEnumerator(); while (enumerator.MoveNext()) { dtos.Add(Map(enumerator.Current, includedFieldNames)); } var response = new EmployeesByRegionAndTerritoryCollectionResponse(dtos, request.PageNumber, request.PageSize, totalItemCount); return(response); }