/// <summary>
        /// Creates a report from a list of issues.
        /// </summary>
        /// <param name="issueProviders">Issue providers which should be used to get the issues.</param>
        /// <param name="reportFormat">Report format to use.</param>
        /// <param name="settings">Settings to use.</param>
        /// <returns>Path to the created report or <c>null</c> if report could not be created.</returns>
        public FilePath CreateReport(
            IEnumerable <IIssueProvider> issueProviders,
            IIssueReportFormat reportFormat,
            ICreateIssueReportFromIssueProviderSettings settings)
        {
            issueProviders.NotNullOrEmptyOrEmptyElement(nameof(issueProviders));
            reportFormat.NotNull(nameof(reportFormat));
            settings.NotNull(nameof(settings));

            var issuesReader = new IssuesReader(this.log, issueProviders, settings);
            var issues       = issuesReader.ReadIssues();

            return(this.CreateReport(issues, reportFormat, settings));
        }
        public static FilePath CreateIssueReport(
            this ICakeContext context,
            IEnumerable <IIssueProvider> issueProviders,
            IIssueReportFormat reportFormat,
            ICreateIssueReportFromIssueProviderSettings settings)
        {
            context.NotNull(nameof(context));
            reportFormat.NotNull(nameof(reportFormat));

            // ReSharper disable once PossibleMultipleEnumeration
            issueProviders.NotNullOrEmptyOrEmptyElement(nameof(issueProviders));

            var issueReportCreator = new IssueReportCreator(context.Log);

            // ReSharper disable once PossibleMultipleEnumeration
            return(issueReportCreator.CreateReport(issueProviders, reportFormat, settings));
        }
        public static FilePath CreateIssueReport(
            this ICakeContext context,
            IIssueProvider issueProvider,
            IIssueReportFormat reportFormat,
            ICreateIssueReportFromIssueProviderSettings settings)
        {
            context.NotNull(nameof(context));
            reportFormat.NotNull(nameof(reportFormat));

            issueProvider.NotNull(nameof(issueProvider));

            var issueReportCreator = new IssueReportCreator(context.Log);

            return(issueReportCreator.CreateReport(
                       new List <IIssueProvider> {
                issueProvider
            },
                       reportFormat,
                       settings));
        }