public UberPipeline(string pipelineName, RabbitMqSession session, PipelineType pipelineType)
        {
            this.pipelineType = pipelineType;
            this.name = pipelineName;

            this.pipeline = new RabbitMqPipeline(pipelineName, session, pipelineType);
            this.scheduler = new SchedulerPipeline(pipelineName + ".Scheduler", session, pipelineType);
        }
 public static PipelineType Parse(string type)
 {
     var result = new PipelineType(type);
     if (result.name == Direct.name || result.name == Fanout.name || result.name == Headers.name || result.name == Topics.name)
         return result;
     else
         throw new ArgumentException($"Invalid pipeline type '{type}'.");
 }
 public SchedulerPipeline(string pipelineName, RabbitMqSession session, PipelineType pipelineType)
     : base(pipelineName, session, pipelineType)
 { }
 public RabbitMqPipeline(string pipelineName, RabbitMqSession session, PipelineType pipelineType)
 {
     this.pipelineType = pipelineType;
     this.name = pipelineName;
     this.session = session;
 }