Пример #1
0
 /// <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));
 }
Пример #2
0
        /// <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> UpdateListAsync(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));
        }
 public ListsPostRequest(string name, Contact contact, string permissionReminder, CampaignDefaults campaignDefaults, bool emailTypeOption)
 {
     Name               = name;
     Contact            = contact;
     PermissionReminder = permissionReminder;
     CampaignDefaults   = campaignDefaults;
     EmailTypeOption    = emailTypeOption;
 }
Пример #4
0
        public string CreateEmailList(int campaignId, string name, Contact contact, CampaignDefaults mailChimpCampaignDefaults)
        {
            var list = new List();

            list.Name = name;
            list.PermissionReminder = "{PermissionReminder}";
            list.Contact            = contact;

            list.CampaignDefaults = mailChimpCampaignDefaults;

            // create list
            var listId = manager.Lists.AddOrUpdateAsync(list).Result.Id;

            return(listId);
        }
Пример #5
0
        /// <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));
        }
Пример #6
0
        public async Task <string> InsertList(WebsiteAddRequest model)
        {
            List ThisList = new List();

            string Id = model.ListId;

            if (Id == null)
            {
                ThisList.Name = model.Name;

                Contact Contact = new Contact();
                Contact.Company  = model.Name;
                Contact.Address1 = model.Street;
                Contact.City     = model.City;
                Contact.State    = model.State;
                Contact.Zip      = model.ZipCode.ToString();
                Contact.Country  = model.Country;

                ThisList.Contact            = Contact;
                ThisList.PermissionReminder = model.PermissionReminder;

                CampaignDefaults CampaignDefaults = new CampaignDefaults();
                CampaignDefaults.FromEmail = model.FromEmail;
                CampaignDefaults.FromName  = model.FromName;
                CampaignDefaults.Subject   = model.Subject;
                CampaignDefaults.Language  = "en/us";

                ThisList.CampaignDefaults = CampaignDefaults;
                ThisList.EmailTypeOption  = true;
            }
            else
            {
                ThisList.Name = model.Name;

                ThisList.Id = model.ListId;

                Contact Contact = new Contact();
                Contact.Company  = model.Name;
                Contact.Address1 = model.Street;
                Contact.City     = model.City;
                Contact.State    = model.State;
                Contact.Zip      = model.ZipCode.ToString();
                Contact.Country  = model.Country;

                ThisList.Contact = Contact;

                ThisList.PermissionReminder = model.PermissionReminder;

                CampaignDefaults CampaignDefaults = new CampaignDefaults();
                CampaignDefaults.FromEmail = model.FromEmail;
                CampaignDefaults.FromName  = model.FromName;
                CampaignDefaults.Subject   = model.Subject;
                CampaignDefaults.Language  = "en/us";

                ThisList.CampaignDefaults = CampaignDefaults;

                ThisList.EmailTypeOption = true;
            }
            var result = await Manager.Lists.AddOrUpdateAsync(ThisList);

            var ListId = result.Id;

            return(ListId); // return list id ---> pass into web service ---> insert to website table
        }
Пример #7
0
        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();
        }
Пример #8
0
        public IActionResult GetMessages()
        {
            var allMessages = CampaignDefaults.GetCampaigns();

            return(View(allMessages));
        }