private void CopyRiskReport(string outputPath, string version = HUB_REPORTING_VERSION)
        {
            string remoteFileName      = $"hub-common-reporting-{version}.jar";
            string filePath            = $"{outputPath}/{remoteFileName}";
            string extractionDirectory = $"{outputPath}/Temp_RiskReport";
            string riskReportFiles     = $"{extractionDirectory}/riskreport/web/";
            string url = "http://oss.sonatype.org/content/repositories/releases/com/blackducksoftware/integration/hub-common-reporting";

            url += $"/{version}/{remoteFileName}";

            // Cleanup any old stuff
            string riskReportDirectory = $"{outputPath}/{RISK_REPORT_DIRECTORY}";

            if (Directory.Exists(riskReportDirectory))
            {
                Directory.Delete(riskReportDirectory, true);
            }
            if (Directory.Exists(extractionDirectory))
            {
                Directory.Delete(extractionDirectory, true);
            }

            // Fetch the file
            ResourceCopier resourceCopier = new ResourceCopier();

            resourceCopier.CopyFromWeb(url, filePath);

            // Extract the resources
            ZipFile.ExtractToDirectory(filePath, extractionDirectory);
            Directory.Move(riskReportFiles, riskReportDirectory);

            // Cleanup mess
            File.Delete(filePath);
            Directory.Delete(extractionDirectory, true);
        }
        public HtmlValidator(IHttpClient httpClient, IStreamFactory streamFactory, ResourceCopier resourceCopier, IValidatorSoap12ResponseParser soapResponseParser)
        {
            if (httpClient == null)
                throw new ArgumentNullException("httpClient");
            if (streamFactory == null)
                throw new ArgumentNullException("streamFactory");
            if (resourceCopier == null)
                throw new ArgumentNullException("resourceCopier");
            if (soapResponseParser == null)
                throw new ArgumentNullException("soapResponseParser");

            this.mHttpClient = httpClient;
            this.mStreamFactory = streamFactory;
            this.mResourceCopier = resourceCopier;
            this.mSoapResponseParser = soapResponseParser;
        }