internal static string GetDisplayName(this IPipelineBlock pipelineBlock)
 {
     // it's pipeline block, not pipeline
     if (!(pipelineBlock is IPipeline))
     {
         return(pipelineBlock.GetType().FullName);
     }
     // here is pipeline
     return(pipelineBlock.GetType().GetInterfaces().FirstOrDefault(inter =>
                                                                   !inter.IsGenericType && typeof(IPipelineBlock) != inter && typeof(IPipeline) != inter && typeof(IPipeline).IsAssignableFrom(inter))
            ?.FullName);
 }
 internal static Type[] GetPipelineBlockGenericArguments(this IPipelineBlock pipelineBlock)
 {
     return(pipelineBlock.GetType().GetPipelineBlockGenericArguments());
 }