summaryrefslogtreecommitdiffstats
path: root/src/Example/Program.cs
diff options
context:
space:
mode:
authorElmer Thomas <elmer@thinkingserious.com>2016-12-06 03:00:28 -0800
committerElmer Thomas <elmer@thinkingserious.com>2016-12-06 03:00:28 -0800
commit4ce5b88f6047af9d9d4bc45a38c9dfb65a9e7e07 (patch)
tree60f9d17f011f632f5c4d9b86aa75fab0e7a60e41 /src/Example/Program.cs
parent3131327a73273df4485a26de5ad4ec645918f8b3 (diff)
downloadsendgrid-csharp-4ce5b88f6047af9d9d4bc45a38c9dfb65a9e7e07.zip
sendgrid-csharp-4ce5b88f6047af9d9d4bc45a38c9dfb65a9e7e07.tar.gz
sendgrid-csharp-4ce5b88f6047af9d9d4bc45a38c9dfb65a9e7e07.tar.bz2
.NET 4.5.X, 4.6.X and CORE Support
Diffstat (limited to 'src/Example/Program.cs')
-rw-r--r--src/Example/Program.cs131
1 files changed, 131 insertions, 0 deletions
diff --git a/src/Example/Program.cs b/src/Example/Program.cs
new file mode 100644
index 0000000..572ce7a
--- /dev/null
+++ b/src/Example/Program.cs
@@ -0,0 +1,131 @@
+using System;
+using System.Threading.Tasks;
+using Newtonsoft.Json;
+using SendGrid;
+using SendGrid.Helpers.Mail;
+using System.Collections.Generic;
+
+namespace Example
+{
+ internal class Example
+ {
+ private static void Main()
+ {
+ Execute().Wait();
+ }
+
+ static async Task Execute()
+ {
+ string apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY");
+ Client client = new Client(apiKey);
+
+ string data = @"{
+ 'personalizations': [
+ {
+ 'to': [
+ {
+ 'email': 'elmer@sendgrid.com'
+ }
+ ],
+ 'subject': 'Hello World from the SendGrid C# Library!'
+ }
+ ],
+ 'from': {
+ 'email': 'dx@sendgrid.com'
+ },
+ 'content': [
+ {
+ 'type': 'text/plain',
+ 'value': 'Hello, Email!'
+ }
+ ]
+ }";
+ Object json = JsonConvert.DeserializeObject<Object>(data);
+ Response response = await client.RequestAsync(Client.Methods.POST,
+ json.ToString(),
+ urlPath: "mail/send");
+ Console.WriteLine(response.StatusCode);
+ Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+ Console.WriteLine(response.Headers);
+ Console.ReadLine();
+
+ Email from = new Email("dx@sendgrid");
+ string subject = "Hello World from the SendGrid CSharp Library Helper!";
+ Email to = new Email("elmer@sendgrid.com");
+ Content content = new Content("text/plain", "Hello, Email from the helper!");
+ Mail mail = new Mail(from, subject, to, content);
+
+ response = await client.RequestAsync(Client.Methods.POST,
+ mail.Get(),
+ urlPath: "mail/send");
+ Console.WriteLine(response.StatusCode);
+ Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+ Console.WriteLine(response.Headers);
+ Console.ReadLine();
+
+ // GET Collection
+ string queryParams = @"{
+ 'limit': 100
+ }";
+ response = await client.RequestAsync(method: Client.Methods.GET,
+ urlPath: "asm/groups",
+ queryParams: queryParams);
+ Console.WriteLine(response.StatusCode);
+ Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+ Console.WriteLine(response.Headers.ToString());
+ Console.WriteLine("\n\nPress any key to continue to POST.");
+ Console.ReadLine();
+
+ // POST
+ string requestBody = @"{
+ 'description': 'Suggestions for products our users might like.',
+ 'is_default': false,
+ 'name': 'Magic Products'
+ }";
+ json = JsonConvert.DeserializeObject<object>(requestBody);
+ response = await client.RequestAsync(method: Client.Methods.POST,
+ urlPath: "asm/groups",
+ requestBody: json.ToString());
+ var ds_response = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(response.Body.ReadAsStringAsync().Result);
+ string group_id = ds_response["id"].ToString();
+ Console.WriteLine(response.StatusCode);
+ Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+ Console.WriteLine(response.Headers.ToString());
+ Console.WriteLine("\n\nPress any key to continue to GET single.");
+ Console.ReadLine();
+
+ // GET Single
+ response = await client.RequestAsync(method: Client.Methods.GET,
+ urlPath: string.Format("asm/groups/{0}", group_id));
+ Console.WriteLine(response.StatusCode);
+ Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+ Console.WriteLine(response.Headers.ToString());
+ Console.WriteLine("\n\nPress any key to continue to PATCH.");
+ Console.ReadLine();
+
+ // PATCH
+ requestBody = @"{
+ 'name': 'Cool Magic Products'
+ }";
+ json = JsonConvert.DeserializeObject<object>(requestBody);
+
+ response = await client.RequestAsync(method: Client.Methods.PATCH,
+ urlPath: string.Format("asm/groups/{0}", group_id),
+ requestBody: json.ToString());
+ Console.WriteLine(response.StatusCode);
+ Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+ Console.WriteLine(response.Headers.ToString());
+
+ Console.WriteLine("\n\nPress any key to continue to PUT.");
+ Console.ReadLine();
+
+ // DELETE
+ response = await client.RequestAsync(method: Client.Methods.DELETE,
+ urlPath: string.Format("asm/groups/{0}", group_id));
+ Console.WriteLine(response.StatusCode);
+ Console.WriteLine(response.Headers.ToString());
+ Console.WriteLine("\n\nPress any key to exit.");
+ Console.ReadLine();
+ }
+ }
+}