Skip to content

Commit

Permalink
Added List method samples
Browse files Browse the repository at this point in the history
  • Loading branch information
Jason Hickey committed Nov 26, 2010
1 parent 40c6584 commit a27d6c3
Show file tree
Hide file tree
Showing 4 changed files with 138 additions and 34 deletions.
55 changes: 21 additions & 34 deletions ConsoleRunner/Program.cs
Expand Up @@ -14,50 +14,37 @@ class Program
//list in apicreated - 41a99346539316727de7f24491da29d6
static void Main(string[] args)
{
Subscriber subscriber = new Subscriber("aa76d29949e7f10ab28712617634fd0b");
List list = new List("aa76d29949e7f10ab28712617634fd0b");

List<SubscriberDetail> newSubscribers = new List<SubscriberDetail>();

SubscriberDetail subscriber1 = new SubscriberDetail("test1@notarealdomain.com", "Test Person 1", new List<SubscriberCustomField>());
subscriber1.CustomFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey", Value = "Value" });
subscriber1.CustomFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey2", Value = "Value2" });
try
{
List<SubscriberDetail> allSubscribers = new List<SubscriberDetail>();

newSubscribers.Add(subscriber1);
//get the first page, with an old date to signify entire list
PagedCollection<SubscriberDetail> firstPage = list.Active(new DateTime(1900, 1, 1), 1, 50, "Email", "ASC");

SubscriberDetail subscriber2 = new SubscriberDetail("test2@notarealdomain.com", "Test Person 2", new List<SubscriberCustomField>());
subscriber2.CustomFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey", Value = "Value3" });
subscriber2.CustomFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey2", Value = "Value4" });
allSubscribers.AddRange(firstPage.Results);

newSubscribers.Add(subscriber2);
if (firstPage.NumberOfPages > 1)
for (int pageNumber = 2; pageNumber <= firstPage.NumberOfPages; pageNumber++)
{
PagedCollection<SubscriberDetail> subsequentPage = list.Active(new DateTime(1900, 1, 1), pageNumber, 50, "Email", "ASC");
allSubscribers.AddRange(subsequentPage.Results);
}

try
{
BulkImportResults results = subscriber.Import(newSubscribers, true);
Console.WriteLine(results.TotalNewSubscribers + " subscribers added");
Console.WriteLine(results.TotalExistingSubscribers + " total subscribers in list");
//we can now do whatever with every subscriber
foreach (SubscriberDetail subscriberDetail in allSubscribers)
Console.WriteLine(subscriberDetail.EmailAddress);
}
catch (CreatesendException ex)
{
ErrorResult<BulkImportResults> error = (ErrorResult<BulkImportResults>)ex.Data["ErrorResult"];

ErrorResult error = (ErrorResult)ex.Data["ErrorResult"];
Console.WriteLine(error.Code);
Console.WriteLine(error.Message);

if (error.ResultData != null)
{
//handle the returned data
BulkImportResults results = error.ResultData;

//success details are here as normal
Console.WriteLine(results.TotalNewSubscribers + " subscribers were still added");

//but we also have additional failure detail
foreach (ImportResult result in results.FailureDetails)
{
Console.WriteLine("Failed Address");
Console.WriteLine(result.Message + " - " + result.EmailAddress);
}
}
}
catch (Exception ex)
{
//handle some other failure
}
}
}
Expand Down
91 changes: 91 additions & 0 deletions Samples/List.cs
@@ -0,0 +1,91 @@
using System;
using System.Collections.Generic;
using System.Text;
using createsend_dotnet;

namespace Samples
{
public class ListSamples
{
private string listID = "your_list_id";

void CreateCustomField()
{
List list = new List(listID);

try
{
string newCustomFieldKey = list.CreateCustomField("NewCustomField", CustomFieldDataType.Text, null);
Console.WriteLine(newCustomFieldKey);
}
catch (CreatesendException ex)
{
ErrorResult error = (ErrorResult)ex.Data["ErrorResult"];
Console.WriteLine(error.Code);
Console.WriteLine(error.Message);
}
catch (Exception ex)
{
//handle some other failure
}
}

void CreateMultiOptionCustomField()
{
List list = new List(listID);

try
{
List<string> options = new List<string>() { "Option 1", "Option 2", "Option 3" };
string newCustomFieldKey = list.CreateCustomField("NewCustomField", CustomFieldDataType.MultiSelectOne, options);
Console.WriteLine(newCustomFieldKey);
}
catch (CreatesendException ex)
{
ErrorResult error = (ErrorResult)ex.Data["ErrorResult"];
Console.WriteLine(error.Code);
Console.WriteLine(error.Message);
}
catch (Exception ex)
{
//handle some other failure
}
}

void GetActiveSubscribers()
{
List list = new List(listID);

try
{
List<SubscriberDetail> allSubscribers = new List<SubscriberDetail>();

//get the first page, with an old date to signify entire list
PagedCollection<SubscriberDetail> firstPage = list.Active(new DateTime(1900, 1, 1), 1, 50, "Email", "ASC");

allSubscribers.AddRange(firstPage.Results);

if(firstPage.NumberOfPages > 1)
for (int pageNumber = 2; pageNumber <= firstPage.NumberOfPages; pageNumber++)
{
PagedCollection<SubscriberDetail> subsequentPage = list.Active(new DateTime(1900, 1, 1), pageNumber, 50, "Email", "ASC");
allSubscribers.AddRange(subsequentPage.Results);
}

//we can now do whatever with every subscriber
foreach(SubscriberDetail subscriberDetail in allSubscribers)
Console.WriteLine(subscriberDetail.EmailAddress);
}
catch (CreatesendException ex)
{
ErrorResult error = (ErrorResult)ex.Data["ErrorResult"];
Console.WriteLine(error.Code);
Console.WriteLine(error.Message);
}
catch (Exception ex)
{
//handle some other failure
}
}
}
}
1 change: 1 addition & 0 deletions Samples/Samples.csproj
Expand Up @@ -36,6 +36,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="List.cs" />
<Compile Include="Subscriber.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
Expand Down
25 changes: 25 additions & 0 deletions Samples/Subscriber.cs
Expand Up @@ -31,6 +31,31 @@ void BasicAdd()
}
}

void AddWithCustomFields()
{
Subscriber subscriber = new Subscriber(listID);

try
{
List<SubscriberCustomField> customFields = new List<SubscriberCustomField>();
customFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey", Value = "Value" });
customFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey2", Value = "Value2" });

string newSubscriberID = subscriber.Add("test@notarealdomain.com", "Test Name", customFields, false);
Console.WriteLine(newSubscriberID);
}
catch (CreatesendException ex)
{
ErrorResult error = (ErrorResult)ex.Data["ErrorResult"];
Console.WriteLine(error.Code);
Console.WriteLine(error.Message);
}
catch (Exception ex)
{
//handle some other failure
}
}

void BatchAdd()
{
Subscriber subscriber = new Subscriber(listID);
Expand Down

0 comments on commit a27d6c3

Please sign in to comment.