Esempio n. 1
0
        /// <summary>
        /// TODO: Make IActionstepRequest generic to specify its result
        /// </summary>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="request"></param>
        /// <returns></returns>
        /// <exception cref="BadActionstepApiResponseException">If the Actionstep API returns a non successful result (i.e. not between 200-299).</exception>
        /// <exception cref="ArgumentNullException"></exception>
        public async Task <TResponse> Handle <TResponse>(IActionstepRequest request)
        {
            _logger.LogDebug((int)LogEventId.MethodExit, $"{nameof(Handle)}<TResponse>");

            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            if (_logger.IsEnabled(LogLevel.Trace))
            {
                _logger.LogTrace($"Handle called." +
                                 $" Http Method: {request?.HttpMethod?.ToString()}" +
                                 $", Relative Resource Path; {request?.RelativeResourcePath}" +
                                 $", Org Key: {request?.TokenSetQuery?.OrgKey}" +
                                 $", User ID: {request?.TokenSetQuery?.UserId}" +
                                 $", Json Payload: {request?.JsonPayload}");
            }

            var response = await SendApiRequest(request);

            if (response.IsSuccessStatusCode)
            {
                if (response.Content is null)
                {
                    _logger.LogDebug($"Received successful response, with no content, returning default value of type {typeof(TResponse).FullName}.");

                    return(default);
        public async Task <TResponse> Handle <TResponse>(IActionstepRequest actionstepRequest)
        {
            if (actionstepRequest is null)
            {
                throw new ArgumentNullException(nameof(actionstepRequest));
            }

            using (var mockResponse = GetMockResponseMessage(actionstepRequest.RelativeResourcePath, actionstepRequest.HttpMethod))
            {
                var responseBody = await mockResponse.Content.ReadAsStringAsync();

                return(JsonConvert.DeserializeObject <TResponse>(responseBody, _jsonSerializerSettings));
            }
        }
Esempio n. 3
0
        public async Task Handle(IActionstepRequest request)
        {
            _logger.LogDebug((int)LogEventId.MethodEntry, nameof(Handle));

            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            if (_logger.IsEnabled(LogLevel.Trace))
            {
                _logger.LogTrace($"Handle called." +
                                 $" Http Method: {request?.HttpMethod?.ToString()}" +
                                 $", Relative Resource Path; {request?.RelativeResourcePath}" +
                                 $", Org Key: {request?.TokenSetQuery?.OrgKey}" +
                                 $", User ID: {request?.TokenSetQuery?.UserId}" +
                                 $", Json Payload: {request?.JsonPayload}");
            }

            await Handle <dynamic>(request);

            _logger.LogDebug((int)LogEventId.MethodExit, nameof(Handle));
        }
 public Task Handle(IActionstepRequest actionstepRequest)
 {
     throw new NotImplementedException();
 }