/// <summary> /// Creates a new object. /// </summary> /// <param name="urlRequested"></param> /// <param name="userAddressAndPort"></param> /// <param name="userAddress"></param> /// <param name="bytesSent"></param> /// <param name="classification"></param> /// <param name="request"></param> /// <param name="httpStatus"></param> /// <param name="milliseconds"></param> public ResponseSentEventArgs(string urlRequested, string userAddressAndPort, string userAddress, long bytesSent, ContentClassification classification, IRequest request, int httpStatus, int milliseconds) { UrlRequested = urlRequested; UserAddressAndPort = userAddressAndPort; UserAddress = userAddress; BytesSent = bytesSent; Classification = classification; Request = request; HttpStatus = httpStatus; Milliseconds = milliseconds; }
/// <summary> /// Configures the request event handler to respond to a request. /// </summary> /// <param name="handleRequest"></param> /// <param name="mimeType"></param> /// <param name="content"></param> /// <param name="contentLength"></param> /// <param name="statusCode"></param> /// <param name="contentClassification"></param> /// <param name="milliseconds"></param> private void ConfigureResponse(bool handleRequest, string mimeType, byte[] content, long contentLength = -1, HttpStatusCode statusCode = HttpStatusCode.OK, ContentClassification contentClassification = ContentClassification.Other, int milliseconds = 0) { _WebServer.RequestReceived += _RequestReceivedEvent.Handler; _RequestReceivedEvent.EventRaised += (object sender, RequestReceivedEventArgs args) => { args.Handled = handleRequest; if(handleRequest) { args.Classification = contentClassification; args.Response.ContentLength = contentLength >= 0L ? contentLength : content.LongLength; args.Response.MimeType = mimeType; args.Response.StatusCode = statusCode; _OutputStream.Write(content, 0, content.Length); } _Now = _Now.AddMilliseconds(milliseconds); }; }
/// <summary> /// Configures the request event handler to respond to a request. /// </summary> /// <param name="handleRequest"></param> /// <param name="mimeType"></param> /// <param name="content"></param> /// <param name="contentLength"></param> /// <param name="statusCode"></param> /// <param name="contentClassification"></param> /// <param name="milliseconds"></param> private void ConfigureResponse(bool handleRequest, string mimeType, string content, long contentLength = -1, HttpStatusCode statusCode = HttpStatusCode.OK, ContentClassification contentClassification = ContentClassification.Other, int milliseconds = 0) { ConfigureResponse(handleRequest, mimeType, Encoding.UTF8.GetBytes(content), contentLength, statusCode, contentClassification, milliseconds); }
/// <summary> /// Raises an event on the web webServer to simulate a response to a request being sent at a given time. /// </summary> /// <param name="userAddress"></param> /// <param name="userName"></param> /// <param name="bytesSent"></param> /// <param name="contentClassification"></param> /// <param name="timeSent"></param> /// <returns></returns> private DateTime RaiseResponseEvent(string userAddress, string userName, long bytesSent, ContentClassification contentClassification, DateTime timeSent) { SetUtcNow(timeSent); _WebServer.Raise(s => s.ResponseSent += null, new ResponseSentEventArgs(null, null, userAddress, bytesSent, contentClassification, null, 0, 0, userName)); return(timeSent); }
/// <summary> /// Raises an event on the web webServer to simulate a response to a request being sent at a given time. /// </summary> /// <param name="userAddress"></param> /// <param name="bytesSent"></param> /// <param name="contentClassification"></param> /// <param name="timeSent"></param> /// <returns></returns> private DateTime RaiseResponseEvent(string userAddress, long bytesSent, ContentClassification contentClassification, DateTime timeSent) { SetUtcNow(timeSent); _WebServer.Raise(s => s.ResponseSent += null, new ResponseSentEventArgs(null, null, userAddress, bytesSent, contentClassification, null, 0, 0)); return timeSent; }