|
4 | 4 | using SendGrid.Helpers.Mail; |
5 | 5 | using System; |
6 | 6 | using System.Collections.Generic; |
| 7 | +using System.Linq; |
7 | 8 | using System.Net; |
8 | 9 | using System.Threading.Tasks; |
9 | 10 |
|
@@ -109,24 +110,34 @@ public override async Task<OltSendGridEmailResult> SendAsync() |
109 | 110 | { |
110 | 111 | throw new OltSendGridValidationException(ValidationErrors()); |
111 | 112 | } |
112 | | - |
| 113 | + |
| 114 | + var result = new OltSendGridEmailResult |
| 115 | + { |
| 116 | + RecipientResults = BuildRecipients() |
| 117 | + }; |
| 118 | + |
113 | 119 | var client = CreateClient(); |
114 | | - var msg = CreateMessage(BuildRecipients()); |
115 | | - var sendResponse = await client.SendEmailAsync(msg); |
| 120 | + var msg = CreateMessage(result.RecipientResults); |
116 | 121 |
|
117 | | - var result = new OltSendGridEmailResult(); |
118 | | - if (sendResponse.StatusCode != HttpStatusCode.Accepted) |
| 122 | + if (msg.Personalizations.Any() && msg.Personalizations[0].Tos?.Count > 0) |
119 | 123 | { |
120 | | - var body = await sendResponse.Body.ReadAsStringAsync(); |
| 124 | + var sendResponse = await client.SendEmailAsync(msg); |
121 | 125 |
|
122 | | - result.Errors.Add($"{sendResponse.StatusCode}"); |
123 | | - result.SendGrid = JsonConvert.DeserializeObject<OltSendGridResponseJson>(body); |
124 | | - result.SendGrid.Errors.ForEach(error => |
| 126 | + if (sendResponse.StatusCode != HttpStatusCode.Accepted) |
125 | 127 | { |
126 | | - result.Errors.Add($"{error.Field} - {error.Message}"); |
127 | | - }); |
128 | | - |
129 | | - |
| 128 | + var body = await sendResponse.Body.ReadAsStringAsync(); |
| 129 | + |
| 130 | + result.Errors.Add($"{sendResponse.StatusCode}"); |
| 131 | + result.SendGrid = JsonConvert.DeserializeObject<OltSendGridResponseJson>(body); |
| 132 | + result.SendGrid.Errors.ForEach(error => |
| 133 | + { |
| 134 | + result.Errors.Add($"{error.Field} - {error.Message}"); |
| 135 | + }); |
| 136 | + } |
| 137 | + } |
| 138 | + else |
| 139 | + { |
| 140 | + result.Errors.Add("No Recipients were attached. This can be caused by skipping due to the whitelist"); |
130 | 141 | } |
131 | 142 | return result; |
132 | 143 | } |
|
0 commit comments