示例#1
0
        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)));
            }
        }
示例#2
0
        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));
        }
示例#3
0
        /// <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;
                }
            }
        }