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 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 Console.WriteLine(ex.ToString()); } }
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()); } }
public BulkImportResults Import(List<SubscriberDetail> subscribers, bool resubscribe) { List<object> reworkedSusbcribers = new List<object>(); string json = ""; foreach (SubscriberDetail subscriber in subscribers) { Dictionary<string, object> subscriberWithoutDate = new Dictionary<string, object>() { { "EmailAddress", subscriber.EmailAddress }, { "Name", subscriber.Name }, { "CustomFields", subscriber.CustomFields } }; reworkedSusbcribers.Add(subscriberWithoutDate); } try { json = HttpHelper.Post(string.Format("/subscribers/{0}/import.json", ListID), null, JavaScriptConvert.SerializeObject( new Dictionary<string, object>() { { "Subscribers", reworkedSusbcribers }, { "Resubscribe", resubscribe } } )); } catch (CreatesendException ex) { if (!ex.Data.Contains("ErrorResult") && ex.Data.Contains("ErrorResponse")) { ErrorResult<BulkImportResults> result = JavaScriptConvert.DeserializeObject<ErrorResult<BulkImportResults>>(ex.Data["ErrorResponse"].ToString()); ex.Data.Add("ErrorResult", result); } else if(ex.Data.Contains("ErrorResult")) { ErrorResult<BulkImportResults> result = new ErrorResult<BulkImportResults>((ErrorResult)ex.Data["ErrorResult"]); ex.Data["ErrorResult"] = result; } throw ex; } return JavaScriptConvert.DeserializeObject<BulkImportResults>(json); }
public static List<Subscriber> MapList(List<SubscriberDetail> subscribers) { var coreSubscriber = new List<Subscriber>(); foreach (var subscriber in subscribers) { coreSubscriber.Add(Map(subscriber)); } return coreSubscriber; }
private static string[] GetPairs(NameValueCollection nvc) { List<string> keyValuePair = new List<string>(); foreach (string key in nvc.AllKeys) { string encodedKey = HttpUtility.UrlEncode(key) + "="; foreach (string value in nvc.GetValues(key)) keyValuePair.Add(encodedKey + HttpUtility.UrlEncode(value)); } return keyValuePair.ToArray(); }
public BulkImportResults Import(List<SubscriberDetail> subscribers, bool resubscribe) { List<object> reworkedSusbcribers = new List<object>(); foreach (SubscriberDetail subscriber in subscribers) { Dictionary<string, object> subscriberWithoutDate = new Dictionary<string, object>() { { "EmailAddress", subscriber.EmailAddress }, { "Name", subscriber.Name }, { "CustomFields", subscriber.CustomFields } }; reworkedSusbcribers.Add(subscriberWithoutDate); } return HttpHelper.Post<Dictionary<string, object>, BulkImportResults, ErrorResult<BulkImportResults>>( string.Format("/subscribers/{0}/import.json", ListID), null, new Dictionary<string, object>() { { "Subscribers", reworkedSusbcribers }, { "Resubscribe", resubscribe } }); }
/// <summary> /// Updates the subscriber with current email address of "*****@*****.**" to have the new email /// "*****@*****.**", while leaving the name unchanged. /// </summary> void UpdateWithNewEmailAndUnchangedNameDontResubscribe() { 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" }); subscriber.Update("*****@*****.**", "*****@*****.**", null, customFields, false); Console.WriteLine("Subscriber Updated successfully with new email: [email protected]. Name was unchanged"); } catch (CreatesendException ex) { ErrorResult error = (ErrorResult)ex.Data["ErrorResult"]; Console.WriteLine(error.Code); Console.WriteLine(error.Message); } catch (Exception ex) { //handle some other failure } }
public ActionResult AuthorizeNetSimGift(FormCollection post) { _logger.Info("keys: {0}", string.Join(", ", post.AllKeys)); var orderId = Convert.ToInt32(post["GiftOrderId"]); var userId = Convert.ToInt32(post["UserId"]); var order = _giftCardOrderService.FindOrder(orderId, userId); _logger.Info("Authorizing SIM..."); //the URL to redirect to- this MUST be absolute var successUrl = Url.RouteUrl("giftconfirmation", new { orderId = order.Id }, SecureProtocol); var failureUrl = Url.RouteUrl("billing-giftdetails", new { orderId = order.Id }, SecureProtocol); var redirectUrl = successUrl; var response = new SIMResponse(post); _logger.Info("Approved: {0}", response.Approved); _logger.Info("Code: {0}", response.ResponseCode); _logger.Info("Message: {0}", response.Message); _logger.Info("Authorization Code: {0}", response.AuthorizationCode); _logger.Info("Card Number: {0}", response.CardNumber); _logger.Info("Card Type: {0}", response.CardType); _logger.Info("Invoice Number: {0}", response.InvoiceNumber); _logger.Info("MD5 Hash: {0}", response.MD5Hash); _logger.Info("Transaction ID: {0}", response.TransactionID); //first order of business - validate that it was Authorize.Net that posted this using the //MD5 hash that was passed back to us var isValid = response.Validate(AuthorizeNetConfig.Md5HashValue, AuthorizeNetConfig.ApiLogin); _logger.Info("Valid: {0}", isValid); if (isValid && response.Approved) { _giftorderConfirmationMailer.SendGiftOrderConfirmationEmail(order); _giftCardOrderService.CompleteOrder(order, response.TransactionID); //Campaign Monitor -Adding subscriber to Gift card recipients List AuthenticationDetails auth = new ApiKeyAuthenticationDetails(ConfigurationManager.AppSettings["CampaignMonitorAPI_key"]); Subscriber objSubscriber = new Subscriber(auth, ConfigurationManager.AppSettings["CampaignMonitorListID"]); for (int i = 0; i < order.GiftOrderDetail.Count; i++) { List<SubscriberCustomField> customFields = new List<SubscriberCustomField>(); customFields.Add(new SubscriberCustomField() { Key = "Amount", Value = order.GiftOrderDetail[i].Amount.ToString() }); customFields.Add(new SubscriberCustomField() { Key = "Your Name", Value = order.GiftOrderDetail[i].YourName.ToString() }); customFields.Add(new SubscriberCustomField() { Key = "Gift Code", Value = order.GiftOrderDetail[i].RecipientGiftCode.ToString() }); customFields.Add(new SubscriberCustomField() { Key = "Message", Value = order.GiftOrderDetail[i].Message.ToString() }); string newSubscriberID = objSubscriber.Add(order.GiftOrderDetail[i].RecipientEmail.ToString(), null, customFields, false); } } else { _giftCardOrderService.FailOrder(order, response.Message); redirectUrl = failureUrl; } return Content(AuthorizeNet.Helpers.CheckoutFormBuilders.Redirecter(redirectUrl)); }
public ActionResult Billing(Britespokes.Services.GiftCards.BillingDetails billingDetails) { //decimal GiftAmount = 0; //int OrderDetailId = 0; var order = _giftCardOrderService.FindOrder(billingDetails.GiftOrderId, UserContext.UserId); if (!billingDetails.AcceptedTermsAndConditions) ModelState.AddModelError("AcceptedTermsAndConditions", "you must accept the terms and conditions to purchase a tour"); if (order.OrderStatus != _giftCardOrderService.StatusPending()) ModelState.AddModelError("", "This order is no longer pending"); if (UserContext.IsGuest && string.IsNullOrEmpty(billingDetails.Password)) ModelState.AddModelError("Password", "required"); if (string.CompareOrdinal(billingDetails.Password, billingDetails.ConfirmPassword) != 0) ModelState.AddModelError("ConfirmPassword", "doesn't match"); if (ModelState.IsValid) { if (UserContext.IsGuest) { var user = _userService.Find(UserContext.UserId); _registrationService.PromoteGuest(user, billingDetails.Email, billingDetails.Password); _userMailer.SendWelcomeEmail(UserContext.Organization, user); } _giftCardOrderService.UpdateBillingDetails(billingDetails); //Campaign Monitor -Adding subscriber to Gift card recipients List AuthenticationDetails auth = new ApiKeyAuthenticationDetails(ConfigurationManager.AppSettings["CampaignMonitorAPI_key"]); Subscriber objSubscriber = new Subscriber(auth, ConfigurationManager.AppSettings["CampaignMonitorListID"]); for (int i = 0; i < order.GiftOrderDetail.Count; i++) { List<SubscriberCustomField> customFields = new List<SubscriberCustomField>(); customFields.Add(new SubscriberCustomField() { Key = "Amount", Value = order.GiftOrderDetail[i].Amount ==null? "":order.GiftOrderDetail[i].Amount.ToString() }); customFields.Add(new SubscriberCustomField() { Key = "Your Name", Value = order.GiftOrderDetail[i].YourName == null ? "" : order.GiftOrderDetail[i].YourName.ToString() }); customFields.Add(new SubscriberCustomField() { Key = "Gift Code", Value = order.GiftOrderDetail[i].RecipientGiftCode == null ? "" : order.GiftOrderDetail[i].RecipientGiftCode.ToString() }); customFields.Add(new SubscriberCustomField() { Key = "Message", Value = order.GiftOrderDetail[i].Message == null ? "" : order.GiftOrderDetail[i].Message.ToString() }); string newSubscriberID = objSubscriber.Add(order.GiftOrderDetail[i].RecipientEmail.ToString(), null, customFields, false); } return Json(new { BillingDetails = billingDetails, Errors = new object[0] }); } billingDetails.BillingOverview = _giftCardOrderService.BuildBillingOverview(order); billingDetails.PaymentRequest = new PaymentRequest(order.Total, AuthorizeNetConfig.ApiLogin, AuthorizeNetConfig.TransactionKey, AuthorizeNetConfig.TestMode); return Json(new { BillingDetails = billingDetails, Errors = ModelStateErrorsForJson() }); }
void CreateFromTemplate() { try { List<string> listIDs = new List<string>(); listIDs.Add("List ID One"); List<string> segmentIDs = new List<string>(); segmentIDs.Add("Segment ID One"); // Prepare the template content TemplateContent templateContent = new TemplateContent(); List<EditableField> singlelines = new List<EditableField>(); EditableField singleline = new EditableField(); singleline.Content = "This is a heading"; singleline.Href = "http://example.com/"; singlelines.Add(singleline); templateContent.Singlelines = singlelines; List<EditableField> multilines = new List<EditableField>(); EditableField multiline = new EditableField(); multiline.Content = "<p>This is example</p><p>multiline <a href=\"http://example.com\">content</a>...</p>"; multilines.Add(multiline); templateContent.Multilines = multilines; List<EditableField> images = new List<EditableField>(); EditableField image = new EditableField(); image.Content = "http://example.com/image.png"; image.Alt = "This is alt text for an image"; image.Href = "http://example.com/"; images.Add(image); templateContent.Images = images; List<Repeater> repeaters = new List<Repeater>(); Repeater repeater = new Repeater(); List<RepeaterItem> items = new List<RepeaterItem>(); RepeaterItem item = new RepeaterItem(); item.Layout = "My layout"; // Just using the same data for Singlelines, Multilines, // and Images as above in this example. item.Singlelines = singlelines; item.Multilines = multilines; item.Images = images; repeater.Items = items; repeaters.Add(repeater); templateContent.Repeaters = repeaters; // templateContent as defined above would be used to fill the content of // a template with markup similar to the following: // <html> // <head><title>My Template</title></head> // <body> // <p><singleline>Enter heading...</singleline></p> // <div><multiline>Enter description...</multiline></div> // <img id="header-image" editable="true" width="500" /> // <repeater> // <layout label="My layout"> // <div class="repeater-item"> // <p><singleline></singleline></p> // <div><multiline></multiline></div> // <img editable="true" width="500" /> // </div> // </layout> // </repeater> // <p><unsubscribe>Unsubscribe</unsubscribe></p> // </body> // </html> string campaignID = Campaign.CreateFromTemplate( auth, "Your Client ID", "Campaign Subject", "Campaign Name", "From Name", "*****@*****.**", "*****@*****.**", listIDs, segmentIDs, "Template ID", templateContent); Console.WriteLine("Campaign ID: " + campaignID); } catch (CreatesendException ex) { ErrorResult error = (ErrorResult)ex.Data["ErrorResult"]; Console.WriteLine(error.Code); Console.WriteLine(error.Message); } catch (Exception ex) { // Handle some other failure Console.WriteLine(ex.ToString()); } }