summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.Core/Messaging/Channel.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2013-01-23 07:49:02 -0800
committerAndrew Arnott <andrewarnott@gmail.com>2013-01-23 07:49:02 -0800
commitf04d5ca8396bdb0d09b0fea4e22d4e96c4fa8ad2 (patch)
tree93b2b354a85a6705914d8e12ecfce159a24bb563 /src/DotNetOpenAuth.Core/Messaging/Channel.cs
parent22df10e81fe404fb3f7beb47a2e50a96b79ca78b (diff)
downloadDotNetOpenAuth-f04d5ca8396bdb0d09b0fea4e22d4e96c4fa8ad2.zip
DotNetOpenAuth-f04d5ca8396bdb0d09b0fea4e22d4e96c4fa8ad2.tar.gz
DotNetOpenAuth-f04d5ca8396bdb0d09b0fea4e22d4e96c4fa8ad2.tar.bz2
ApplicationBlock builds.
Diffstat (limited to 'src/DotNetOpenAuth.Core/Messaging/Channel.cs')
-rw-r--r--src/DotNetOpenAuth.Core/Messaging/Channel.cs27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/DotNetOpenAuth.Core/Messaging/Channel.cs b/src/DotNetOpenAuth.Core/Messaging/Channel.cs
index 7eadecd..36c91c7 100644
--- a/src/DotNetOpenAuth.Core/Messaging/Channel.cs
+++ b/src/DotNetOpenAuth.Core/Messaging/Channel.cs
@@ -554,6 +554,28 @@ namespace DotNetOpenAuth.Messaging {
}
/// <summary>
+ /// Adds just the binary data part of a message to a multipart form content object.
+ /// </summary>
+ /// <param name="requestMessageWithBinaryData">The request message with binary data.</param>
+ /// <returns>The initialized HttpContent.</returns>
+ protected static MultipartFormDataContent InitializeMultipartFormDataContent(IMessageWithBinaryData requestMessageWithBinaryData) {
+ Requires.NotNull(requestMessageWithBinaryData, "requestMessageWithBinaryData");
+
+ var content = new MultipartFormDataContent();
+ foreach (var part in requestMessageWithBinaryData.BinaryData) {
+ if (string.IsNullOrEmpty(part.Name)) {
+ content.Add(part.Content);
+ } else if (string.IsNullOrEmpty(part.FileName)) {
+ content.Add(part.Content, part.Name);
+ } else {
+ content.Add(part.Content, part.Name, part.FileName);
+ }
+ }
+
+ return content;
+ }
+
+ /// <summary>
/// Checks whether a given HTTP method is expected to include an entity body in its request.
/// </summary>
/// <param name="httpMethod">The HTTP method.</param>
@@ -1041,10 +1063,7 @@ namespace DotNetOpenAuth.Messaging {
var requestMessageWithBinaryData = requestMessage as IMessageWithBinaryData;
if (requestMessageWithBinaryData != null && requestMessageWithBinaryData.SendAsMultipart) {
- var content = new MultipartFormDataContent();
- foreach (var part in requestMessageWithBinaryData.BinaryData) {
- content.Add(part.Value, part.Key);
- }
+ var content = InitializeMultipartFormDataContent(requestMessageWithBinaryData);
// When sending multi-part, all data gets send as multi-part -- even the non-binary data.
foreach (var field in fields) {