using System; using SendGrid.Helpers.Mail; // If you are using the Mail Helper using Newtonsoft.Json; // You can generate your JSON string yourelf or with another library if you prefer string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User); dynamic sg = new SendGrid.SendGridAPIClient(_apiKey); //////////////////////////////////////////////////////// // Retrieve Tracking Settings // GET /tracking_settings string queryParams = @"{ 'limit': 1, 'offset': 1 }"; dynamic response = await sg.client.tracking_settings.get(queryParams: queryParams); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Update Click Tracking Settings // PATCH /tracking_settings/click string data = @"{ 'enabled': true }"; Object json = JsonConvert.DeserializeObject(data); data = json.ToString(); dynamic response = await sg.client.tracking_settings.click.patch(requestBody: data); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Retrieve Click Track Settings // GET /tracking_settings/click dynamic response = await sg.client.tracking_settings.click.get(); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Update Google Analytics Settings // PATCH /tracking_settings/google_analytics string data = @"{ 'enabled': true, 'utm_campaign': 'website', 'utm_content': '', 'utm_medium': 'email', 'utm_source': 'sendgrid.com', 'utm_term': '' }"; Object json = JsonConvert.DeserializeObject(data); data = json.ToString(); dynamic response = await sg.client.tracking_settings.google_analytics.patch(requestBody: data); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Retrieve Google Analytics Settings // GET /tracking_settings/google_analytics dynamic response = await sg.client.tracking_settings.google_analytics.get(); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Update Open Tracking Settings // PATCH /tracking_settings/open string data = @"{ 'enabled': true }"; Object json = JsonConvert.DeserializeObject(data); data = json.ToString(); dynamic response = await sg.client.tracking_settings.open.patch(requestBody: data); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Get Open Tracking Settings // GET /tracking_settings/open dynamic response = await sg.client.tracking_settings.open.get(); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Update Subscription Tracking Settings // PATCH /tracking_settings/subscription string data = @"{ 'enabled': true, 'html_content': 'html content', 'landing': 'landing page html', 'plain_content': 'text content', 'replace': 'replacement tag', 'url': 'url' }"; Object json = JsonConvert.DeserializeObject(data); data = json.ToString(); dynamic response = await sg.client.tracking_settings.subscription.patch(requestBody: data); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine(); //////////////////////////////////////////////////////// // Retrieve Subscription Tracking Settings // GET /tracking_settings/subscription dynamic response = await sg.client.tracking_settings.subscription.get(); Console.WriteLine(response.StatusCode); Console.WriteLine(response.Body.ReadAsStringAsync().Result); Console.WriteLine(response.Headers.ToString()); Console.ReadLine();