public static Subscriber Map(SubscriberDetail subscriber) { var coreSubscriber = new Subscriber { Date = subscriber.Date, EmailAddress = subscriber.EmailAddress, Name = subscriber.Name, ReadsEmailWith = subscriber.ReadsEmailWith, State = subscriber.State }; foreach (var customField in subscriber.CustomFields) { if (coreSubscriber.CustomFields == null) { coreSubscriber.CustomFields = new List<CustomField>(); } coreSubscriber.CustomFields.Add(new CustomField { Key = customField.Key, Value = customField.Value }); } return coreSubscriber; }
public NegotiatedResult Modify(int accountId, int subscriberId, [FromBody] SubscriberDetail updated) { //TODO: add optimistic concurrency check var account = Database.GetAccountById(accountId); if (account == null) { return(AccountNotFoundError(accountId)); } var subscriber = account.Subscribers.FirstOrDefault(x => x.Id == subscriberId); if (subscriber == null) { return(SubscriberNotFoundError(accountId, subscriberId)); } subscriber.Birthday = updated.Birthday; subscriber.FirstName = updated.FirstName; subscriber.LastName = updated.LastName; return(NegotiatedResult(new Message("Subscriber modified!") { Links = new[] { Url.LinkHome(), Url.Link <SubscribersController>(x => x.Detail(account.Id, subscriber.Id)), Url.Link <SubscribersController>(x => x.Index(account.Id, null), Rel.Parent) } })); }
void BatchAdd() { Subscriber subscriber = new Subscriber(listID); List<SubscriberDetail> newSubscribers = new List<SubscriberDetail>(); SubscriberDetail subscriber1 = new SubscriberDetail("*****@*****.**", "Test Person 1", new List<SubscriberCustomField>()); subscriber1.CustomFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey", Value = "Value" }); subscriber1.CustomFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey2", Value = "Value2" }); newSubscribers.Add(subscriber1); SubscriberDetail subscriber2 = new SubscriberDetail("*****@*****.**", "Test Person 2", new List<SubscriberCustomField>()); subscriber2.CustomFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey", Value = "Value3" }); subscriber2.CustomFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey2", Value = "Value4" }); newSubscribers.Add(subscriber2); try { BulkImportResults results = subscriber.Import(newSubscribers, true); Console.WriteLine(results.TotalNewSubscribers + " subscribers added"); Console.WriteLine(results.TotalExistingSubscribers + " total subscribers in list"); } catch (CreatesendException ex) { ErrorResult<BulkImportResults> error = (ErrorResult<BulkImportResults>)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 Console.WriteLine(ex.ToString()); } }
void BatchAdd() { Subscriber subscriber = new Subscriber(auth, listID); List <SubscriberDetail> newSubscribers = new List <SubscriberDetail>(); SubscriberDetail subscriber1 = new SubscriberDetail("*****@*****.**", "Test Person 1", new List <SubscriberCustomField>()); subscriber1.CustomFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey", Value = "Value" }); subscriber1.CustomFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey2", Value = "Value2" }); newSubscribers.Add(subscriber1); SubscriberDetail subscriber2 = new SubscriberDetail("*****@*****.**", "Test Person 2", new List <SubscriberCustomField>()); subscriber2.CustomFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey", Value = "Value3" }); subscriber2.CustomFields.Add(new SubscriberCustomField() { Key = "CustomFieldKey2", Value = "Value4" }); newSubscribers.Add(subscriber2); try { BulkImportResults results = subscriber.Import(newSubscribers, true); Console.WriteLine(results.TotalNewSubscribers + " subscribers added"); Console.WriteLine(results.TotalExistingSubscribers + " total subscribers in list"); } catch (CreatesendException ex) { ErrorResult <BulkImportResults> error = (ErrorResult <BulkImportResults>)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 Console.WriteLine(ex.ToString()); } }