From 4f191d38bf03f2d5cfb623df466797bcc853e88e Mon Sep 17 00:00:00 2001 From: Darren Cauthon Date: Wed, 15 Nov 2017 17:54:15 -0600 Subject: [PATCH 1/3] We do not want to alter the metadata keys. --- src/SparkPost.Tests/DataMapperTests.cs | 10 ++++++++++ src/SparkPost/DataMapper.cs | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/src/SparkPost.Tests/DataMapperTests.cs b/src/SparkPost.Tests/DataMapperTests.cs index 6d595a72..3a6e54e3 100644 --- a/src/SparkPost.Tests/DataMapperTests.cs +++ b/src/SparkPost.Tests/DataMapperTests.cs @@ -259,6 +259,16 @@ public void metadata() .CastAs>()[key].ShouldEqual(value); } + [Test] + public void do_not_alter_the_keys_passed_to_metadata() + { + var key = "TEST"; + var value = Guid.NewGuid().ToString(); + transmission.Metadata[key] = value; + mapper.ToDictionary(transmission)["metadata"] + .CastAs>()[key].ShouldEqual(value); + } + [Test] public void do_not_include_empty_metadata() { diff --git a/src/SparkPost/DataMapper.cs b/src/SparkPost/DataMapper.cs index ac3ce89b..2e609c30 100644 --- a/src/SparkPost/DataMapper.cs +++ b/src/SparkPost/DataMapper.cs @@ -88,6 +88,10 @@ public virtual IDictionary ToDictionary(Transmission transmissio transmission.SubstitutionData != null && transmission.SubstitutionData.Keys.Any() ? transmission.SubstitutionData : null, + ["metadata"] = + transmission.Metadata != null && transmission.Metadata.Keys.Any() + ? transmission.Metadata + : null, ["recipients"] = transmission.ListId != null ? (object) new Dictionary {["list_id"] = transmission.ListId} : transmission.Recipients.Select(ToDictionary) From 5aa75f23ad382eaaa7e294e018ff73ed191c53d2 Mon Sep 17 00:00:00 2001 From: Darren Cauthon Date: Wed, 15 Nov 2017 17:57:06 -0600 Subject: [PATCH 2/3] Refactor. --- src/SparkPost/DataMapper.cs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/SparkPost/DataMapper.cs b/src/SparkPost/DataMapper.cs index 2e609c30..219166fe 100644 --- a/src/SparkPost/DataMapper.cs +++ b/src/SparkPost/DataMapper.cs @@ -84,14 +84,8 @@ public virtual IDictionary ToDictionary(Transmission transmissio { var data = new Dictionary { - ["substitution_data"] = - transmission.SubstitutionData != null && transmission.SubstitutionData.Keys.Any() - ? transmission.SubstitutionData - : null, - ["metadata"] = - transmission.Metadata != null && transmission.Metadata.Keys.Any() - ? transmission.Metadata - : null, + ["substitution_data"] = PassAsADictionary(transmission.SubstitutionData), + ["metadata"] = PassAsADictionary(transmission.Metadata), ["recipients"] = transmission.ListId != null ? (object) new Dictionary {["list_id"] = transmission.ListId} : transmission.Recipients.Select(ToDictionary) @@ -104,6 +98,13 @@ public virtual IDictionary ToDictionary(Transmission transmissio return result; } + private static IDictionary PassAsADictionary(IDictionary dictionary) + { + return dictionary != null && dictionary.Keys.Any() + ? dictionary + : null; + } + public virtual IDictionary ToDictionary(Recipient recipient) { return WithCommonConventions(recipient, new Dictionary() From f2694d8ec7c9614cb5a268ce56b30187ef9af2ff Mon Sep 17 00:00:00 2001 From: Darren Cauthon Date: Wed, 15 Nov 2017 18:01:16 -0600 Subject: [PATCH 3/3] Rename. --- src/SparkPost/DataMapper.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SparkPost/DataMapper.cs b/src/SparkPost/DataMapper.cs index 219166fe..ba94e6c0 100644 --- a/src/SparkPost/DataMapper.cs +++ b/src/SparkPost/DataMapper.cs @@ -84,8 +84,8 @@ public virtual IDictionary ToDictionary(Transmission transmissio { var data = new Dictionary { - ["substitution_data"] = PassAsADictionary(transmission.SubstitutionData), - ["metadata"] = PassAsADictionary(transmission.Metadata), + ["substitution_data"] = AlterThisDictionaryToBePassedToSparkpost(transmission.SubstitutionData), + ["metadata"] = AlterThisDictionaryToBePassedToSparkpost(transmission.Metadata), ["recipients"] = transmission.ListId != null ? (object) new Dictionary {["list_id"] = transmission.ListId} : transmission.Recipients.Select(ToDictionary) @@ -98,7 +98,7 @@ public virtual IDictionary ToDictionary(Transmission transmissio return result; } - private static IDictionary PassAsADictionary(IDictionary dictionary) + private static IDictionary AlterThisDictionaryToBePassedToSparkpost(IDictionary dictionary) { return dictionary != null && dictionary.Keys.Any() ? dictionary