private Message ToSDBMessage(MessageEntryProperty m)
        {
            var message = new Message();
            var httpMessage = m as HTTPMessageEntryProperty;

            if (httpMessage != null)
            {
                // fill headers
                message.Headers = new NameValueCollection();
                foreach (var header in httpMessage.Headers)
                {
                    message.Headers.Add(header.Key, header.Value);
                }

                // fill body
                // TODO: validate string encoding.
                message.Body = Encoding.UTF8.GetBytes(httpMessage.Body);
            }

            // fill request
            var httpRequestMessage = httpMessage as HTTPRequestMessageEntryProperty;
            if (httpRequestMessage != null)
            {
                message.Request = new Request
                {
                    Secure = httpRequestMessage.Url.Scheme == "https",
                    Verb = httpRequestMessage.Verb,
                    PathAndQuery = httpRequestMessage.Url.PathAndQuery
                };
            }

            // fill response
            var httpResponseMessage = httpMessage as HTTPResponseMessageEntryProperty;
            if (httpResponseMessage != null)
            {
                message.Response = new Response
                {
                    StatusCode = httpResponseMessage.StatusCode,
                    ReasonPhrase = httpResponseMessage.ReasonPhrase
                };
            }

            return message;
        }
示例#2
0
 public void setMessage(MessageEntryProperty message)
 {
     Properties.Add(MESSAGE_PROPERTY_NAME, message);
 }