Ejemplo n.º 1
0
 public CrowbarHttpWorker(ICrowbarHttpRequest request, CrowbarHttpResponse response, IRequestWaitHandle handle)
     : base(request.Path, request.QueryString, response.Output)
 {
     this.request = request;
     this.response = response;
     this.handle = handle;
 }
 /// <summary>
 /// Creates an instance of <see cref="CrowbarHttpRequestCapture"/>.
 /// </summary>
 /// <param name="request">The request.</param>
 public CrowbarHttpRequestCapture(ICrowbarHttpRequest request)
 {
     this.request = request;
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Throws an exception due to an error during the request.
        /// </summary>
        /// <param name="request">The HTTP request.</param>
        protected virtual void Throw(ICrowbarHttpRequest request)
        {
            using (var writer = new StringWriter())
            {
                writer.WriteLine("The MVC application threw an exception during the following HTTP request:");
                writer.WriteLine();
                writer.WriteLine(request);

                var exception = CrowbarContext.ExceptionContext.Exception;
                if (exception.IsSerializable())
                {
                    throw new CrowbarException(writer.ToString(), exception);
                }

                writer.WriteLine(exception.Message);

                throw new Exception(writer.ToString());
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Creates the client response.
        /// </summary>
        /// <param name="request">The HTTP request.</param>
        /// <param name="response">The HTTP response.</param>
        /// <returns>The client response.</returns>
        protected virtual ClientResponse CreateResponse(ICrowbarHttpRequest request, CrowbarHttpResponse response)
        {
            if (CrowbarContext.ExceptionContext != null)
            {
                Throw(request);
            }

            return new ClientResponse
            {
                Advanced = new AdvancedClientResponse
                {
                    ActionExecutedContext = CrowbarContext.ActionExecutedContext,
                    ActionExecutingContext = CrowbarContext.ActionExecutingContext,
                    ResultExecutedContext = CrowbarContext.ResultExecutedContext,
                    ResultExecutingContext = CrowbarContext.ResultExecutingContext,
                    HttpResponse = CrowbarContext.HttpResponse,
                    HttpSessionState = CrowbarContext.HttpSessionState
                },
                Headers = response.GetHeaders(),
                ResponseBody = response.GetResponseBody(),
                RawHttpRequest = request.ToString(),
                RawHttpResponse = response.ToString(),
                StatusCode = response.StatusCode,
                StatusDescription = response.StatusDescription
            };
        }