@@ -32,9 +32,11 @@ public class SendGrid : IHttpHandler
32
32
string postedData = GetDocumentContents(_request);
33
33
34
34
var rockContext = new Rock.Data.RockContext();
35
- var timeZoneInfo = RockDateTime.OrgTimeZoneInfo;
35
+
36
36
var communicationRecipientService = new CommunicationRecipientService(rockContext);
37
+ var communicationRecipientActivityService = new CommunicationRecipientActivityService();
37
38
39
+ var timeZoneInfo = RockDateTime.OrgTimeZoneInfo;
38
40
var parser = new Sendgrid.Webhooks.Service.WebhookParser();
39
41
var events = parser.ParseEvents(postedData);
40
42
@@ -98,17 +100,22 @@ public class SendGrid : IHttpHandler
98
100
"Unknown";
99
101
var openActivity = new CommunicationRecipientActivity
100
102
{
103
+ CommunicationRecipientId = communicationRecipient.Id,
101
104
ActivityType = "Opened",
102
- ActivityDateTime = openEvent .TimeStamp,
105
+ ActivityDateTime = item .TimeStamp,
103
106
ActivityDetail =
104
107
string.Format("Opened from {0} ({1})", openEvent.UserAgent ?? "unknown",
105
108
openEvent.Ip).Truncate(2200)
106
109
};
107
- communicationRecipient.Activities .Add(openActivity);
110
+ communicationRecipientActivityService .Add(openActivity);
108
111
}
109
112
break;
110
113
case WebhookEventType.Click:
111
- var clickActivity = new CommunicationRecipientActivity { ActivityType = "Click" };
114
+ var clickActivity = new CommunicationRecipientActivity
115
+ {
116
+ CommunicationRecipientId = communicationRecipient.Id,
117
+ ActivityType = "Click"
118
+ };
112
119
var clickEvent = item as ClickEvent;
113
120
clickActivity.ActivityDateTime = item.TimeStamp;
114
121
if (clickEvent != null)
@@ -117,7 +124,7 @@ public class SendGrid : IHttpHandler
117
124
string.Format("Clicked the address {0} from {1} using {2}", clickEvent.Url,
118
125
clickEvent.Ip, clickEvent.UserAgent).Truncate(2200);
119
126
}
120
- communicationRecipient.Activities .Add(clickActivity);
127
+ CommunicationRecipientActivityService .Add(clickActivity);
121
128
break;
122
129
case WebhookEventType.Dropped:
123
130
var dropEvent = item as DroppedEvent;
@@ -177,7 +184,7 @@ public class SendGrid : IHttpHandler
177
184
}
178
185
if (!string.IsNullOrEmpty(item.Email))
179
186
{
180
- Rock.Communication.Email.ProcessBounce(item.Email, Rock.Communication.BounceType.HardBounce, failDescription.Truncate(250 ), item.TimeStamp);
187
+ Rock.Communication.Email.ProcessBounce(item.Email, Rock.Communication.BounceType.HardBounce, failDescription.Truncate(200 ), item.TimeStamp);
181
188
}
182
189
}
183
190
}
0 commit comments