예제 #1
0
        private void PrepareResults(CustomQueryVisitor visitor, List <Entity> entities, IPluginExecutionContext context)
        {
            var results = QueryVisitorHelpers.OrderResults(visitor, entities);

            QueryVisitorHelpers.ApplyConditions(results, visitor);
            var resultEntityCollection = QueryVisitorHelpers.SetPaging(results, visitor);

            ObjectHelper.SetOutput(resultEntityCollection, results, visitor, context);
        }
예제 #2
0
        public override void Execute(ITracingService tracer, IOrganizationService service, IPluginExecutionContext context)
        {
            var query = context.InputParameterOrDefault <QueryExpression>(ContextProperties.QueryExpression);

            if (query == null)
            {
                return;
            }
            tracer.Trace($"RetrieveMultiple ${query.EntityName}");
            var visitor = new CustomQueryVisitor();

            query.Accept(visitor);
            var records = RetrieveRecords(service);

            PrepareResults(visitor, records, context);
            tracer.Trace($"Set output with ${records.Count} records");
        }