protected internal InfluxDBClient(InfluxDBClientOptions options)
        {
            Arguments.CheckNotNull(options, nameof(options));

            _options        = options;
            _loggingHandler = new LoggingHandler(options.LogLevel);
            _gzipHandler    = new GzipHandler();

            var version = AssemblyHelper.GetVersion(typeof(InfluxDBClient));

            _apiClient = new ApiClient(options, _loggingHandler, _gzipHandler);
            _apiClient.RestClient.UserAgent = $"influxdb-client-csharp/{version}";

            _exceptionFactory = (methodName, response) =>
                                !response.IsSuccessful ? HttpException.Create(response, response.Content) : null;

            _setupService = new SetupService((Configuration)_apiClient.Configuration)
            {
                ExceptionFactory = _exceptionFactory
            };
            _healthService = new HealthService((Configuration)_apiClient.Configuration)
            {
                ExceptionFactory = _exceptionFactory
            };
            _readyService = new ReadyService((Configuration)_apiClient.Configuration)
            {
                ExceptionFactory = _exceptionFactory
            };
        }
Ejemplo n.º 2
0
        private static IHttpHandler CreateHttpHandler(IUrlResolver urlResolver)
        {
            if (string.IsNullOrEmpty(urlResolver.FileName) || !File.Exists(urlResolver.FileName))
            {
                return(null);
            }

            MagickFormatInfo formatInfo = MagickNET.GetFormatInformation(urlResolver.Format);

            if (formatInfo == null || string.IsNullOrEmpty(formatInfo.MimeType))
            {
                return(null);
            }

            if (urlResolver.Script != null)
            {
                return(new MagickScriptHandler(urlResolver, formatInfo));
            }

            if (ImageOptimizerHandler.CanOptimize(formatInfo))
            {
                return(new ImageOptimizerHandler(urlResolver, formatInfo));
            }

            if (GzipHandler.CanCompress(formatInfo))
            {
                return(new GzipHandler(urlResolver, formatInfo));
            }

            return(null);
        }
Ejemplo n.º 3
0
        protected internal InfluxDBClient(InfluxDBClientOptions options)
        {
            Arguments.CheckNotNull(options, nameof(options));

            _options        = options;
            _loggingHandler = new LoggingHandler(options.LogLevel);
            _gzipHandler    = new GzipHandler();

            _apiClient = new ApiClient(options, _loggingHandler, _gzipHandler);

            _exceptionFactory = (methodName, response) =>
                                !response.IsSuccessful ? HttpException.Create(response) : null;

            _setupService = new SetupService((Configuration)_apiClient.Configuration)
            {
                ExceptionFactory = _exceptionFactory
            };
            _healthService = new HealthService((Configuration)_apiClient.Configuration)
            {
                ExceptionFactory = _exceptionFactory
            };
            _readyService = new ReadyService((Configuration)_apiClient.Configuration)
            {
                ExceptionFactory = _exceptionFactory
            };
        }
Ejemplo n.º 4
0
        public ApiClient(InfluxDBClientOptions options, LoggingHandler loggingHandler, GzipHandler gzipHandler)
        {
            _options        = options;
            _loggingHandler = loggingHandler;
            _gzipHandler    = gzipHandler;

            var timeoutTotalMilliseconds = (int)options.Timeout.TotalMilliseconds;
            var totalMilliseconds        = (int)options.ReadWriteTimeout.TotalMilliseconds;

            RestClient = new RestClient(options.Url);
            RestClient.AutomaticDecompression = false;
            Configuration = new Configuration
            {
                ApiClient        = this,
                BasePath         = options.Url,
                Timeout          = timeoutTotalMilliseconds,
                ReadWriteTimeout = totalMilliseconds,
            };
        }
Ejemplo n.º 5
0
        private void Test_ProcessRequest(IImageData imageData)
        {
            using (TemporaryDirectory directory = new TemporaryDirectory())
            {
                string tempDir = directory.FullName;

                string config = $@"<magick.net.web cacheDirectory=""{tempDir}"" tempDirectory=""{tempDir}""/>";

                MagickWebSettings settings = TestSectionLoader.Load(config);

                HttpRequest request = new HttpRequest("foo", "https://bar", string.Empty);

                string outputFile = Path.Combine(tempDir, "output");

                using (StreamWriter writer = new StreamWriter(outputFile))
                {
                    HttpResponse response = new HttpResponse(writer);
                    HttpContext  context  = new HttpContext(request, response);

                    GzipHandler handler = new GzipHandler(settings, imageData);
                    handler.ProcessRequest(context);
                }

                Assert.AreEqual(0, new FileInfo(outputFile).Length);
                Assert.AreEqual(1, tempDir.GetFiles().Count());

                using (StreamWriter writer = new StreamWriter(outputFile))
                {
                    request.SetHeaders("Accept-Encoding", "invalid");
                    HttpResponse response = new HttpResponse(writer);
                    HttpContext  context  = new HttpContext(request, response);

                    GzipHandler handler = new GzipHandler(settings, imageData);
                    handler.ProcessRequest(context);
                }

                Assert.AreEqual(0, new FileInfo(outputFile).Length);
                Assert.AreEqual(1, tempDir.GetFiles().Count());

                using (StreamWriter writer = new StreamWriter(outputFile))
                {
                    request.SetHeaders("Accept-Encoding", "gzip");
                    HttpResponse response = new HttpResponse(writer);
                    HttpContext  context  = new HttpContext(request, response);

                    GzipHandler handler = new GzipHandler(settings, imageData);
                    handler.ProcessRequest(context);
                }

                byte[] imageBytes = imageData.GetBytes();
                Assert.IsTrue(new FileInfo(outputFile).Length < imageBytes.Length);
                Assert.AreEqual(2, tempDir.GetFiles().Count());

                File.Delete(outputFile);

                FileInfo cacheFile = tempDir.GetFiles().First();
                File.WriteAllText(cacheFile.FullName, string.Empty);

                using (StreamWriter writer = new StreamWriter(outputFile))
                {
                    request.SetHeaders("Accept-Encoding", "gzip");
                    HttpResponse response = new HttpResponse(writer);
                    HttpContext  context  = new HttpContext(request, response);

                    GzipHandler handler = new GzipHandler(settings, imageData);
                    handler.ProcessRequest(context);
                }

                Assert.AreEqual(0, File.ReadAllBytes(outputFile).Count());
                Assert.AreEqual(2, tempDir.GetFiles().Count());

                cacheFile.LastWriteTimeUtc = new DateTime(1979, 11, 19);

                using (StreamWriter writer = new StreamWriter(outputFile))
                {
                    request.SetHeaders("Accept-Encoding", "gzip");
                    HttpResponse response = new HttpResponse(writer);
                    HttpContext  context  = new HttpContext(request, response);

                    GzipHandler handler = new GzipHandler(settings, imageData);
                    handler.ProcessRequest(context);
                }

                Assert.AreNotEqual(0, File.ReadAllBytes(cacheFile.FullName).Count());
                Assert.AreEqual(2, tempDir.GetFiles().Count());

                using (StreamWriter writer = new StreamWriter(outputFile))
                {
                    request.SetHeaders("Accept-Encoding", "deflate");
                    HttpResponse response = new HttpResponse(writer);
                    HttpContext  context  = new HttpContext(request, response);

                    GzipHandler handler = new GzipHandler(settings, imageData);
                    handler.ProcessRequest(context);
                }

                Assert.IsTrue(new FileInfo(outputFile).Length < imageBytes.Length);
                Assert.AreEqual(3, tempDir.GetFiles().Count());
            }
        }