summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--SendGrid/Example/Program.cs4
-rw-r--r--SendGrid/Example/WEBAPI.cs56
-rw-r--r--SendGrid/SendGridMail/SendGrid.cs55
-rw-r--r--SendGrid/SendGridMail/Transport/Web.cs13
-rw-r--r--SendGrid/Tests/TestSendgrid.cs2
-rw-r--r--SendGrid/Tests/Transport/TestWebApi.cs6
6 files changed, 53 insertions, 83 deletions
diff --git a/SendGrid/Example/Program.cs b/SendGrid/Example/Program.cs
index 7fb0960..275f6b9 100644
--- a/SendGrid/Example/Program.cs
+++ b/SendGrid/Example/Program.cs
@@ -11,7 +11,7 @@ namespace Example
private static void Main()
{
// Create the email object first, then add the properties.
- var myMessage = SendGrid.GetInstance();
+ var myMessage = new SendGrid();
myMessage.AddTo("anna@example.com");
myMessage.From = new MailAddress("john@example.com", "John Smith");
myMessage.Subject = "Testing the SendGrid Library";
@@ -21,7 +21,7 @@ namespace Example
var credentials = new NetworkCredential("username", "password");
// Create a Web transport for sending email.
- var transportWeb = Web.GetInstance(credentials);
+ var transportWeb = new Web(credentials);
// Send the email.
if (transportWeb != null)
diff --git a/SendGrid/Example/WEBAPI.cs b/SendGrid/Example/WEBAPI.cs
index 82c37cb..862a96a 100644
--- a/SendGrid/Example/WEBAPI.cs
+++ b/SendGrid/Example/WEBAPI.cs
@@ -27,7 +27,7 @@ namespace Example
public void SimpleHTMLEmail()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -45,7 +45,7 @@ namespace Example
message.Subject = "Hello World HTML Test";
//create an instance of the Web transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//send the mail
transportInstance.Deliver(message);
@@ -57,7 +57,7 @@ namespace Example
public void SimplePlaintextEmail()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -75,7 +75,7 @@ namespace Example
message.Subject = "Hello World Plain Text Test";
//create an instance of the Web transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//send the mail
transportInstance.Deliver(message);
@@ -89,7 +89,7 @@ namespace Example
public void EnableGravatarEmail()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -107,7 +107,7 @@ namespace Example
message.Subject = "Hello World Gravatar Test";
//create an instance of the Web transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//enable gravatar
message.EnableGravatar();
@@ -123,7 +123,7 @@ namespace Example
public void EnableOpenTrackingEmail()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -141,7 +141,7 @@ namespace Example
message.Subject = "Hello World Open Tracking Test";
//create an instance of the Web transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//enable gravatar
message.EnableOpenTracking();
@@ -158,7 +158,7 @@ namespace Example
public void EnableClickTrackingEmail()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -180,7 +180,7 @@ namespace Example
message.Subject = "Hello World Click Tracking Test";
//create an instance of the Web transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//enable clicktracking
message.EnableClickTracking();
@@ -197,7 +197,7 @@ namespace Example
public void EnableSpamCheckEmail()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -217,7 +217,7 @@ namespace Example
message.Subject = "WIN A MILLION DOLLARS TODAY! WORK FROM HOME! A NIGERIAN PRINCE WANTS YOU!";
//create an instance of the Web transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//enable spamcheck
message.EnableSpamCheck();
@@ -233,7 +233,7 @@ namespace Example
public void EnableUnsubscribeEmail()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -253,7 +253,7 @@ namespace Example
message.Subject = "Hello World Unsubscribe Test";
//create an instance of the Web transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//enable spamcheck
//or optionally, you can specify 'replace' instead of the text and html in order to
@@ -272,7 +272,7 @@ namespace Example
public void EnableFooterEmail()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -294,7 +294,7 @@ namespace Example
message.Subject = "Hello World Footer Test";
//create an instance of the Web transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//Enable Footer
message.EnableFooter("PLAIN TEXT FOOTER", "<p color='blue'>HTML FOOTER TEXT</p>");
@@ -310,7 +310,7 @@ namespace Example
public void EnableGoogleAnalytics()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -333,7 +333,7 @@ namespace Example
message.Subject = "Hello World Footer Test";
//create an instance of the Web transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//enable Google Analytics
message.EnableGoogleAnalytics("SendGridTest", "EMAIL", "Sendgrid", "ad-one", "My SG Campaign");
@@ -350,7 +350,7 @@ namespace Example
public void EnableTemplateEmail()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -372,7 +372,7 @@ namespace Example
message.Subject = "Hello World Template Test";
//create an instance of the Web transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//enable template
message.EnableTemplate("<p>My Email Template <% body %> is awesome!</p>");
@@ -389,7 +389,7 @@ namespace Example
public void EnableBypassListManagementEmail()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -411,7 +411,7 @@ namespace Example
message.Subject = "Hello World Bypass List Management Test";
//create an instance of the Web transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//enable bypass list management
message.EnableBypassListManagement();
@@ -428,7 +428,7 @@ namespace Example
public void AddSubstitutionValues()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -454,7 +454,7 @@ namespace Example
message.AddSubstitution(replacementKey, substitutionValues);
//create an instance of the SMTP transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//enable bypass list management
message.EnableBypassListManagement();
@@ -470,7 +470,7 @@ namespace Example
public void AddUniqueIdentifiers()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -494,7 +494,7 @@ namespace Example
message.AddUniqueArgs(identifiers);
//create an instance of the SMTP transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//enable bypass list management
message.EnableBypassListManagement();
@@ -510,7 +510,7 @@ namespace Example
public void SetCategory()
{
//create a new message object
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
//set the message recipients
foreach (var recipient in _to)
@@ -532,7 +532,7 @@ namespace Example
message.SetCategory(category);
//create an instance of the SMTP transport mechanism
- var transportInstance = Web.GetInstance(new NetworkCredential(_username, _password));
+ var transportInstance = new Web(new NetworkCredential(_username, _password));
//enable bypass list management
message.EnableBypassListManagement();
diff --git a/SendGrid/SendGridMail/SendGrid.cs b/SendGrid/SendGridMail/SendGrid.cs
index 54aaa96..3d2c6e2 100644
--- a/SendGrid/SendGridMail/SendGrid.cs
+++ b/SendGrid/SendGridMail/SendGrid.cs
@@ -23,8 +23,24 @@ namespace SendGridMail
#endregion
#region Initialization and Constructors
-
- internal SendGrid(MailAddress from, MailAddress[] to, MailAddress[] cc, MailAddress[] bcc,
+
+ /// <summary>
+ /// Creates an instance of SendGrid's custom message object
+ /// </summary>
+ /// <returns></returns>
+ public SendGrid() : this(new Header())
+ {
+
+ }
+
+ public SendGrid(IHeader header)
+ {
+ _message = new MailMessage();
+ Header = header;
+ Headers = new Dictionary<string, string>();
+ }
+
+ public SendGrid(MailAddress from, MailAddress[] to, MailAddress[] cc, MailAddress[] bcc,
String subject, String html, String text, IHeader header = null) : this(header)
{
From = from;
@@ -38,41 +54,6 @@ namespace SendGridMail
Html = html;
}
- internal SendGrid(IHeader header)
- {
- _message = new MailMessage();
- Header = header;
- Headers = new Dictionary<string, string>();
- }
-
- /// <summary>
- /// Creates an instance of SendGrid's custom message object
- /// </summary>
- /// <returns></returns>
- public static SendGrid GetInstance()
- {
- var header = new Header();
- return new SendGrid(header);
- }
-
- /// <summary>
- /// Creates an instance of SendGrid's custom message object with mail parameters
- /// </summary>
- /// <param name="from">The email address of the sender</param>
- /// <param name="to">An array of the recipients</param>
- /// <param name="cc">Supported over SMTP, with future plans for support in the Web transport</param>
- /// <param name="bcc">Blind recipients</param>
- /// <param name="subject">The subject of the message</param>
- /// <param name="html">the html content for the message</param>
- /// <param name="text">the plain text part of the message</param>
- /// <returns></returns>
- public static SendGrid GetInstance(MailAddress from, MailAddress[] to, MailAddress[] cc, MailAddress[] bcc,
- String subject, String html, String text)
- {
- var header = new Header();
- return new SendGrid(from, to, cc, bcc, subject, html, text, header);
- }
-
private static Dictionary<string, string> InitializeFilters()
{
return
diff --git a/SendGrid/SendGridMail/Transport/Web.cs b/SendGrid/SendGridMail/Transport/Web.cs
index a26e9e0..7bb8e58 100644
--- a/SendGrid/SendGridMail/Transport/Web.cs
+++ b/SendGrid/SendGridMail/Transport/Web.cs
@@ -29,7 +29,7 @@ namespace SendGridMail
/// </summary>
/// <param name="credentials">SendGrid user parameters</param>
/// <param name="https">Use https?</param>
- internal Web(NetworkCredential credentials)
+ public Web(NetworkCredential credentials)
{
_credentials = credentials;
}
@@ -53,17 +53,6 @@ namespace SendGridMail
}
/// <summary>
- /// Factory method for Web transport of sendgrid messages
- /// </summary>
- /// <param name="credentials">SendGrid credentials for sending mail messages</param>
- /// <param name="https">Use https?</param>
- /// <returns>New instance of the transport mechanism</returns>
- public static Web GetInstance(NetworkCredential credentials)
- {
- return new Web(credentials);
- }
-
- /// <summary>
/// Asynchronously delivers a message over SendGrid's Web interface
/// </summary>
/// <param name="message"></param>
diff --git a/SendGrid/Tests/TestSendgrid.cs b/SendGrid/Tests/TestSendgrid.cs
index 2ab61f7..29b3c7f 100644
--- a/SendGrid/Tests/TestSendgrid.cs
+++ b/SendGrid/Tests/TestSendgrid.cs
@@ -14,7 +14,7 @@ namespace Tests
[Test]
public void CreateMimeMessage()
{
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
var attachment = Path.GetTempFileName();
var text = "this is a test";
var html = "<b>This<\b> is a better test";
diff --git a/SendGrid/Tests/Transport/TestWebApi.cs b/SendGrid/Tests/Transport/TestWebApi.cs
index 49e0e94..71df619 100644
--- a/SendGrid/Tests/Transport/TestWebApi.cs
+++ b/SendGrid/Tests/Transport/TestWebApi.cs
@@ -18,7 +18,7 @@ namespace Tests.Transport
[Test]
public void TestFetchFileBodies()
{
- var webApi = Web.GetInstance(new NetworkCredential(TestUsername, TestPassword));
+ var webApi = new Web(new NetworkCredential(TestUsername, TestPassword));
var message = new Mock<ISendGrid>();
var attachments = new[] {"foo", "bar", "foobar"};
message.SetupProperty(foo => foo.Attachments, null);
@@ -47,7 +47,7 @@ namespace Tests.Transport
var testHeader = new Dictionary<string, string> { { headerKey, "headervalue" } };
const string categoryName = "Example Category";
- var message = SendGrid.GetInstance();
+ var message = new SendGrid();
message.AddTo(toAddress);
message.AddCc(ccAddress);
message.AddBcc(bccAddress);
@@ -58,7 +58,7 @@ namespace Tests.Transport
message.AddHeaders(testHeader);
message.Header.SetCategory(categoryName);
- var webApi = Web.GetInstance(new NetworkCredential(TestUsername, TestPassword));
+ var webApi = new Web(new NetworkCredential(TestUsername, TestPassword));
var result = webApi.FetchFormParams(message);
Assert.True(result.Any(r => r.Key == "api_user" && r.Value == TestUsername));
Assert.True(result.Any(r => r.Key == "api_key" && r.Value == TestPassword));