summaryrefslogtreecommitdiffstats
path: root/SendGrid/SendGridMail/Transport/Web.cs
diff options
context:
space:
mode:
authorTyler Bischel <tyler.bischel@sendgrid.com>2012-04-25 15:51:54 -0700
committerTyler Bischel <tyler.bischel@sendgrid.com>2012-04-25 15:51:54 -0700
commitd805fa47bbe6fd2082e18b7c99a2be6e833f89b9 (patch)
tree89df96489c97c61bf69037978dbee0e2d448d753 /SendGrid/SendGridMail/Transport/Web.cs
parente8df320eaca9e0c2d23e4819cdf55c66bf3b7d8d (diff)
downloadsendgrid-csharp-d805fa47bbe6fd2082e18b7c99a2be6e833f89b9.zip
sendgrid-csharp-d805fa47bbe6fd2082e18b7c99a2be6e833f89b9.tar.gz
sendgrid-csharp-d805fa47bbe6fd2082e18b7c99a2be6e833f89b9.tar.bz2
added support for attachments by streams, and made the REST call truncate to onl the file name, not the full path
Diffstat (limited to 'SendGrid/SendGridMail/Transport/Web.cs')
-rwxr-xr-xSendGrid/SendGridMail/Transport/Web.cs10
1 files changed, 9 insertions, 1 deletions
diff --git a/SendGrid/SendGridMail/Transport/Web.cs b/SendGrid/SendGridMail/Transport/Web.cs
index 8e0c512..f3448ad 100755
--- a/SendGrid/SendGridMail/Transport/Web.cs
+++ b/SendGrid/SendGridMail/Transport/Web.cs
@@ -85,7 +85,10 @@ namespace SendGridMail.Transport
private void AttachFiles(ISendGrid message, MultipartEntity multipartEntity)
{
var files = FetchFileBodies(message);
- files.ForEach(kvp => multipartEntity.AddBody(new FileBody("files[" + kvp.Key + "]", kvp.Key, kvp.Value)));
+ files.ForEach(kvp => multipartEntity.AddBody(new FileBody("files[" + Path.GetFileName(kvp.Key) + "]", kvp.Key, kvp.Value)));
+
+ var streamingFiles = FetchStreamingFileBodies(message);
+ streamingFiles.ForEach(kvp => multipartEntity.AddBody(new StreamedFileBody(kvp.Value, kvp.Key)));
}
private void CheckForErrors(CodeScales.Http.Methods.HttpResponse response)
@@ -148,6 +151,11 @@ namespace SendGridMail.Transport
}
return result.Where(r => !String.IsNullOrEmpty(r.Value)).ToList();
}
+
+ internal List<KeyValuePair<String, MemoryStream>> FetchStreamingFileBodies(ISendGrid message)
+ {
+ return message.StreamedAttachments.Select(kvp => kvp).ToList();
+ }
internal List<KeyValuePair<String, FileInfo>> FetchFileBodies(ISendGrid message)
{