private void WriteContactToConsole(contactObject contact) { Console.WriteLine("First contact returned: {0} with ID {1} and Status {2}, created on {3}", contact.email, contact.id, contact.status, contact.created.ToBrontoString()); if (contact.fields != null) { Console.WriteLine("Contact fields:"); contact.fields.ToList().ForEach(field => { Console.WriteLine("{0} ({1}/{3}) has the value '{2}'. ", fields.LabelOf(field), fields.NameOf(field), field.content, fields.TypeOf(field)); }); } }
public void AddAndUpdateContact() { string email = Guid.NewGuid().ToString().Replace("{", "").Replace("}", "") + "@example.com"; contactObject contact = GetTestContact(email, "Michael", "Randrup"); Contacts contacts = new Contacts(Login); Console.WriteLine("Adding a contact with the email {0}", email); BrontoResult result = contacts.AddOrUpdate(contact); Assert.IsTrue(result.Items.Count(x => x.IsNew == true) == 1); contact = GetTestContact(email, "Michael", "Randrup " + DateTime.Now.ToString()); result = contacts.AddOrUpdate(contact); Assert.IsTrue(result.Items.Count(x => x.IsNew == true) == 0); contact.email = Guid.NewGuid().ToString().Replace("{", "").Replace("}", "") + "@example.com"; contact.id = result.Items.First().Id; Console.WriteLine("Updating the email from {0} to {1} for the created contact with id {2}", email, contact.email, contact.id); result = contacts.AddOrUpdate(contact); Assert.IsTrue(result.Items.Count(x => x.IsNew == true) == 0); }
public contactObject TranslateContact(Contact contact, Dictionary <string, string> ContactFields = null) { var result = new contactObject(); result.id = contact.Id; if (!String.IsNullOrEmpty(contact.MessagePreference)) { result.msgPref = contact.MessagePreference.ToLower(); } else { result.msgPref = "html"; } if (contact.Fields.Count > 0) { if (ContactFields != null) { List <contactField> fields = new List <contactField>(); foreach (KeyValuePair <string, string> kvp in ContactFields) { if (contact.Fields.ContainsKey(kvp.Value) && (contact.Fields[kvp.Value] != null)) { fields.Add(new contactField { fieldId = kvp.Key, content = contact.Fields[kvp.Value] }); } } result.fields = fields.ToArray(); } } result.status = contact.GetStatusString(); result.email = contact.Email; return(result); }
public void Send() { /////////////////////////////////////////////////////////////////// // // login, which creates the requisite header // /////////////////////////////////////////////////////////////////// sessionHeader header = new sessionHeader(); BrontoSoapPortTypeClient client = new BrontoSoapPortTypeClient(); header.sessionId = client.login(ConfigurationManager.AppSettings[GetType().Name]); /////////////////////////////////////////////////////////////////// // // add recipients to contact list // /////////////////////////////////////////////////////////////////// List<contactObject> contactValues = new List<contactObject>(); foreach(string email in To) { contactObject co = new contactObject(); co.email = email; contactValues.Add(co); } writeResult contacts = client.addOrUpdateContacts(header, contactValues.ToArray()); /////////////////////////////////////////////////////////////////// // // using list of contacts, create list of recipients // /////////////////////////////////////////////////////////////////// List<deliveryRecipientObject> recipients = new List<deliveryRecipientObject>(); foreach(resultItem item in contacts.results) { deliveryRecipientObject recipient = new deliveryRecipientObject(); recipient.type = "contact"; recipient.id = item.id; recipients.Add(recipient); } /////////////////////////////////////////////////////////////////// // // add email to message list // /////////////////////////////////////////////////////////////////// messageContentObject mco = new messageContentObject(); mco.subject = Subject; mco.content = Body.Replace("\r\n", "<br>"); mco.type = "html"; messageObject mo = new messageObject(); mo.name = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now); mo.content = new messageContentObject[] { mco }; writeResult messages = client.addMessages(header, new messageObject[] { mo }); /////////////////////////////////////////////////////////////////// // // using list of messages, create list of deliveries // /////////////////////////////////////////////////////////////////// List<deliveryObject> deliveries = new List<deliveryObject>(); foreach(resultItem item in messages.results) { deliveryObject delivery = new deliveryObject(); delivery.start = DateTime.Now; delivery.startSpecified = true; delivery.messageId = item.id; delivery.fromEmail = From; delivery.fromName = From.Substring(0, From.IndexOf('@')); delivery.recipients = recipients.ToArray(); deliveries.Add(delivery); } // send the deliveries! client.addDeliveriesAsync(header, deliveries.ToArray()); }
/// <summary> /// Parse the umbraco form values to a bronto contact 'contactObject' model /// </summary> /// <param name="record"></param> /// <param name="listAndFieldMapping"></param> /// <returns>ParseContactResult</returns> public static ParseContactResult Contact(Record record, string listAndFieldMapping) { var result = new ParseContactResult(); var settingValue = JsonConvert.DeserializeObject <SettingValueModel>(listAndFieldMapping); // get the list id var listId = settingValue.listId; // build bronto contact var newContact = new contactObject(); // process standard contact fields if (!string.IsNullOrEmpty(listId)) { newContact.listIds = new string[] { listId } } ; var emailAddress = GetMappedFieldAsString(settingValue, record, ContactDefaultFieldName.email.ToString()); if (!string.IsNullOrEmpty(emailAddress)) { newContact.email = emailAddress; } var mobileTel = GetMappedFieldAsString(settingValue, record, ContactDefaultFieldName.mobileNumber.ToString()); if (!string.IsNullOrEmpty(mobileTel)) { newContact.mobileNumber = mobileTel; } // the marketing source of the user - this could be passed from the 'phone manager' package var marketingSource = GetMappedFieldAsString(settingValue, record, ContactDefaultFieldName.customSource.ToString()); if (!string.IsNullOrEmpty(marketingSource)) { newContact.customSource = marketingSource; } // get list of ContactStandardFieldName enum names var standardFields = Enum.GetNames(typeof(ContactDefaultFieldName)).ToList(); // remove standard fields from the remaining mapping data as they are no longer required settingValue.mappings.RemoveAll(x => standardFields.Contains(x.brontoFieldId)); // Add custom fields var customFields = settingValue.mappings.Select(m => { return(new contactField { fieldId = m.brontoFieldId, content = GetFieldValue(record, m) }); }).ToArray(); if (customFields.Count() > 0) { newContact.fields = customFields; } // add new contact to result result.contact = newContact; return(result); }
public void AddContactWithListReference() { MailLists lists = new MailLists(Login); Contacts contacts = new Contacts(Login); List <mailListObject> mailLists = new List <mailListObject>() { new mailListObject() { name = "Test list A" + DateTime.Now, label = "Test list A", status = Bronto.API.ListStatus.Active }, new mailListObject() { name = "Test list B" + DateTime.Now, label = "Test list B", status = Bronto.API.ListStatus.Active } }; BrontoResult listResult = lists.Add(mailLists); Assert.IsFalse(listResult.HasErrors, "The two test lists was not created"); mailLists[0].id = listResult.Items[0].Id; mailLists[1].id = listResult.Items[1].Id; contactObject contact = GetTestContacts(1, new Random()).First(); contact.listIds = listResult.Items.Select(x => x.Id).ToArray(); BrontoResult contactResult = contacts.Add(contact); Assert.IsFalse(contactResult.HasErrors, "The contact was not created"); contactFilter filter = new contactFilter(); filter.listId = listResult.Items.Select(x => x.Id).ToArray(); filter.type = filterType.OR; filter.typeSpecified = true; List <contactObject> listContacts = contacts.Read(filter, Contacts.ReadOptions.IncludeAll().IncludeFields(fields)); Assert.IsTrue(listContacts.Count == 1); contact.listIds = new string[] { listResult.Items.Select(x => x.Id).First() }; contactResult = contacts.AddOrUpdate(contact); contact.id = contactResult.Items[0].Id; Assert.IsFalse(contactResult.HasErrors, "The contact was not updated"); Assert.IsTrue(contactResult.Items.Count(x => x.IsNew) == 0, "The contact was created instead of being updated"); filter = new contactFilter(); filter.listId = new string[] { listResult.Items.Select(x => x.Id).First() }; listContacts = contacts.Read(filter, new readContacts().IncludeAll().IncludeFields(fields)); Assert.IsTrue(listContacts.Count == 1); filter.listId = new string[] { listResult.Items.Select(x => x.Id).Last() }; listContacts = contacts.Read(filter, new readContacts().IncludeAll().IncludeFields(fields)); Assert.IsTrue(listContacts.Count == 0); listResult = lists.Delete(mailLists); Assert.IsFalse(listResult.HasErrors, "Unable to delete the lists"); contactResult = contacts.Delete(new List <contactObject>() { contact }); Assert.IsFalse(contactResult.HasErrors, "Unable to delete the contact"); }
/// <summary> /// Add a new contact to Bronto /// </summary> /// <param name="contact">The contact to add</param> /// <returns>The result of the add operation <seealso cref="BrontoResult"/></returns> public async Task <BrontoResult> AddAsync(contactObject contact) { return(await AddAsync(new contactObject[] { contact })); }
/// <summary> /// Update a contact in Bronto /// </summary> /// <param name="contact">The contact to update</param> /// <returns>The result of the add operation <seealso cref="BrontoResult"/></returns> public BrontoResult Update(contactObject contact) { return(Update(new contactObject[] { contact })); }
/// <summary> /// Add a new contact to Bronto /// </summary> /// <param name="contact">The contact to add</param> /// <returns>The result of the add operation <seealso cref="BrontoResult"/></returns> public BrontoResult Add(contactObject contact) { return(Add(new contactObject[] { contact })); }
/// <summary> /// Add or updates a contact in Bronto /// </summary> /// <param name="contact">The contact to add or update</param> /// <returns>The result of the add or update operation <seealso cref="BrontoResult"/></returns> public BrontoResult AddOrUpdateIncremental(contactObject contact) { return(AddOrUpdateIncremental(new contactObject[] { contact })); }