//CreateFromAttribute
 public static EventStreamBackedProjectionOrchestrator CreateFromAttribute(EventStreamBackedProjectionOrchestrationTriggerAttribute attr)
 {
     if (attr.InstanceIdentity.Equals(Guid.Empty))
     {
         attr.InstanceIdentity = Guid.NewGuid();
     }
     return(new EventStreamBackedProjectionOrchestrator(attr.InstanceIdentity, attr.InstanceName));
 }
 public ProjectionOrchestrationClientAsyncCollector(EventStreamBackedProjectionOrchestrationTriggerAttribute triggerAttribute)
 {
     // Use the properties of the trigger attribute to initialise the collector...
 }
 protected internal virtual IAsyncCollector <StartProjectionOrchestrationArgs> CreateProjectionAsyncCollector(EventStreamBackedProjectionOrchestrationTriggerAttribute triggerAttribute)
 {
     // TODO: Load any system configuration settings...
     return(new ProjectionOrchestrationClientAsyncCollector(triggerAttribute));
 }
        protected internal virtual EventStreamBackedProjectionOrchestrator GetProjectionOrchestration(EventStreamBackedProjectionOrchestrationTriggerAttribute attribute)
        {
            EventStreamBackedProjectionOrchestrator projectionOrchestration = this.cachedProjectionOrchestrators.GetOrAdd(
                attribute,
                attr =>
            {
                // TODO :: Need to get the domain context to go along with the command
                return(EventStreamBackedProjectionOrchestrator.CreateFromAttribute(attribute));
            });

            return(projectionOrchestration);
        }