private LiveTestResponse MakeBaseResponse() { LiveTestResponse response = new LiveTestResponse(); response.Id = this.Id; response.JsonRpc = this.JsonRpc; return response; }
public LiveTestResponse MakeResponse(Exception ex, int errorCode) { LiveTestResponse response = MakeBaseResponse(); response.Error = new LiveTestError(); response.Error.Code = errorCode; response.Error.Data = ex; return response; }
public LiveTestResponse MakeResponse(CommandExecutionResult commandResult, IServiceTracer tracer, IList<DynamicObjectTransform> transforms, Logger logger) { LiveTestResponse response = MakeBaseResponse(); if (commandResult.HadErrors) { if (logger != null) { logger.LogAsync("Command failed with errors."); commandResult.LogErrors(logger); } response.Error = new LiveTestError(); response.Error.Code = InvalidRequest; List<object> errors = new List<object>(); foreach (object originalError in commandResult.Errors) { errors.AddRange(TransformObject(originalError, transforms)); } response.Error.Data = errors.Count == 0 ? null : errors.Count == 1 ? errors[0] : errors; if (this.HttpResponse) { HttpResponseMessage responseMessage = tracer.HttpResponses.LastOrDefault(); if (responseMessage != null) { // Kill the Content property - doesn't work with Newtonsoft.Json serialization HttpResponseMessage clonedMessage = new HttpResponseMessage(responseMessage.StatusCode); foreach (var header in responseMessage.Headers) { clonedMessage.Headers.Add(header.Key, header.Value); } clonedMessage.ReasonPhrase = responseMessage.ReasonPhrase; clonedMessage.RequestMessage = responseMessage.RequestMessage; clonedMessage.Version = responseMessage.Version; response.Error.HttpResponse = clonedMessage; } } } else { if (logger != null) { logger.LogAsync("Command executed successfully."); } List<object> results = new List<object>(); foreach (object originalResult in commandResult.Results) { results.AddRange(TransformObject(originalResult, transforms)); } response.Result = GetLiveTestResult(results, tracer); } return response; }