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); }
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"); }