Skip to content

Commit dcfca35

Browse files
Merge pull request #154 from darrencauthon/do_not_alter_metadata_keys
Do not alter metadata keys
2 parents f4ad3c6 + f2694d8 commit dcfca35

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

src/SparkPost.Tests/DataMapperTests.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,16 @@ public void metadata()
259259
.CastAs<IDictionary<string, object>>()[key].ShouldEqual(value);
260260
}
261261

262+
[Test]
263+
public void do_not_alter_the_keys_passed_to_metadata()
264+
{
265+
var key = "TEST";
266+
var value = Guid.NewGuid().ToString();
267+
transmission.Metadata[key] = value;
268+
mapper.ToDictionary(transmission)["metadata"]
269+
.CastAs<IDictionary<string, object>>()[key].ShouldEqual(value);
270+
}
271+
262272
[Test]
263273
public void do_not_include_empty_metadata()
264274
{

src/SparkPost/DataMapper.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,8 @@ public virtual IDictionary<string, object> ToDictionary(Transmission transmissio
8484
{
8585
var data = new Dictionary<string, object>
8686
{
87-
["substitution_data"] =
88-
transmission.SubstitutionData != null && transmission.SubstitutionData.Keys.Any()
89-
? transmission.SubstitutionData
90-
: null,
87+
["substitution_data"] = AlterThisDictionaryToBePassedToSparkpost(transmission.SubstitutionData),
88+
["metadata"] = AlterThisDictionaryToBePassedToSparkpost(transmission.Metadata),
9189
["recipients"] = transmission.ListId != null
9290
? (object) new Dictionary<string, object> {["list_id"] = transmission.ListId}
9391
: transmission.Recipients.Select(ToDictionary)
@@ -100,6 +98,13 @@ public virtual IDictionary<string, object> ToDictionary(Transmission transmissio
10098
return result;
10199
}
102100

101+
private static IDictionary<string, object> AlterThisDictionaryToBePassedToSparkpost(IDictionary<string, object> dictionary)
102+
{
103+
return dictionary != null && dictionary.Keys.Any()
104+
? dictionary
105+
: null;
106+
}
107+
103108
public virtual IDictionary<string, object> ToDictionary(Recipient recipient)
104109
{
105110
return WithCommonConventions(recipient, new Dictionary<string, object>()

0 commit comments

Comments
 (0)