/// <summary> /// Create a new list /// <param name="listName">The name of the list </param> /// <param name="contactForCampaignFotter">Contact information displayed in campaign footers to comply with international spam laws</param> /// <param name="permissionReminderText">The permission reminder for the list</param> /// <param name="defaultValue">Default values for campaigns created for this list</param> /// <param name="emailTypeOption">Whether the list supports multiple formats for emails.</param> /// <param name="listVisibility">Whether this list is public or private</param> /// </summary> internal async Task<dynamic> CreateListAsync(string listName, Contact contactForCampaignFotter, string permissionReminderText, CampaignDefaults defaultValue, bool emailTypeOption=false, ListVisibility listVisibility = ListVisibility.pub) { string endpoint = Authenticate.EndPoint(TargetTypes.lists, SubTargetType.not_applicable, SubTargetType.not_applicable); MCLists mcListObject = new MCLists() { name= listName.ToString(), contact = contactForCampaignFotter, permission_reminder = permissionReminderText.ToString(), campaign_defaults = defaultValue, email_type_option = emailTypeOption, visibility = listVisibility.ToString() }; return await BaseOperation.PostAsync<MCLists>(endpoint, mcListObject); }
/// <summary> /// Update a list /// <param name="list_id">Unique id for the list</param> /// <param name="listName">The name of the list </param> /// <param name="contactForCampaignFotter">Contact information displayed in campaign footers to comply with international spam laws</param> /// <param name="permissionReminderText">The permission reminder for the list</param> /// <param name="defaultValue">Default values for campaigns created for this list</param> /// <param name="emailTypeOption">Whether the list supports multiple formats for emails.</param> /// <param name="listVisibility">Whether this list is public or private</param> /// </summary> public async Task<dynamic> UpdateList(string list_id, string listName, Contact contactForCampaignFotter, string permissionReminderText, CampaignDefaults defaultValue, bool emailTypeOption = false, ListVisibility listVisibility = ListVisibility.pub) { return await listOverview.UpdateList(list_id, listName, contactForCampaignFotter, permissionReminderText, defaultValue, emailTypeOption, listVisibility); }
/// <summary> /// Update a list /// <param name="list_id">Unique id for the list</param> /// <param name="listName">The name of the list </param> /// <param name="contactForCampaignFotter">Contact information displayed in campaign footers to comply with international spam laws</param> /// <param name="permissionReminderText">The permission reminder for the list</param> /// <param name="defaultValue">Default values for campaigns created for this list</param> /// <param name="emailTypeOption">Whether the list supports multiple formats for emails.</param> /// <param name="listVisibility">Whether this list is public or private</param> /// </summary> internal async Task<dynamic> UpdateList(string list_id, string listName, Contact contactForCampaignFotter, string permissionReminderText, CampaignDefaults defaultValue, bool emailTypeOption=false, ListVisibility listVisibility = ListVisibility.pub) { if (list_id == null) throw (new Exception("List ID must not be null")); MCLists list = new MCLists { name = listName, contact = contactForCampaignFotter, permission_reminder = permissionReminderText, campaign_defaults = defaultValue, email_type_option = emailTypeOption, visibility = listVisibility.ToString(), id = list_id }; string endpoint = Authenticate.EndPoint(TargetTypes.lists, SubTargetType.not_applicable, SubTargetType.not_applicable, list_id, list_id); return await BaseOperation.PatchAsync<MCLists>(endpoint, list); }
static void Main(string[] args) { MailChimpReports reports = new MailChimpReports(); try { //var x = reports.getoverviewbycampaignasync("3709ea682b").result; //var x2 = reports.getoverviewbycampaignasync("e6e1eb2be8").result; //var x3 = reports.getadviceasync("e6e1eb2be8").result; //var x4 = reports.getclickdetailsasync("e6e1eb2be8").result; //var x5 = reports.getclickdetailbylinkidasync("e6e1eb2be8", "6defea2fac").result; //var x6 = reports.getalllsubscribersinfoasync("e6e1eb2be8", "6defea2fac").result; ////subscriber_hash= the md5 hash of the lowercase version of the list member’s email address //// var x7 =reports.getspecificsubscriberinfoasync("e6e1eb2be8", "e6e1eb2be8", string subscriber_hash); //var x8 = reports.getdomainperformanceasync("e6e1eb2be8").result; //var x9 = reports.geteepurlactivityasync("e6e1eb2be8").result; //var x10 = reports.getemailactivityasync("e6e1eb2be8").result; //// var x11 = reports.getemailactivitybysubscriberasync("e6e1eb2be8",); //var x12 = reports.gettoplocationasync("e6e1eb2be8").result; //var x13 = reports.getrecipientsinfoasync("e6e1eb2be8").result; //// var x14= reports.getspecificcampaignrecipientasync("e6e1eb2be8"); //var x15 = reports.getreportforchildcampaignasync("e6e1eb2be8").result; //var x16 = reports.getunsubscriberlistasync("e6e1eb2be8").result; // var x17 =getunsubscriberinfoasync("e6e1eb2be8", string subscriber_hash) //var k = reports.getoverviewasync().result; //var clickdetails = reports.getclickdetailsasync("3709ea682b").result; //var x = reports.getoverviewbycampaignasync("3709ea682b").result; //var performance = x.timeseries; //List<Timesery> listOfPerfmance = performance.ToList<Timesery>(); //var templates = new MailChimpTemplates(); //var z = reports.GetOverviewByCampaignAsync("3709ea682b").Result; // var f = templates.GetTemplatesAsync().Result; //var k = templates.DeleteATemplateAsync("18085").Result; //var kk = templates.GetSpecificTemplateAsync("18085").Result; #region CampaignCreation //MailChimpCampaigns campaign = new MailChimpCampaigns(); //MCCampaignsOverview overview = new MCCampaignsOverview(); //Recipients recipients = new Recipients() //{ // list_id = "0a84a63afc" //}; //Settings campaignSettings = new Settings() //{ // subject_line = "Schedule Mail Subject ", // title = "Schedule Mail!!! ", // from_name = "Shahriar Hossain", // reply_to = "*****@*****.**", // template_id = 18073, // authenticate = true, // auto_footer = false //}; //Tracking campaignTracking = new Tracking() //{ // opens = true, // html_clicks = true, // text_clicks = true //}; //ResultWrapper<Campaign> campaignCreationResult = overview.CreateCampaignAsync(Enum.CampaignType.regular, recipients, campaignSettings, campaignTracking).Result; //if (campaignCreationResult.HasError == false) //{ // ContentTemplate template = new ContentTemplate() // { // id = "18073" // }; // ContentSetting cSetting = new ContentSetting(); // string path = @"C:\Users\Wahid\Documents\Visual Studio 2012\Projects\MailChimp.Api.Net\MailChimp.Api.Net\EmailTemplates\raw_email_01.txt"; // FileParser parser = new FileParser(); // cSetting.html = parser.EmailParser(path); // MCCampaignContent campaignContent = new MCCampaignContent(); // var setContentStatus = campaignContent.SetCampaignContentAsync(campaignCreationResult.Result.id, cSetting).Result; // MCCampaignsCheckList mccheckList = new MCCampaignsCheckList(); // var checkListResult = mccheckList.GetCampaignContentAsync(campaignCreationResult.Result.id).Result; // if (checkListResult.is_ready) // { // var sendStatus = overview.SendCampaignAsync(campaignCreationResult.Result.id).Result; // } //} //else //{ // String.Format("Best of Luck :p !"); //} #endregion CampaignCreation #region Add single people to a List //MailChimpList lists = new MailChimpList(); //MCMember member = new MCMember() //{ // email_address = String.Format("*****@*****.**"), // email_type = "html", // language = "English", // status = SubscriberStatus.subscribed.ToString() //}; //var x = lists.AddMember(member, "0a84a63afc").Result; #endregion Add people to List #region Add multiple members in list with single call //RootBatch batchObj = new RootBatch(); //MCMember member = new MCMember(); //for (int i = 828; i < 833; i++) //{ // member.email_address = String.Format("Rifat{0}@test.com", i); // member.email_type = "html"; // member.language = "English"; // member.status = SubscriberStatus.subscribed.ToString(); // var settings = new JsonSerializerSettings // { // NullValueHandling = NullValueHandling.Ignore, // Converters = new List<JsonConverter> // { // new IsoDateTimeConverter() // { // DateTimeFormat= "yyyy-MM-dd HH:mm:ss" // } // } // }; // var myContentJson = JsonConvert.SerializeObject(member, settings); // SingleOperation singleOpt = new SingleOperation(); // singleOpt.method = "POST"; // singleOpt.path = String.Format("/{0}/{1}/{2}", TargetTypes.lists, "0a84a63afc", SubTargetType.members); // singleOpt.operation_id = String.Format("{0}", i); // singleOpt.body = myContentJson; // batchObj.operations.Add(singleOpt); //} //MailChimpBatch goBatch = new MailChimpBatch(); //var batchResult = goBatch.PostBatchOperationAsync(batchObj).Result; //Thread.Sleep(9000); #endregion Add multiple members in list with single call #region Get Batch Result for By ID //var batchId = batchResult.Result.id; //string newFileName = ""; //if (batchId != null) //{ // var result = goBatch.GetBatchReportById(batchId).Result; // Thread.Sleep(2000); // if (result.errored_operations > 0) // { // string detailsReportForIssueTrackingURL = result.response_body_url.ToString(); // newFileName = @"E:\" + batchId + ".tar.gz"; // FileDownloader.download(detailsReportForIssueTrackingURL, newFileName); // } // else // { // string detailSuccessReportURL = result.response_body_url.ToString(); // } //} #endregion Get Batch Result for By ID #region decompress tar.gz //string logDirectory = @"E:\MailChimpLog"; //string extractedFileName = ""; //if (!String.IsNullOrWhiteSpace(newFileName)) //{ // while (true) // { // if (File.Exists(newFileName)) // { // using (Stream stream = File.OpenRead(newFileName)) // { // var reader = ReaderFactory.Open(stream); // while (reader.MoveToNextEntry()) // { // if (!reader.Entry.IsDirectory) // { // extractedFileName = reader.Entry.Key; // extractedFileName = extractedFileName.Substring(2); // reader.WriteEntryToDirectory(logDirectory, ExtractOptions.ExtractFullPath | ExtractOptions.Overwrite); // } // } // } // string expectedFileName = String.Format("{0}.json", batchId); // System.IO.File.Move( // Path.Combine(logDirectory, extractedFileName), // Path.Combine(logDirectory, expectedFileName)); // break; // } // } //} #endregion decompress tar.gz #region CreateNewList MailChimpList myList = new MailChimpList(); Contact ct = new Contact() { city = "Dhaka", address1 = "This is address1", address2 = "This is address2", company = "desme", country = "Bangladesh", phone = "017777", state = "NA", zip = "96000" }; CampaignDefaults cd = new CampaignDefaults() { from_email = "*****@*****.**", from_name = "Shahriar", language = "English", subject = "This is a subject" }; Random r = new Random(); var listResult = myList.CreateListAsync("myTmpList#" + r.Next(0, 100), ct, "You gave me permission ", cd, false, ListVisibility.prv).Result; #region Create Merge Field Thread.Sleep(2000); MergeField mergeField = new MergeField { name = "Company", tag = "CNAME", type = MergeFieldType.text, default_value = "", list_id = listResult.Result.id }; var mergeFieldResult = myList.AddMergeField(mergeField, listResult.Result.id).Result; MergeField mergeFieldUpdate = new MergeField { name = "Company Name", tag = "CNAME", type = MergeFieldType.text, default_value = "", list_id = listResult.Result.id, merge_id = mergeFieldResult.Result.merge_id, display_order = 3, help_text = "Company Name", @public = true }; var mergeFieldUpdateResult = myList.UpdateMergeField(mergeFieldUpdate, listResult.Result.id); if (mergeFieldUpdateResult != null) { } MCMember member = new MCMember() { email_address = String.Format("*****@*****.**"), email_type = "html", language = "English", status = SubscriberStatus.subscribed.ToString(), merge_fields = new Dictionary<string, object> { {"FNAME", "first"}, {"LNAME", "last"}, {"CNAME", "company"} } }; var memberAddResult = myList.AddMember(member, listResult.Result.id).Result; if (!memberAddResult.HasError) { MCMember updateMember = new MCMember() { email_address = String.Format("*****@*****.**"), email_type = "html", language = "English", status = SubscriberStatus.subscribed.ToString(), id = memberAddResult.Result.id, merge_fields = new Dictionary<string, object> { {"FNAME", "FIRST"}, {"LNAME", "LAST"}, {"CNAME", "Company Name"} } }; var memberUpdateResult = myList.UpdateMember(updateMember, listResult.Result.id).Result; if (!memberUpdateResult.HasError) { } } #endregion #endregion CreateNewList #region CampaignScheduler //MailChimpCampaigns campaign = new MailChimpCampaigns(); //MCCampaignsOverview overview = new MCCampaignsOverview(); //Recipients recipients = new Recipients() //{ // list_id = "0a84a63afc" //}; //Settings campaignSettings = new Settings() //{ // subject_line = "Schedule Mail Subject ", // title = "Schedule Mail!!! ", // from_name = "Shahriar Hossain", // reply_to = "*****@*****.**", // template_id = 18073, // authenticate = true, // auto_footer = false //}; //Tracking campaignTracking = new Tracking() //{ // opens = true, // html_clicks = true, // text_clicks = true //}; //ResultWrapper<Campaign> campaignCreationResult = overview.CreateCampaignAsync(Enum.CampaignType.regular, recipients, campaignSettings, campaignTracking).Result; //if (campaignCreationResult.HasError == false) //{ // ContentTemplate template = new ContentTemplate() // { // id = "18073" // }; // ContentSetting cSetting = new ContentSetting(); // string path = @"C:\Users\Wahid\Documents\Visual Studio 2012\Projects\MailChimp.Api.Net\MailChimp.Api.Net\EmailTemplates\raw_email_01.txt"; // FileParser parser = new FileParser(); // cSetting.html = parser.EmailParser(path); // MCCampaignContent campaignContent = new MCCampaignContent(); // var setContentStatus = campaignContent.SetCampaignContentAsync(campaignCreationResult.Result.id, cSetting).Result; // MCCampaignsCheckList mccheckList = new MCCampaignsCheckList(); // var checkListResult = mccheckList.GetCampaignContentAsync(campaignCreationResult.Result.id).Result; // if (checkListResult.is_ready) // { // DateTime dt = new DateTime(2016, 01, 29, 10, 28, 00, DateTimeKind.Utc); // var schedule = campaign.ScheduleCampaignAsync(campaignCreationResult.Result.id, dt).Result; // } //} //else //{ // String.Format("Best of Luck :p !"); //} #endregion CampaignScheduler Console.Read(); } catch (Exception ex) { throw ex; } Console.Read(); }