public GithubGraphQlResourceProducer(string name, GithubGraphQlResourceProducerSettings settings, ISerializer serializer, IGitHubGraphQlApi graphqlApi, IScheduler scheduler) : base(name, settings, serializer, scheduler)
        {
            _graphqlApi = graphqlApi ?? throw new ArgumentNullException(nameof(graphqlApi));

            if (string.IsNullOrWhiteSpace(Settings.Token))
            {
                throw new ArgumentException("Token must be setted", nameof(settings));
            }

            if (string.IsNullOrWhiteSpace(Settings.CronSchedule))
            {
                throw new ArgumentException("Cron schedule string must be setted", nameof(settings));
            }

            if (string.IsNullOrWhiteSpace(Settings.Query))
            {
                throw new ArgumentException("GraphQL query must be setted", nameof(settings));
            }

            if (string.IsNullOrWhiteSpace(Settings.UserAgent))
            {
                throw new ArgumentException("User-agent must be setted", nameof(settings));
            }

            if (string.IsNullOrWhiteSpace(Settings.ResourceName))
            {
                Settings.ResourceName = "GraphQl unnamed query resource";
            }

            _auth  = "Bearer " + Settings.Token;
            _query = new GithubGraphQlQuery()
            {
                Query = Settings.Query
            };
        }
 public GithubGraphQlResourceProducer(string name, GithubGraphQlResourceProducerSettings settings, ISerializer serializer, IGitHubGraphQlApi graphqlApi) : this(name, settings, serializer, graphqlApi, Scheduler.Default)
 {
 }