/// <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)); } }
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(); }