summaryrefslogtreecommitdiffstats
path: root/src/SendGrid/Helpers
diff options
context:
space:
mode:
Diffstat (limited to 'src/SendGrid/Helpers')
-rw-r--r--src/SendGrid/Helpers/Mail/Mail.cs47
-rw-r--r--src/SendGrid/Helpers/Mail/MailHelper.cs33
-rw-r--r--src/SendGrid/Helpers/Mail/Model/ASM.cs (renamed from src/SendGrid/Helpers/Mail/ASM.cs)0
-rw-r--r--src/SendGrid/Helpers/Mail/Model/Attachment.cs (renamed from src/SendGrid/Helpers/Mail/Attachment.cs)0
-rw-r--r--src/SendGrid/Helpers/Mail/Model/BCCSettings.cs (renamed from src/SendGrid/Helpers/Mail/BCCSettings.cs)0
-rw-r--r--src/SendGrid/Helpers/Mail/Model/BypassListManagement.cs (renamed from src/SendGrid/Helpers/Mail/BypassListManagement.cs)0
-rw-r--r--src/SendGrid/Helpers/Mail/Model/ClickTracking.cs (renamed from src/SendGrid/Helpers/Mail/ClickTracking.cs)0
-rw-r--r--src/SendGrid/Helpers/Mail/Model/Content.cs (renamed from src/SendGrid/Helpers/Mail/Content.cs)18
-rw-r--r--src/SendGrid/Helpers/Mail/Model/EmailAddress.cs (renamed from src/SendGrid/Helpers/Mail/MailAddress.cs)10
-rw-r--r--src/SendGrid/Helpers/Mail/Model/FooterSettings.cs (renamed from src/SendGrid/Helpers/Mail/FooterSettings.cs)0
-rw-r--r--src/SendGrid/Helpers/Mail/Model/Ganalytics.cs (renamed from src/SendGrid/Helpers/Mail/Ganalytics.cs)0
-rw-r--r--src/SendGrid/Helpers/Mail/Model/MailSettings.cs (renamed from src/SendGrid/Helpers/Mail/MailSettings.cs)0
-rw-r--r--src/SendGrid/Helpers/Mail/Model/OpenTracking.cs (renamed from src/SendGrid/Helpers/Mail/OpenTracking.cs)0
-rw-r--r--src/SendGrid/Helpers/Mail/Model/Personalization.cs32
-rw-r--r--src/SendGrid/Helpers/Mail/Model/SandboxMode.cs (renamed from src/SendGrid/Helpers/Mail/SandboxMode.cs)0
-rw-r--r--src/SendGrid/Helpers/Mail/Model/SpamCheck.cs (renamed from src/SendGrid/Helpers/Mail/SpamCheck.cs)0
-rw-r--r--src/SendGrid/Helpers/Mail/Model/SubscriptionTracking.cs (renamed from src/SendGrid/Helpers/Mail/SubscriptionTracking.cs)0
-rw-r--r--src/SendGrid/Helpers/Mail/Model/TrackingSettings.cs (renamed from src/SendGrid/Helpers/Mail/TrackingSettings.cs)0
-rw-r--r--src/SendGrid/Helpers/Mail/Personalization.cs80
-rw-r--r--src/SendGrid/Helpers/Mail/SendGridMessage.cs88
20 files changed, 93 insertions, 215 deletions
diff --git a/src/SendGrid/Helpers/Mail/Mail.cs b/src/SendGrid/Helpers/Mail/Mail.cs
deleted file mode 100644
index d9ad829..0000000
--- a/src/SendGrid/Helpers/Mail/Mail.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using Newtonsoft.Json;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-
-namespace SendGrid.Helpers.Mail
-{
-
- public class Mail
- {
- private Client _client;
-
- public Mail(Client client)
- {
- _client = client;
- }
-
- public async Task<Response> SendEmailAsync(SendGridMessage msg)
- {
- return await _client.RequestAsync(Client.Method.POST,
- msg.Get(),
- urlPath: "mail/send").ConfigureAwait(false);
- }
-
- public async Task<Response> SendSingleEmailAsync(MailAddress from,
- MailAddress to,
- string subject,
- string contentText,
- string contentHTML,
- SendGridMessage msg = null)
- {
- if(msg == null)
- {
- msg = new SendGridMessage();
- }
- msg.From = from;
- msg.Subject = subject;
- var text = new Content(MimeType.Text, contentText);
- msg.AddContent(text);
- var html = new Content(MimeType.HTML, contentHTML);
- msg.AddContent(html);
- var p = new Personalization();
- p.AddTo(to);
- msg.AddPersonalization(p);
- return await SendEmailAsync(msg).ConfigureAwait(false);
- }
- }
-}
diff --git a/src/SendGrid/Helpers/Mail/MailHelper.cs b/src/SendGrid/Helpers/Mail/MailHelper.cs
new file mode 100644
index 0000000..f151c1f
--- /dev/null
+++ b/src/SendGrid/Helpers/Mail/MailHelper.cs
@@ -0,0 +1,33 @@
+using System.Collections.Generic;
+
+namespace SendGrid.Helpers.Mail
+{
+
+ public class MailHelper
+ {
+ public static SendGridMessage CreateSingleEmail(EmailAddress from,
+ EmailAddress to,
+ string subject,
+ string contentText,
+ string contentHtml)
+ {
+ var msg = new SendGridMessage()
+ {
+ From = from,
+ Personalization = new List<Personalization>() {
+ new Personalization() {
+ Tos = new List<EmailAddress>() {
+ to
+ }
+ }
+ },
+ Subject = subject,
+ Contents = new List<Content>() {
+ new PlainTextContent(contentText),
+ new HtmlContent(contentHtml)
+ }
+ };
+ return msg;
+ }
+ }
+} \ No newline at end of file
diff --git a/src/SendGrid/Helpers/Mail/ASM.cs b/src/SendGrid/Helpers/Mail/Model/ASM.cs
index f300780..f300780 100644
--- a/src/SendGrid/Helpers/Mail/ASM.cs
+++ b/src/SendGrid/Helpers/Mail/Model/ASM.cs
diff --git a/src/SendGrid/Helpers/Mail/Attachment.cs b/src/SendGrid/Helpers/Mail/Model/Attachment.cs
index cc2bfd6..cc2bfd6 100644
--- a/src/SendGrid/Helpers/Mail/Attachment.cs
+++ b/src/SendGrid/Helpers/Mail/Model/Attachment.cs
diff --git a/src/SendGrid/Helpers/Mail/BCCSettings.cs b/src/SendGrid/Helpers/Mail/Model/BCCSettings.cs
index 79f989e..79f989e 100644
--- a/src/SendGrid/Helpers/Mail/BCCSettings.cs
+++ b/src/SendGrid/Helpers/Mail/Model/BCCSettings.cs
diff --git a/src/SendGrid/Helpers/Mail/BypassListManagement.cs b/src/SendGrid/Helpers/Mail/Model/BypassListManagement.cs
index cb4cfed..cb4cfed 100644
--- a/src/SendGrid/Helpers/Mail/BypassListManagement.cs
+++ b/src/SendGrid/Helpers/Mail/Model/BypassListManagement.cs
diff --git a/src/SendGrid/Helpers/Mail/ClickTracking.cs b/src/SendGrid/Helpers/Mail/Model/ClickTracking.cs
index b8f82f5..b8f82f5 100644
--- a/src/SendGrid/Helpers/Mail/ClickTracking.cs
+++ b/src/SendGrid/Helpers/Mail/Model/ClickTracking.cs
diff --git a/src/SendGrid/Helpers/Mail/Content.cs b/src/SendGrid/Helpers/Mail/Model/Content.cs
index 68b01d3..0f05156 100644
--- a/src/SendGrid/Helpers/Mail/Content.cs
+++ b/src/SendGrid/Helpers/Mail/Model/Content.cs
@@ -20,4 +20,22 @@ namespace SendGrid.Helpers.Mail
[JsonProperty(PropertyName = "value")]
public string Value { get; set; }
}
+
+ public class PlainTextContent : Content
+ {
+ public PlainTextContent(string value)
+ {
+ this.Type = MimeType.Text;
+ this.Value = value;
+ }
+ }
+
+ public class HtmlContent : Content
+ {
+ public HtmlContent(string value)
+ {
+ this.Type = MimeType.Html;
+ this.Value = value;
+ }
+ }
} \ No newline at end of file
diff --git a/src/SendGrid/Helpers/Mail/MailAddress.cs b/src/SendGrid/Helpers/Mail/Model/EmailAddress.cs
index b3b3f18..e1ba319 100644
--- a/src/SendGrid/Helpers/Mail/MailAddress.cs
+++ b/src/SendGrid/Helpers/Mail/Model/EmailAddress.cs
@@ -2,15 +2,15 @@
namespace SendGrid.Helpers.Mail
{
- public class MailAddress
+ public class EmailAddress
{
- public MailAddress()
+ public EmailAddress()
{
}
- public MailAddress(string email, string name = null)
+ public EmailAddress(string email, string name = null)
{
- this.Address = email;
+ this.Email = email;
this.Name = name;
}
@@ -18,6 +18,6 @@ namespace SendGrid.Helpers.Mail
public string Name { get; set; }
[JsonProperty(PropertyName = "email")]
- public string Address { get; set; }
+ public string Email { get; set; }
}
} \ No newline at end of file
diff --git a/src/SendGrid/Helpers/Mail/FooterSettings.cs b/src/SendGrid/Helpers/Mail/Model/FooterSettings.cs
index 5ef64f7..5ef64f7 100644
--- a/src/SendGrid/Helpers/Mail/FooterSettings.cs
+++ b/src/SendGrid/Helpers/Mail/Model/FooterSettings.cs
diff --git a/src/SendGrid/Helpers/Mail/Ganalytics.cs b/src/SendGrid/Helpers/Mail/Model/Ganalytics.cs
index 071da50..071da50 100644
--- a/src/SendGrid/Helpers/Mail/Ganalytics.cs
+++ b/src/SendGrid/Helpers/Mail/Model/Ganalytics.cs
diff --git a/src/SendGrid/Helpers/Mail/MailSettings.cs b/src/SendGrid/Helpers/Mail/Model/MailSettings.cs
index 1875603..1875603 100644
--- a/src/SendGrid/Helpers/Mail/MailSettings.cs
+++ b/src/SendGrid/Helpers/Mail/Model/MailSettings.cs
diff --git a/src/SendGrid/Helpers/Mail/OpenTracking.cs b/src/SendGrid/Helpers/Mail/Model/OpenTracking.cs
index b171a0b..b171a0b 100644
--- a/src/SendGrid/Helpers/Mail/OpenTracking.cs
+++ b/src/SendGrid/Helpers/Mail/Model/OpenTracking.cs
diff --git a/src/SendGrid/Helpers/Mail/Model/Personalization.cs b/src/SendGrid/Helpers/Mail/Model/Personalization.cs
new file mode 100644
index 0000000..54a3506
--- /dev/null
+++ b/src/SendGrid/Helpers/Mail/Model/Personalization.cs
@@ -0,0 +1,32 @@
+using System.Collections.Generic;
+using Newtonsoft.Json;
+
+namespace SendGrid.Helpers.Mail
+{
+ public class Personalization
+ {
+ [JsonProperty(PropertyName = "to")]
+ public List<EmailAddress> Tos { get; set; }
+
+ [JsonProperty(PropertyName = "cc")]
+ public List<EmailAddress> Ccs { get; set; }
+
+ [JsonProperty(PropertyName = "bcc")]
+ public List<EmailAddress> Bccs { get; set; }
+
+ [JsonProperty(PropertyName = "subject")]
+ public string Subject { get; set; }
+
+ [JsonProperty(PropertyName = "headers")]
+ public Dictionary<string, string> Headers { get; set; }
+
+ [JsonProperty(PropertyName = "substitutions")]
+ public Dictionary<string, string> Substitutions { get; set; }
+
+ [JsonProperty(PropertyName = "custom_args")]
+ public Dictionary<string, string> CustomArgs { get; set; }
+
+ [JsonProperty(PropertyName = "send_at")]
+ public long? SendAt { get; set; }
+ }
+} \ No newline at end of file
diff --git a/src/SendGrid/Helpers/Mail/SandboxMode.cs b/src/SendGrid/Helpers/Mail/Model/SandboxMode.cs
index 7dea93e..7dea93e 100644
--- a/src/SendGrid/Helpers/Mail/SandboxMode.cs
+++ b/src/SendGrid/Helpers/Mail/Model/SandboxMode.cs
diff --git a/src/SendGrid/Helpers/Mail/SpamCheck.cs b/src/SendGrid/Helpers/Mail/Model/SpamCheck.cs
index 8b1abf4..8b1abf4 100644
--- a/src/SendGrid/Helpers/Mail/SpamCheck.cs
+++ b/src/SendGrid/Helpers/Mail/Model/SpamCheck.cs
diff --git a/src/SendGrid/Helpers/Mail/SubscriptionTracking.cs b/src/SendGrid/Helpers/Mail/Model/SubscriptionTracking.cs
index ce5704e..ce5704e 100644
--- a/src/SendGrid/Helpers/Mail/SubscriptionTracking.cs
+++ b/src/SendGrid/Helpers/Mail/Model/SubscriptionTracking.cs
diff --git a/src/SendGrid/Helpers/Mail/TrackingSettings.cs b/src/SendGrid/Helpers/Mail/Model/TrackingSettings.cs
index 73f8056..73f8056 100644
--- a/src/SendGrid/Helpers/Mail/TrackingSettings.cs
+++ b/src/SendGrid/Helpers/Mail/Model/TrackingSettings.cs
diff --git a/src/SendGrid/Helpers/Mail/Personalization.cs b/src/SendGrid/Helpers/Mail/Personalization.cs
deleted file mode 100644
index a728c2c..0000000
--- a/src/SendGrid/Helpers/Mail/Personalization.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-using System.Collections.Generic;
-using Newtonsoft.Json;
-
-namespace SendGrid.Helpers.Mail
-{
- public class Personalization
- {
- [JsonProperty(PropertyName = "to")]
- public List<MailAddress> Tos { get; set; }
-
- [JsonProperty(PropertyName = "cc")]
- public List<MailAddress> Ccs { get; set; }
-
- [JsonProperty(PropertyName = "bcc")]
- public List<MailAddress> Bccs { get; set; }
-
- [JsonProperty(PropertyName = "subject")]
- public string Subject { get; set; }
-
- [JsonProperty(PropertyName = "headers")]
- public Dictionary<string, string> Headers { get; set; }
-
- [JsonProperty(PropertyName = "substitutions")]
- public Dictionary<string, string> Substitutions { get; set; }
-
- [JsonProperty(PropertyName = "custom_args")]
- public Dictionary<string, string> CustomArgs { get; set; }
-
- [JsonProperty(PropertyName = "send_at")]
- public long? SendAt { get; set; }
-
- public void AddTo(MailAddress email)
- {
- if (Tos == null)
- Tos = new List<MailAddress>();
-
- Tos.Add(email);
- }
-
- public void AddCc(MailAddress email)
- {
- if (Ccs == null)
- Ccs = new List<MailAddress>();
-
- Ccs.Add(email);
- }
-
- public void AddBcc(MailAddress email)
- {
- if (Bccs == null)
- Bccs = new List<MailAddress>();
-
- Bccs.Add(email);
- }
-
- public void AddHeader(string key, string value)
- {
- if (Headers == null)
- Headers = new Dictionary<string, string>();
-
- Headers.Add(key, value);
- }
-
- public void AddSubstitution(string key, string value)
- {
- if (Substitutions == null)
- Substitutions = new Dictionary<string, string>();
-
- Substitutions.Add(key, value);
- }
-
- public void AddCustomArgs(string key, string value)
- {
- if (CustomArgs == null)
- CustomArgs = new Dictionary<string, string>();
-
- CustomArgs.Add(key, value);
- }
- }
-} \ No newline at end of file
diff --git a/src/SendGrid/Helpers/Mail/SendGridMessage.cs b/src/SendGrid/Helpers/Mail/SendGridMessage.cs
index 97f7146..2bde42a 100644
--- a/src/SendGrid/Helpers/Mail/SendGridMessage.cs
+++ b/src/SendGrid/Helpers/Mail/SendGridMessage.cs
@@ -1,4 +1,5 @@
-using Newtonsoft.Json;
+using System;
+using Newtonsoft.Json;
using System.Collections.Generic;
namespace SendGrid.Helpers.Mail
@@ -8,24 +9,8 @@ namespace SendGrid.Helpers.Mail
/// </summary>
public class SendGridMessage
{
- public SendGridMessage()
- {
- }
-
- public SendGridMessage(MailAddress from, string subject, MailAddress to, Content content)
- {
- this.From = from;
-
- var personalization = new Personalization();
- personalization.AddTo(to);
- this.AddPersonalization(personalization);
-
- this.Subject = subject;
- this.AddContent(content);
- }
-
[JsonProperty(PropertyName = "from")]
- public MailAddress From { get; set; }
+ public EmailAddress From { get; set; }
[JsonProperty(PropertyName = "subject")]
public string Subject { get; set; }
@@ -73,72 +58,9 @@ namespace SendGrid.Helpers.Mail
public TrackingSettings TrackingSettings { get; set; }
[JsonProperty(PropertyName = "reply_to")]
- public MailAddress ReplyTo { get; set; }
-
- public void AddPersonalization(Personalization personalization)
- {
- if (Personalization == null)
- {
- Personalization = new List<Personalization>();
- }
- Personalization.Add(personalization);
- }
-
- public void AddContent(Content content)
- {
- if (Contents == null)
- {
- Contents = new List<Content>();
- }
- Contents.Add(content);
- }
-
- public void AddAttachment(Attachment attachment)
- {
- if (Attachments == null)
- {
- Attachments = new List<Attachment>();
- }
- Attachments.Add(attachment);
- }
-
- public void AddHeader(string key, string value)
- {
- if (Headers == null)
- {
- Headers = new Dictionary<string, string>();
- }
- Headers.Add(key, value);
- }
-
- public void AddSection(string key, string value)
- {
- if (Sections == null)
- {
- Sections = new Dictionary<string, string>();
- }
- Sections.Add(key, value);
- }
-
- public void AddCategory(string category)
- {
- if (Categories == null)
- {
- Categories = new List<string>();
- }
- Categories.Add(category);
- }
-
- public void AddCustomArgs(string key, string value)
- {
- if (CustomArgs == null)
- {
- CustomArgs = new Dictionary<string, string>();
- }
- CustomArgs.Add(key, value);
- }
+ public EmailAddress ReplyTo { get; set; }
- public string Get()
+ public string Serialize()
{
return JsonConvert.SerializeObject(this,
Formatting.None,