Exemple #1
0
        private void ApplyEntityFilter()
        {
            if (EntityFilter.Any())
            {
                RetrieveMultipleFuncs.Add((s, q) =>
                {
                    var qe = q as QueryExpression;

                    if (qe == null)
                    {
                        return(s.RetrieveMultiple(q));
                    }

                    foreach (var entityGroup in EntityFilter)
                    {
                        var idLogicalName = EntityHelper.GetIdAttributeName(entityGroup.Key);
                        foreach (var filter in qe.GetEntityFilters(entityGroup.Key))
                        {
                            filter.AddConditionEnforceAndFilterOperator(new ConditionExpression(idLogicalName, ConditionOperator.In, entityGroup.Value.Select(i => (object)i).ToArray()));
                        }
                    }
                    return(s.RetrieveMultiple(q));
                });
            }
        }