예제 #1
0
        public ResponseEnvelope Get(string url, Dictionary <string, string> headers = null)
        {
            var urlDebug     = $"HTTP GET on {url}";
            var errorContext = BuildErrorContext(urlDebug);

            _logger.Debug(urlDebug);

            // Act
            var response = _executor.Do(() => _httpClient.GetAsync(url).Result, errorContext);

            // Process
            var output = response.ToEnvelope();

            _logger.Trace(output.Body);
            ProcessStatusCodes(output, errorContext);

            return(output);
        }
예제 #2
0
        public ResponseEnvelope Get(
            string path,
            Dictionary <string, string> headers = null,
            bool excludeVersion = false)
        {
            // Arrange
            var address      = MakeFinalUrl(path, excludeVersion);
            var urlDebug     = $"HTTP GET on {address} (ContextId: {this.ObjectIdentifier})";
            var errorContext = BuildErrorContext(urlDebug);

            _logger.Debug(urlDebug);

            // Act
            var response = _executor.Do(() => _httpClient.GetAsync(address).Result, errorContext);

            // Response
            var output = response.ToEnvelope();

            _logger.Trace(output.Body);

            // Assert
            return(ProcessStatusCodes(output, urlDebug));
        }
예제 #3
0
        public bool Log(LogLevel logLevel, Func <string> messageFunc, Exception exception = null)
        {
            if (_logger == null)
            {
                return(false);
            }
            if (messageFunc == null && exception == null)
            {
                return(true);
            }


            if (logLevel == LogLevel.Trace && _logger.IsTraceEnabled)
            {
                _logger.Trace(messageFunc());
            }
            if (logLevel == LogLevel.Debug && _logger.IsDebugEnabled)
            {
                _logger.Debug(messageFunc());
            }
            if (logLevel == LogLevel.Info && _logger.IsInfoEnabled)
            {
                _logger.Info(messageFunc());
            }
            if (logLevel == LogLevel.Warn && _logger.IsWarnEnabled)
            {
                _logger.Warn(messageFunc());
            }
            if (logLevel == LogLevel.Error && _logger.IsErrorEnabled)
            {
                var message = messageFunc();
                if (!message.IsNullOrEmpty())
                {
                    _logger.Error(message);
                }
                _logger.Error(exception);
            }
            if (logLevel == LogLevel.Fatal && _logger.IsFatalEnabled)
            {
                _logger.Fatal(messageFunc());
            }
            return(true);
        }
예제 #4
0
        public string RetrieveInventoryLevels(List <long> inventoryItemIds)
        {
            if (inventoryItemIds.Count == 0)
            {
                throw new ArgumentException("Empty list of InventoryItemIds");
            }
            if (inventoryItemIds.Count > 50)
            {
                throw new ArgumentException("Maximum size for InventoryItemIds is 50");
            }

            var queryString =
                new QueryStringBuilder()
                .Add("inventory_item_ids", inventoryItemIds.ToCommaSeparatedList())
                .ToString();

            var path           = $"/admin/api/2019-10/inventoryItemIds?{queryString}";
            var clientResponse = _httpClient.Get(path);

            _logger.Trace(clientResponse.Body);
            return(clientResponse.Body);
        }