private void ProcessFormContent() { mailgunRequestPayload = new MailgunRequestPayload { TimeStamp = request.Form["timestamp"].AsInteger(), Token = request.Form["token"] ?? string.Empty, Signature = request.Form["signature"] ?? string.Empty, EventType = request.Form["event"] ?? string.Empty, WorkflowActionGuid = request.Form["workflow_action_guid"] ?? string.Empty, CommunicationRecipientGuid = request.Form["communication_recipient_guid"] ?? string.Empty, XMailgunVariables = request.Form["X-Mailgun-Variables"] ?? string.Empty, ClientName = request.Form["client-name"] ?? string.Empty, ClientOs = request.Form["client-os"] ?? string.Empty, ClientType = request.Form["client-type"] ?? string.Empty, DeviceType = request.Form["device-type"] ?? string.Empty, Ip = request.Form["ip"] ?? string.Empty, Url = request.Form["url"] ?? string.Empty, Description = request.Form["description"] ?? string.Empty, Notification = request.Form["notification"] ?? string.Empty, Recipient = request.Form["recipient"] ?? string.Empty }; ProcessRequest(); }
private void ProcessJsonContent() { string payload = string.Empty; using (Stream s = request.InputStream) { using (StreamReader readStream = new StreamReader(s, Encoding.UTF8)) { payload = readStream.ReadToEnd(); } } var jObject = JsonConvert.DeserializeObject <JObject>(payload); if (jObject == null) { response.Write("Invalid content type."); response.StatusCode = ( int )System.Net.HttpStatusCode.NotAcceptable; return; } mailgunRequestPayload = new MailgunRequestPayload(); if (jObject["signature"] != null) { mailgunRequestPayload.TimeStamp = jObject["signature"]["timestamp"] != null ? ( int )jObject["signature"]["timestamp"] : 0; mailgunRequestPayload.Token = jObject["signature"]["token"] != null ? ( string )jObject["signature"]["token"] : string.Empty; mailgunRequestPayload.Signature = jObject["signature"]["signature"] != null ? ( string )jObject["signature"]["signature"] : string.Empty; } if (jObject["event-data"] != null) { mailgunRequestPayload.EventType = jObject["event-data"]["event"] != null ? ( string )jObject["event-data"]["event"] : string.Empty; mailgunRequestPayload.EventTypeReason = jObject["event-data"]["reason"] != null ? ( string )jObject["event-data"]["reason"] : string.Empty; mailgunRequestPayload.XMailgunVariables = jObject["event-data"]["user-variables"] != null ? jObject["event-data"]["user-variables"].ToString(Formatting.None) : string.Empty; mailgunRequestPayload.Ip = jObject["event-data"]["ip"] != null ? ( string )jObject["event-data"]["ip"] : string.Empty; mailgunRequestPayload.Url = jObject["event-data"]["url"] != null ? ( string )jObject["event-data"]["url"] : string.Empty; mailgunRequestPayload.Recipient = jObject["event-data"]["recipient"] != null ? ( string )jObject["event-data"]["recipient"] : string.Empty; if (jObject["event-data"]["client-info"] != null) { mailgunRequestPayload.ClientName = jObject["event-data"]["client-info"]["client-name"] != null ? ( string )jObject["event-data"]["client-info"]["client-name"] : string.Empty; mailgunRequestPayload.ClientOs = jObject["event-data"]["client-info"]["client-os"] != null ? ( string )jObject["event-data"]["client-info"]["client-os"] : string.Empty; mailgunRequestPayload.ClientType = jObject["event-data"]["client-info"]["client-type"] != null ? ( string )jObject["event-data"]["client-info"]["client-type"] : string.Empty; mailgunRequestPayload.DeviceType = jObject["event-data"]["client-info"]["device-type"] != null ? ( string )jObject["event-data"]["client-info"]["device-type"] : string.Empty; } if (jObject["event-data"]["user-variables"] != null && jObject["event-data"]["user-variables"]["X-Mailgun-Variables"] != null) { string mailgunVariables = HttpContext.Current.Server.UrlDecode(mailgunRequestPayload.XMailgunVariables); if (mailgunVariables.IsNotNullOrWhiteSpace()) { var mailgunLegacyVarDictionary = JsonConvert.DeserializeObject <Dictionary <string, string> >(mailgunVariables); var mailgunVarDictionary = JsonConvert.DeserializeObject <Dictionary <string, string> >(mailgunLegacyVarDictionary["X-Mailgun-Variables"]); if (mailgunVarDictionary.ContainsKey("workflow_action_guid")) { mailgunRequestPayload.WorkflowActionGuid = mailgunVarDictionary["workflow_action_guid"]; } if (mailgunVarDictionary.ContainsKey("communication_recipient_guid")) { mailgunRequestPayload.CommunicationRecipientGuid = mailgunVarDictionary["communication_recipient_guid"]; } } } if (jObject["event-data"]["delivery-status"] != null) { string description = jObject["event-data"]["delivery-status"]["description"] != null ? ( string )jObject["event-data"]["delivery-status"]["description"] : string.Empty; string message = jObject["event-data"]["delivery-status"]["message"] != null ? ( string )jObject["event-data"]["delivery-status"]["message"] : string.Empty; mailgunRequestPayload.Description = description + message; } } ProcessRequest(); }