public List <EventCustomerRegistrationViewData> GetEventCustomerOrdersForEvent(EventCustomerFilterMode eventCustomerFilterMode, long eventId) { var customerOrderBasicInfoTypedView = new CustomerOrderBasicInfoTypedView(); using (var myAdapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(myAdapter); var eventCustomerIds = linqMetaData.EventCustomers.Where(ec => ec.EventId == eventId).Select(ec => ec.EventCustomerId); // Hack: This is done to minimize the fetch time for the query. var fieldCompareRangePredicate = new FieldCompareRangePredicate(CustomerOrderBasicInfoFields.EventCustomerId, null, eventCustomerIds); var bucket = new RelationPredicateBucket(fieldCompareRangePredicate); //var bucket = new RelationPredicateBucket(CustomerOrderBasicInfoFields.EventId == eventId); //var predicates = _eventCustomerFilterPredicateFactory.CreatePredicate(eventCustomerFilterMode); //foreach (var predicate in predicates) //{ // bucket.PredicateExpression.AddWithAnd(predicate); //} myAdapter.FetchTypedView(customerOrderBasicInfoTypedView, bucket, false); IEnumerable <CustomerOrderBasicInfoRow> customerOrderBasicInfoRows = _eventCustomerFilterPredicateFactory.GetFilteredData(eventCustomerFilterMode, customerOrderBasicInfoTypedView); return(_factory.Create(customerOrderBasicInfoRows, _physicianAssignmentService.GetPhysicianAssignments(eventId, eventCustomerIds))); } }
public List <EventCustomerRegistrationViewData> GetEventCustomerOrders(List <long> eventCustomerIds) { var customerOrderBasicInfoTypedView = new CustomerOrderBasicInfoTypedView(); var fieldCompareRangePredicate = new FieldCompareRangePredicate(CustomerOrderBasicInfoFields.EventCustomerId, null, eventCustomerIds); var bucket = new RelationPredicateBucket(fieldCompareRangePredicate); using (var myAdapter = PersistenceLayer.GetDataAccessAdapter()) { myAdapter.FetchTypedView(customerOrderBasicInfoTypedView, bucket, false); } return(_factory.Create(customerOrderBasicInfoTypedView, null)); }
/// <summary> /// Inserts in each predicate expression element the persistence info object for the field used. If there is already a fieldpersistenceinfo /// element for a given field, it is skipped. /// </summary> /// <param name="expression">IPredicateExpression object which has predicate elements whose persistence info objects have to be /// set to a value.</param> protected override void InsertPersistenceInfoObjects(IPredicateExpression expression) { if (expression == null) { return; } for (int i = 0; i < expression.Count; i++) { if (expression[i].Type != PredicateExpressionElementType.Predicate) { continue; } IPredicate currentPredicate = (IPredicate)expression[i].Contents; switch ((PredicateType)currentPredicate.InstanceType) { case PredicateType.Undefined: continue; case PredicateType.PredicateExpression: // recurse InsertPersistenceInfoObjects((IPredicateExpression)expression[i].Contents); break; case PredicateType.FieldBetweenPredicate: FieldBetweenPredicate betweenPredicate = (FieldBetweenPredicate)currentPredicate; if (betweenPredicate.PersistenceInfo == null) { betweenPredicate.PersistenceInfo = GetFieldPersistenceInfo((IEntityField2)betweenPredicate.FieldCore); } if (betweenPredicate.BeginIsField && (betweenPredicate.PersistenceInfoBegin == null)) { betweenPredicate.PersistenceInfoBegin = GetFieldPersistenceInfo((IEntityField2)betweenPredicate.FieldBeginCore); } if (betweenPredicate.EndIsField && (betweenPredicate.PersistenceInfoEnd == null)) { betweenPredicate.PersistenceInfoEnd = GetFieldPersistenceInfo((IEntityField2)betweenPredicate.FieldEndCore); } break; case PredicateType.FieldCompareNullPredicate: FieldCompareNullPredicate compareNullPredicate = (FieldCompareNullPredicate)currentPredicate; if (compareNullPredicate.PersistenceInfo == null) { compareNullPredicate.PersistenceInfo = GetFieldPersistenceInfo((IEntityField2)compareNullPredicate.FieldCore); } break; case PredicateType.FieldCompareValuePredicate: FieldCompareValuePredicate compareValuePredicate = (FieldCompareValuePredicate)currentPredicate; if (compareValuePredicate.PersistenceInfo == null) { compareValuePredicate.PersistenceInfo = GetFieldPersistenceInfo((IEntityField2)compareValuePredicate.FieldCore); } break; case PredicateType.FieldLikePredicate: FieldLikePredicate likePredicate = (FieldLikePredicate)currentPredicate; if (likePredicate.PersistenceInfo == null) { likePredicate.PersistenceInfo = GetFieldPersistenceInfo((IEntityField2)likePredicate.FieldCore); } break; case PredicateType.FieldCompareRangePredicate: FieldCompareRangePredicate compareRangePredicate = (FieldCompareRangePredicate)currentPredicate; if (compareRangePredicate.PersistenceInfo == null) { compareRangePredicate.PersistenceInfo = GetFieldPersistenceInfo((IEntityField2)compareRangePredicate.FieldCore); } break; case PredicateType.FieldCompareExpressionPredicate: FieldCompareExpressionPredicate expressionPredicate = (FieldCompareExpressionPredicate)currentPredicate; if (expressionPredicate.PersistenceInfo == null) { expressionPredicate.PersistenceInfo = GetFieldPersistenceInfo((IEntityField2)expressionPredicate.FieldCore); } if (expressionPredicate.ExpressionToCompareWith != null) { InsertPersistenceInfoObjects(expressionPredicate.ExpressionToCompareWith); } break; case PredicateType.FieldFullTextSearchPredicate: FieldFullTextSearchPredicate fullTextSearchPredicate = (FieldFullTextSearchPredicate)currentPredicate; if (fullTextSearchPredicate.TargetIsFieldList) { if (fullTextSearchPredicate.PersistenceInfosFieldsList == null) { ArrayList persistenceInfos = new ArrayList(); foreach (IEntityField2 field in fullTextSearchPredicate.FieldsList) { persistenceInfos.Add(GetFieldPersistenceInfo(field)); } fullTextSearchPredicate.PersistenceInfosFieldsList = persistenceInfos; } } else { if (fullTextSearchPredicate.PersistenceInfo == null) { fullTextSearchPredicate.PersistenceInfo = GetFieldPersistenceInfo((IEntityField2)fullTextSearchPredicate.FieldCore); } } break; case PredicateType.FieldCompareSetPredicate: FieldCompareSetPredicate compareSetPredicate = (FieldCompareSetPredicate)currentPredicate; if ((compareSetPredicate.PersistenceInfoField == null) && (compareSetPredicate.FieldCore != null)) { compareSetPredicate.PersistenceInfoField = GetFieldPersistenceInfo((IEntityField2)compareSetPredicate.FieldCore); } if (compareSetPredicate.PersistenceInfoSetField == null) { compareSetPredicate.PersistenceInfoSetField = GetFieldPersistenceInfo((IEntityField2)compareSetPredicate.SetFieldCore); } InsertPersistenceInfoObjects(compareSetPredicate.SetFilterAsPredicateExpression); InsertPersistenceInfoObjects(compareSetPredicate.SetRelations); InsertPersistenceInfoObjects(compareSetPredicate.SetSorter); InsertPersistenceInfoObjects(compareSetPredicate.GroupByClause); break; default: // __LLBLGENPRO_USER_CODE_REGION_START InsertPersistenceInfoObjectsPredicate // __LLBLGENPRO_USER_CODE_REGION_END OnInsertPersistenceObjects(currentPredicate); break; } } }