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); }