Example #1
0
        public static HttpMessage Parse(string data)
        {
            var httpMessage = new HttpMessage();
            var request     = new HttpRequestMessage();
            var response    = new HttpResponseMessage();

            // Convert the data into json object
            dynamic jsonObject = JsonConvert.DeserializeObject(data);

            if (JObjectUtil.containsKeyWithNonEmptyString(jsonObject, MessageCommonParams.EVENT_TYPE) &&
                JObjectUtil.containsKeyWithNonEmptyString(jsonObject, MessageCommonParams.MESSAGE_ID))
            {
                if (jsonObject[MessageCommonParams.EVENT_TYPE] == MessageTypeParams.REQUEST)
                {
                    httpMessage.IsRequest = true;
                    MoesifRequest mo_req = new MoesifRequest(jsonObject);
                    httpMessage.MessageId = Guid.Parse(mo_req.messageId);
                    request.Method        = new HttpMethod(mo_req.method.ToUpper());
                    request.RequestUri    = new Uri(mo_req.uri);
                    request.Properties.Add("UserId", mo_req.userId);
                    request.Properties.Add("CompanyId", mo_req.companyId);
                    request.Properties.Add("ReqHeaders", mo_req.requestHeaders);
                    request.Properties.Add("Metadata", mo_req.metadata);
                    request.Content = new StringContent(mo_req.requestBody);
                    httpMessage.ContextRequestIpAddress = mo_req.ipAddress;
                    httpMessage.ContextRequestUser      = mo_req.contextRequestUser;
                }
                else
                {
                    httpMessage.IsRequest = false;
                    MoesifResponse mo_res = new MoesifResponse(jsonObject);
                    httpMessage.MessageId = Guid.Parse(mo_res.messageId);
                    response.StatusCode   = (HttpStatusCode)Convert.ToInt32(mo_res.statusCode);
                    response.Content      = new StringContent(mo_res.responseBody);
                    TransformResponseHeaders(response, mo_res.responseHeaders);
                }
            }
            else
            {
                throw new ArgumentException("Invalid formatted event :" + data);
            }

            if (httpMessage.IsRequest)
            {
                httpMessage.HttpRequestMessage = request;
            }
            else
            {
                httpMessage.HttpResponseMessage = response;
            }
            return(httpMessage);
        }
        public static HttpMessage Parse(string data)
        {
            var httpMessage = new HttpMessage();
            var request     = new HttpRequestMessage();
            var response    = new HttpResponseMessage();

            // Convert the data into json object
            dynamic jsonObject = JsonConvert.DeserializeObject(data);

            if (jsonObject.ContainsKey("event_type") && !String.IsNullOrEmpty((string)jsonObject["event_type"]) &&
                jsonObject.ContainsKey("message-id") && !String.IsNullOrEmpty((string)jsonObject["message-id"]))
            {
                if (jsonObject["event_type"] == "request")
                {
                    httpMessage.IsRequest = true;
                    MoesifRequest mo_req = new MoesifRequest(jsonObject);
                    httpMessage.MessageId = Guid.Parse(mo_req.messageId);
                    request.Method        = new HttpMethod(mo_req.method.ToUpper());
                    request.RequestUri    = new Uri(mo_req.uri);
                    request.Properties.Add("UserId", mo_req.userId);
                    request.Properties.Add("CompanyId", mo_req.companyId);
                    request.Properties.Add("ReqHeaders", mo_req.requestHeaders);
                    request.Properties.Add("Metadata", mo_req.metadata);
                    request.Content = new StringContent(mo_req.requestBody);
                }
                else
                {
                    httpMessage.IsRequest = false;
                    MoesifResponse mo_res = new MoesifResponse(jsonObject);
                    httpMessage.MessageId = Guid.Parse(mo_res.messageId);
                    response.StatusCode   = (HttpStatusCode)Convert.ToInt32(mo_res.statusCode);
                    response.Content      = new StringContent(mo_res.responseBody);
                    TransformResponseHeaders(response, mo_res.responseHeaders);
                }
            }
            else
            {
                throw new ArgumentException("Invalid formatted event :" + data);
            }

            if (httpMessage.IsRequest)
            {
                httpMessage.HttpRequestMessage = request;
            }
            else
            {
                httpMessage.HttpResponseMessage = response;
            }
            return(httpMessage);
        }