/// <summary> /// Unsubscribe a user from communications /// </summary> /// <param name="survey"></param> //public void Unsubscribe(string email) //{ // // Create the contact if it doesn't exist // var contact = (from x in appCxt.Contacts // where x.Email == email // select x).FirstOrDefault(); // if (contact != null) // { // contact.IsSubscribed = false; // appCxt.Contacts.Update(contact); // appCxt.SaveChanges(); // } // else // { // throw new ArgumentException($"Unable to find user {email}"); // } //} public RestResponse SendConfirmationEmail(IO.Models.Contact newContact, string emailTemplatePath) { string text; using (var reader = new System.IO.StreamReader(emailTemplatePath, System.Text.Encoding.UTF8)) { text = reader.ReadToEnd(); } RestClient client = new RestClient(); client.BaseUrl = new Uri("https://api.mailgun.net/v3/"); client.Authenticator = new HttpBasicAuthenticator("api", apiKey); RestRequest request = new RestRequest(); request.AddParameter("domain", "drivenstudents.org", ParameterType.UrlSegment); request.Resource = "{domain}/messages"; request.AddParameter("from", FormatEmail(_fromName, _fromEmail)); request.AddParameter("to", FormatEmail(newContact)); request.AddParameter("subject", "Thanks for taking our survey"); request.AddParameter("html", text); request.Method = Method.POST; return((RestResponse)client.Execute(request)); }
/// <summary> /// Format the email in a way that mail gun can use /// </summary> /// <param name="newContact"></param> /// <returns></returns> private string FormatEmail(IO.Models.Contact newContact) { return(FormatEmail(newContact.FirstName + " " + newContact.LastName, newContact.Email)); }