/// <summary> /// http://apidocs.mailchimp.com/api/2.0/helper/chimp-chatter.php /// </summary> /// <returns></returns> public Task<MailChimpServiceResponse> ChimpChatterAsync(Email email, string listID = null) { var url = Urls.Helper + "/chimp-chatter.json"; var request = new { email = email, options = new { list_id = listID } }; return Execute(url, request); }
/// <summary> /// http://apidocs.mailchimp.com/api/2.0/helper/campaigns-for-email.php /// </summary> /// <returns></returns> public Task<MailChimpServiceResponse> CampaignsForEmailAsync(Email email, string listID = null) { var url = Urls.Helper + "/campaigns-for-email.json"; var request = new { email = email, options = new { list_id = listID } }; return Execute(url, request); }
private ServiceResponse SubscribeWithMergeVars(string email, dynamic mergeVars, bool enableDoubleOptIn) { ServiceResponse serviceResponse = new ServiceResponse(); var urlTemplate = String.Format("{0}{1}/subscribe.json/", MailChimpServiceConfiguration.Settings.ServiceUrl, MailChimpServiceConfiguration.Settings.ListsRelatedSection); var subscriber = new Subscriber(); subscriber.DoubleOptIn = enableDoubleOptIn; subscriber.ApiKey = _apiKey; subscriber.ListId = MailChimpServiceConfiguration.Settings.SubscriberListId; var emailObject = new Email { EmailValue = email }; subscriber.Email = emailObject; subscriber.UpdateExisting = true; if (mergeVars != null) { subscriber.MergeVars = mergeVars; } try { var responseData = PostHelpers.PostJson(urlTemplate, subscriber.ToString()); var deserializedData = JsonConvert.DeserializeObject<Email>(responseData); _log.DebugFormat("MailChimpService Call : {0}, response json : {1}", subscriber, deserializedData); serviceResponse.IsSuccesful = deserializedData.EmailValue != null && deserializedData.Euid != null && deserializedData.Leid != null; serviceResponse.ResponseJson = responseData; } catch (WebException exception) { using (Stream stream = exception.Response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); String responseString = reader.ReadToEnd(); serviceResponse.ResponseJson = responseString; _log.Error(responseString); } _log.Error(exception); serviceResponse.IsSuccesful = false; } return serviceResponse; }
/// <summary> /// http://apidocs.mailchimp.com/api/2.0/helper/lists-for-email.php /// </summary> /// <returns></returns> public Task<MailChimpServiceResponse> ListsForEmailAsync(Email email) { var url = Urls.Helper + "/lists-for-email.json"; var request = new { email = email }; return Execute(url, request); }
/// <summary> /// http://apidocs.mailchimp.com/api/2.0/lists/update-member.php /// </summary> /// <param name="email"></param> /// <returns></returns> public Task<MailChimpServiceResponse> UpdateMemberAsync(string id, Email email, Dictionary<string, List<string>> mergeVars, EmailType type, bool replaceInterests) { var url = Urls.List + "/update-member.json"; var request = new { id = id, email = email, merge_vars = mergeVars, email_type = type, replace_interests = replaceInterests }; return Execute(url, request); }
public MailChimpServiceResponse UpdateMember(string id, Email email, Dictionary<string, List<string>> mergeVars, EmailType type, bool replaceInterests) { return WaitForServiceResponse(UpdateMemberAsync(id, email, mergeVars, type, replaceInterests)); }
public Task<MailChimpServiceResponse<Email>> UnsubscribeAsync(Email email, string listID) { var url = Urls.List + "/unsubscribe.json"; var subscriber = new { id = listID, delete_member = false, email = email, send_goodbye = true, send_notify = true }; return Execute<Email>(url, subscriber).ContinueWith(t => { if (t.Result.IsSuccesful) t.Result.IsSuccesful = t.Result.Value.EmailValue != null && t.Result.Value.Euid != null && t.Result.Value.Leid != null; return t.Result; }); }
public MailChimpServiceResponse<Email> Unsubscribe(Email email, string listID) { return WaitForServiceResponse(UnsubscribeAsync(email, listID)); }
/// <summary> /// http://apidocs.mailchimp.com/api/2.0/reports/bounce-message.php /// </summary> /// <returns></returns> public Task<MailChimpServiceResponse> BounceMessageAsync(string campaignID, Email email) { var url = Urls.Report + "/bounce-message.json"; var request = new { cid = campaignID, email = email }; return Execute(url, request); }