private void frmEmailCampaign_Load(object sender, EventArgs e) { try { string state = "ok"; _accessToken = OAuth.AuthenticateFromWinProgram(ref state); if (string.IsNullOrEmpty(_accessToken)) { Application.Exit(); } //initialize ConstantContact members IUserServiceContext userServiceContext = new UserServiceContext(_accessToken, _apiKey); ConstantContactFactory _constantContactFactory = new ConstantContactFactory(userServiceContext); _emailCampaignService = _constantContactFactory.CreateEmailCampaignService(); _emailCampaginScheduleService = _constantContactFactory.CreateCampaignScheduleService(); _listService = _constantContactFactory.CreateListService(); _accountService = _constantContactFactory.CreateAccountService(); } catch (OAuth2Exception oauthEx) { MessageBox.Show(string.Format("Authentication failure: {0}", oauthEx.Message), "Warning"); } PopulateCampaignTypeList(); PopulateListOfCountries(); PopulateUSAndCanadaListOfStates(); GetListOfContacts(); PopulateEmailLists(); }
public void LiveCampaignTrackingGetForwardsTest() { var cc = new ConstantContactFactory(userServiceContext); var emailCampaignService = cc.CreateEmailCampaignService(); var campaignScheduleService = cc.CreateCampaignScheduleService(); var campaignTrackingService = cc.CreateCampaignTrackingService(); var camp = new EmailCampaign { EmailContent = "<html><body>EMAIL CONTENT.</body></html>", Subject = "campaign subject", FromName = "my company", FromEmail = CustomerEmail, ReplyToEmail = CustomerEmail, Name = "campaign_" + DateTime.Now.ToString("yyMMddHHmmss"), TextContent = "email campaign text content", GreetingString = "Dear ", Status = CampaignStatus.DRAFT, EmailContentFormat = CampaignEmailFormat.HTML, StyleSheet = "", MessageFooter = new MessageFooter { OrganizationName = "my organization", AddressLine1 = "123 Mapple Street", AddressLine2 = "Suite 1", AddressLine3 = "", City = "Boston", State = "MA", PostalCode = "02101", Country = "US", IncludeForwardEmail = true, ForwardEmailLinkText = "forward link", IncludeSubscribeLink = true, SubscribeLinkText = "subscribe link" } , Lists = new List<SentContactList> { new SentContactList { Id = "1" } } }; camp = emailCampaignService.AddCampaign(camp); Assert.IsNotNull(camp); Assert.IsNotNull(camp.Id); DateTime schDate = DateTime.Now; Schedule schedule = campaignScheduleService.AddSchedule(camp.Id, new Schedule { ScheduledDate = schDate }); Assert.IsNotNull(schedule); Assert.AreNotEqual("", schedule.Id); Assert.IsNotNull(schedule.ScheduledDate); ResultSet<ForwardActivity> result = campaignTrackingService.GetForwards(camp.Id, null, DateTime.Now.AddMonths(-1)); Assert.IsNotNull(result); }
public void LiveCampaignTrackingGetSummaryTest() { var cc = new ConstantContactFactory(userServiceContext); var emailCampaignService = cc.CreateEmailCampaignService(); var campaignTrackingService = cc.CreateCampaignTrackingService(); var camp = new EmailCampaign { EmailContent = "<html><body>EMAIL CONTENT.</body></html>", Subject = "campaign subject", FromName = "my company", FromEmail = CustomerEmail, ReplyToEmail = CustomerEmail, Name = "campaign_" + DateTime.Now.ToString("yyMMddHHmmss"), TextContent = "email campaign text content", GreetingString = "Dear ", //TemplateType = TemplateType.CUSTOM, Status = CampaignStatus.DRAFT, EmailContentFormat = CampaignEmailFormat.HTML, StyleSheet = "", MessageFooter = new MessageFooter { OrganizationName = "my organization", AddressLine1 = "123 Mapple Street", AddressLine2 = "Suite 1", AddressLine3 = "", City = "Boston", State = "MA", PostalCode = "02101", Country = "US", IncludeForwardEmail = true, ForwardEmailLinkText = "forward link", IncludeSubscribeLink = true, SubscribeLinkText = "subscribe link" } , Lists = new List<SentContactList> { new SentContactList { Id = "1" } } }; camp = emailCampaignService.AddCampaign(camp); Assert.IsNotNull(camp); Assert.IsNotNull(camp.Id); TrackingSummary summary = campaignTrackingService.GetSummary(camp.Id); Assert.IsNotNull(summary); }
public void LiveContactTrackingSummaryTest() { var cc = new ConstantContactFactory(userServiceContext); var contactService = cc.CreateContactService(); var contactTrackingService = cc.CreateContactTrackingService(); var emailCampaignService = cc.CreateEmailCampaignService(); ResultSet<Contact> contacts = contactService.GetContacts(DateTime.Now.AddMonths(-1)); Assert.IsNotNull(contacts); Assert.IsNotNull(contacts.Results); Assert.IsTrue(contacts.Results.Count > 0); TrackingSummary summary = contactTrackingService.GetSummary(contacts.Results[0].Id); Assert.IsNotNull(summary); //Assert.AreNotEqual(0, summary.Forwards); //Assert.AreNotEqual(0, summary.Opens); //Assert.AreNotEqual(0, summary.Sends); //ResultSet<EmailCampaign> camps = emailCampaignService.GetCampaigns(DateTime.Now.AddMonths(-1)); //summary = contactTrackingService.GetSummary(camps.Results[1].Id); //Assert.AreNotEqual(0, summary.Forwards); //Assert.AreNotEqual(0, summary.Opens); //Assert.AreNotEqual(0, summary.Sends); //Assert.AreNotEqual(0, summary.Bounces); }
public void LiveEmailCampaignTestSendTest() { var cc = new ConstantContactFactory(userServiceContext); var emailCampaignService = cc.CreateEmailCampaignService(); var campaignScheduleService = cc.CreateCampaignScheduleService(); var camp = new EmailCampaign { EmailContent = "<html><body>EMAIL CONTENT.</body></html>", Subject = "campaign subject", FromName = "my company", FromEmail = CustomerEmail, ReplyToEmail = CustomerEmail, Name = "campaign_" + DateTime.Now.ToString("yyMMddHHmmss"), TextContent = "email campaign text content", GreetingString = "Dear ", //TemplateType = TemplateType.CUSTOM, Status = CampaignStatus.DRAFT, EmailContentFormat = CampaignEmailFormat.HTML, StyleSheet = "", MessageFooter = new MessageFooter { OrganizationName = "my organization", AddressLine1 = "123 Mapple Street", AddressLine2 = "Suite 1", AddressLine3 = "", City = "Boston", State = "MA", PostalCode = "02101", Country = "US", IncludeForwardEmail = true, ForwardEmailLinkText = "forward link", IncludeSubscribeLink = true, SubscribeLinkText = "subscribe link" } , Lists = new List<SentContactList> { new SentContactList { Id = "1" } } }; camp = emailCampaignService.AddCampaign(camp); Assert.IsNotNull(camp); Assert.IsNotNull(camp.Id); var test = new TestSend { Format = EmailFormat.HTML_AND_TEXT.ToString(), PersonalMessage = "This is a test send of the email campaign message.", EmailAddresses = new List<string> { CustomerEmail } }; var testSend = campaignScheduleService.SendTest(camp.Id, test); Assert.IsNotNull(testSend); Assert.AreEqual(test.Format, testSend.Format); }
public void SendCampaign() { if (ValidateFields()) { var confirmResult = MessageBox.Show(CommonConstants.MandatoryFields.Alert, CommonConstants.MandatoryFields.SendCampaign, MessageBoxButtons.YesNo); if (confirmResult == DialogResult.Yes) { string campaignId = cmbCampaign.SelectedValue.ToString(); // Loading panel Cursor.Current = Cursors.WaitCursor; try { ApiKey = ConstantContactAPI; AccessToken = ConstantContactToken; IUserServiceContext userServiceContext = new UserServiceContext(AccessToken, ApiKey); var cc = new ConstantContactFactory(userServiceContext); List<SentContactList> SentContactListObj = new List<SentContactList>(); Contact contact = new Contact(); List<Contact> contactList = new List<Contact>(); var emailCampignService = cc.CreateEmailCampaignService(); var result = emailCampignService.GetCampaign(campaignId); int count = 0; foreach (var item in result.Lists) { SentContactList contactObj = new SentContactList(); contactObj.Id = item.Id; SentContactListObj.Add(contactObj); } foreach (var item in SentContactListObj) { try { var getContactDetails = cc.CreateListService(); var contactDetails = getContactDetails.GetContactsFromList(item.Id,null); foreach (var j in contactDetails.Results) { string message = getMessageDetails(txtMessage.Text.Trim(), j); string phone = getPhoneDetails(cmbFieldPhone.Text.Trim(), j); if (!string.IsNullOrEmpty(phone)) { // Send SMS string smsResult = SmsSender.SendSMS(phone, NexmoFromNumber, NexmoAPI, NexmoSecretKey, HttpUtility.UrlEncode(message)); count++; } } } catch (Exception ex) { // Logger.Write(ex); continue; } } if(count>0) { MessageBox.Show(CommonConstants.MandatoryFields.Success); } else { MessageBox.Show(CommonConstants.MandatoryFields.MSGNOTSEND); } this.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Cursor.Current = Cursors.Default; } } } }
/// <summary> /// Bind Campaign in dropdown /// </summary> public void LoadCampaign() { try { ApiKey = ConstantContactAPI; AccessToken = ConstantContactToken; IUserServiceContext userServiceContext = new UserServiceContext(AccessToken, ApiKey); var cc = new ConstantContactFactory(userServiceContext); var emailCampignService = cc.CreateEmailCampaignService(); ResultSet<EmailCampaign> listsAll = emailCampignService.GetCampaigns(null, null, null); ResultSet<EmailCampaign> filteredList = new ResultSet<EmailCampaign>() ; List<ConstantContactList> mailChimpList = new List<ConstantContactList>(); if (listsAll != null && listsAll.Results.Count > 0) { filteredList.Results = listsAll.Results.Where(p => p.Status.Equals(CampaignStatus.DRAFT)).ToList(); if (!chkDraft.Checked) { var newList = filteredList.Results.ToList(); newList.RemoveAll(p => p.Status == CampaignStatus.DRAFT); filteredList.Results = newList; } else { filteredList.Results = listsAll.Results.Where(p => p.Status == CampaignStatus.DRAFT).ToList(); } if (!chkSchedule.Checked) { filteredList.Results.ToList().RemoveAll(p => p.Status == CampaignStatus.SCHEDULED); } else { var newList = filteredList.Results.ToList(); newList.RemoveAll(p => p.Status == CampaignStatus.SCHEDULED); filteredList.Results = newList; filteredList.Results = filteredList.Results.Concat(listsAll.Results.Where(p => p.Status == CampaignStatus.SCHEDULED)).ToList(); } if (!chkSent.Checked) { var newList = filteredList.Results.ToList(); newList.RemoveAll(p => p.Status == CampaignStatus.SENT); filteredList.Results = newList; } else { if (filteredList.Results != null) { var newList = filteredList.Results.ToList(); newList.RemoveAll(p => p.Status == CampaignStatus.SENT); filteredList.Results = newList; filteredList.Results = filteredList.Results.Concat(listsAll.Results.Where(p => p.Status == CampaignStatus.SENT)).ToList(); } } cmbCampaign.DataSource = null; cmbCampaign.Items.Clear(); mailChimpList.Add(new ConstantContactList("0", CommonConstants.MandatoryFields.SelectCampaign)); foreach (var list in filteredList.Results.OrderBy(p=>p.Name)) { mailChimpList.Add(new ConstantContactList(list.Id.ToString(), list.Name+" "+'(' + list.Status + ')')); } cmbCampaign.DisplayMember = "Name"; cmbCampaign.ValueMember = "Id"; cmbCampaign.DataSource = mailChimpList; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }