// ------------------------------------------------------------ // Name: UpdateConvertedProspects // Abstract: Retrieve subscribers from a list // ------------------------------------------------------------ public static Dictionary<string, string> UpdateConvertedProspects(Dictionary<string, string> dctSubscriberList, Dictionary<string, string> dctSubscriberKeys, List<string> alstrConvertedKey, List<string> alstrConvertedEmail, List<string> alstrConvertedSubscriberKey) { Dictionary<string, string> dctSubscribers = new Dictionary<string, string>(); try { string strSubscriberKey = ""; string strEmail = ""; string strCustomerNumber = ""; // Loop through each converted prospect foreach (KeyValuePair<string, string> entry in dctSubscriberList) { // Data DateTime dtmCreatedDate = DateTime.Now; // Get customer number and email strCustomerNumber = entry.Key; strEmail = entry.Value; // Get subscriber key based on that email strSubscriberKey = dctSubscriberKeys[strEmail]; // Get subscriber dates ET_Subscriber getSub = new ET_Subscriber(); getSub.AuthStub = m_etcTDClient; getSub.Props = new string[] { "SubscriberKey", "EmailAddress", "Status", "CreatedDate" }; getSub.SearchFilter = new SimpleFilterPart() { Property = "SubscriberKey", SimpleOperator = SimpleOperators.equals, Value = new string[] { strSubscriberKey } }; GetReturn getResponse = getSub.Get(); Console.WriteLine("Get Status: " + getResponse.Status.ToString()); Console.WriteLine("Message: " + getResponse.Message.ToString()); Console.WriteLine("Code: " + getResponse.Code.ToString()); Console.WriteLine("Results Length: " + getResponse.Results.Length); foreach (ET_Subscriber sub in getResponse.Results) { Console.WriteLine("--EmailAddress: " + sub.EmailAddress + " Status: " + sub.Status.ToString()); dtmCreatedDate = sub.CreatedDate; } // Create subscriber with same information but correct SubscriberKey Console.WriteLine("\n Create Subscriber"); ET_Subscriber postSub = new ET_Subscriber(); postSub.AuthStub = m_etcTDClient; postSub.EmailAddress = strEmail; postSub.SubscriberKey = strCustomerNumber; postSub.CreatedDate = dtmCreatedDate; PostReturn postResponse = postSub.Post(); Console.WriteLine("Post Status: " + postResponse.Status.ToString()); Console.WriteLine("Message: " + postResponse.Message.ToString()); Console.WriteLine("Code: " + postResponse.Code.ToString()); Console.WriteLine("Results Length: " + postResponse.Results.Length); // Add Subscriber to Newsletter and Reminders List // Newsletter ListID: 2726; Reminders ListID: 2727 FuelReturn hrAddSub = m_etcTDClient.AddSubscribersToList(strEmail, strCustomerNumber, new List<int>() { 2726 }); Console.WriteLine("Helper Status: " + hrAddSub.Status.ToString()); Console.WriteLine("Message: " + hrAddSub.Message.ToString()); Console.WriteLine("Code: " + hrAddSub.Code.ToString()); hrAddSub = m_etcTDClient.AddSubscribersToList(strEmail, strCustomerNumber, new List<int>() { 2727 }); Console.WriteLine("Helper Status: " + hrAddSub.Status.ToString()); Console.WriteLine("Message: " + hrAddSub.Message.ToString()); Console.WriteLine("Code: " + hrAddSub.Code.ToString()); // Delete old subscriber ET_Subscriber deleteSub = new ET_Subscriber(); deleteSub.AuthStub = m_etcTDClient; deleteSub.EmailAddress = strEmail; deleteSub.SubscriberKey = strSubscriberKey; DeleteReturn deleteResponse = deleteSub.Delete(); Console.WriteLine("Delete Status: " + deleteResponse.Status.ToString()); Console.WriteLine("Message: " + deleteResponse.Message.ToString()); Console.WriteLine("Code: " + deleteResponse.Code.ToString()); Console.WriteLine("Results Length: " + deleteResponse.Results.Length); // Add to array list alstrConvertedKey.Add(strCustomerNumber); alstrConvertedEmail.Add(strEmail); alstrConvertedSubscriberKey.Add(strSubscriberKey); } } catch (Exception excError) { // Display Error Console.WriteLine("Error: " + excError.ToString()); } return dctSubscribers; }
static void TestET_Subscriber() { ET_Client myclient = new ET_Client(); Console.WriteLine("--- Testing Subscriber ---"); string SubscriberTestEmail = "*****@*****.**"; Console.WriteLine("\n Create Subscriber"); ET_Subscriber postSub = new ET_Subscriber(); postSub.AuthStub = myclient; postSub.EmailAddress = SubscriberTestEmail; postSub.Attributes = new FuelSDK.ET_ProfileAttribute[] {new ET_ProfileAttribute(){ Name= "First Name", Value = "ExactTarget Example"} }; PostReturn postResponse = postSub.Post(); Console.WriteLine("Post Status: " + postResponse.Status.ToString()); Console.WriteLine("Message: " + postResponse.Message.ToString()); Console.WriteLine("Code: " + postResponse.Code.ToString()); Console.WriteLine("Results Length: " + postResponse.Results.Length); if (postResponse.Results.Length > 0) { Console.WriteLine("--NewID: " + postResponse.Results[0].NewID.ToString()); foreach (ET_ProfileAttribute attr in ((ET_Subscriber)postResponse.Results[0].Object).Attributes) { Console.WriteLine("Name: " + attr.Name + ", Value: " + attr.Value); } } Console.WriteLine("\n Retrieve newly created Subscriber"); ET_Subscriber getSub = new ET_Subscriber(); getSub.AuthStub = myclient; getSub.Props = new string[] { "SubscriberKey", "EmailAddress", "Status" }; getSub.SearchFilter = new SimpleFilterPart() { Property = "SubscriberKey", SimpleOperator = SimpleOperators.equals, Value = new string[] { SubscriberTestEmail } }; GetReturn getResponse = getSub.Get(); Console.WriteLine("Get Status: " + getResponse.Status.ToString()); Console.WriteLine("Message: " + getResponse.Message.ToString()); Console.WriteLine("Code: " + getResponse.Code.ToString()); Console.WriteLine("Results Length: " + getResponse.Results.Length); foreach (ET_Subscriber sub in getResponse.Results) { Console.WriteLine("--EmailAddress: " + sub.EmailAddress + " Status: " + sub.Status.ToString()); } Console.WriteLine("\n Update Subscriber"); ET_Subscriber patchSub = new ET_Subscriber(); patchSub.AuthStub = myclient; patchSub.EmailAddress = SubscriberTestEmail; patchSub.Status = SubscriberStatus.Unsubscribed; patchSub.Attributes = new FuelSDK.ET_ProfileAttribute[] { new ET_ProfileAttribute() { Name = "First Name", Value = "ExactTarget Example" } }; PatchReturn pathResponse = patchSub.Patch(); Console.WriteLine("Patch Status: " + pathResponse.Status.ToString()); Console.WriteLine("Message: " + pathResponse.Message.ToString()); Console.WriteLine("Code: " + pathResponse.Code.ToString()); Console.WriteLine("Results Length: " + pathResponse.Results.Length); foreach (ResultDetail rd in pathResponse.Results){ ET_Subscriber sub = (ET_Subscriber)rd.Object; Console.WriteLine("--EmailAddress: " + sub.EmailAddress + " Status: " + sub.Status.ToString()); } Console.WriteLine("\n Retrieve Subscriber that should have status unsubscribed now"); getResponse = getSub.Get(); Console.WriteLine("Get Status: " + getResponse.Status.ToString()); Console.WriteLine("Message: " + getResponse.Message.ToString()); Console.WriteLine("Code: " + getResponse.Code.ToString()); Console.WriteLine("Results Length: " + getResponse.Results.Length); foreach (ET_Subscriber sub in getResponse.Results) { Console.WriteLine("--EmailAddress: " + sub.EmailAddress + " Status: " + sub.Status.ToString()); } Console.WriteLine("\n Delete Subscriber"); ET_Subscriber deleteSub = new ET_Subscriber(); deleteSub.AuthStub = myclient; deleteSub.EmailAddress = SubscriberTestEmail; DeleteReturn deleteResponse = deleteSub.Delete(); Console.WriteLine("Delete Status: " + deleteResponse.Status.ToString()); Console.WriteLine("Message: " + deleteResponse.Message.ToString()); Console.WriteLine("Code: " + deleteResponse.Code.ToString()); Console.WriteLine("Results Length: " + deleteResponse.Results.Length); Console.WriteLine("\n Retrieve Subscriber to confirm deletion"); getResponse = getSub.Get(); Console.WriteLine("Get Status: " + getResponse.Status.ToString()); Console.WriteLine("Message: " + getResponse.Message.ToString()); Console.WriteLine("Code: " + getResponse.Code.ToString()); Console.WriteLine("Results Length: " + getResponse.Results.Length); foreach (ET_Subscriber sub in getResponse.Results) { Console.WriteLine("--EmailAddress: " + sub.EmailAddress + " Status: " + sub.Status.ToString()); } }
// ------------------------------------------------------------ // Name: Test_AddSubscriberToList // Abstract: Test -- Add subscriber to list // ------------------------------------------------------------ public static void Test_AddSubscriberToList() { string NewListName = "CSharpSDKAddSubscriberToList"; string SubscriberTestEmail = "*****@*****.**"; String strSubscriberKey = "TestTestTest"; Console.WriteLine("--- Testing AddSubscriberToList ---"); Console.WriteLine("\n Create List"); ET_List postList = new ET_List(); postList.AuthStub = m_etcTDClient; postList.ListName = NewListName; // Create the new list in ET PostReturn prList = postList.Post(); if (prList.Status && prList.Results.Length > 0) { // Get List ID int newListID = prList.Results[0].Object.ID; Console.WriteLine("\n Create Subscriber on List"); FuelReturn hrAddSub = m_etcTDClient.AddSubscribersToList(SubscriberTestEmail, strSubscriberKey, new List<int>() { newListID }); Console.WriteLine("Helper Status: " + hrAddSub.Status.ToString()); Console.WriteLine("Message: " + hrAddSub.Message.ToString()); Console.WriteLine("Code: " + hrAddSub.Code.ToString()); Console.WriteLine("\n Retrieve all Subscribers on the List"); ET_List_Subscriber getListSub = new ET_List_Subscriber(); getListSub.AuthStub = m_etcTDClient; getListSub.Props = new string[] { "ObjectID", "SubscriberKey", "CreatedDate", "Client.ID", "Client.PartnerClientKey", "ListID", "Status" }; getListSub.SearchFilter = new SimpleFilterPart() { Property = "ListID", SimpleOperator = SimpleOperators.equals, Value = new string[] { newListID.ToString() } }; GetReturn getResponse = getListSub.Get(); Console.WriteLine("Get Status: " + getResponse.Status.ToString()); Console.WriteLine("Message: " + getResponse.Message.ToString()); Console.WriteLine("Code: " + getResponse.Code.ToString()); Console.WriteLine("Results Length: " + getResponse.Results.Length); foreach (ET_List_Subscriber ResultListSub in getResponse.Results) { Console.WriteLine("--ListID: " + ResultListSub.ListID + ", SubscriberKey(EmailAddress): " + ResultListSub.SubscriberKey); } Console.WriteLine("\n Delete List"); postList.ID = newListID; // Deletes the list DeleteReturn drList = postList.Delete(); Console.WriteLine("Delete Status: " + drList.Status.ToString()); // Delete the subscriber ET_Subscriber deleteSubscriber = new ET_Subscriber(); deleteSubscriber.AuthStub = m_etcTDClient; deleteSubscriber.EmailAddress = SubscriberTestEmail; deleteSubscriber.SubscriberKey = strSubscriberKey; //Console.WriteLine("Subscriber's Customer Key: " + deleteSubscriber.CustomerKey.ToString() + "; Subscriber Key: " + deleteSubscriber.SubscriberKey); DeleteReturn deleteResponse = deleteSubscriber.Delete(); Console.WriteLine("Delete Status: " + deleteResponse.Status.ToString()); Console.WriteLine("Message: " + deleteResponse.Message.ToString()); Console.WriteLine("Code: " + deleteResponse.Code.ToString()); Console.WriteLine("Results Length: " + deleteResponse.Results.Length); } }