public static readContacts IncludeTechnologyData(this readContacts options) { options.includeTechnologyData = options.includeTechnologyDataSpecified = true; return(options); }
public IEnumerable<IMetricsProvider> GetMetrics(int days) { /////////////////////////////////////////////////////////////////// // // Instantiate the client // /////////////////////////////////////////////////////////////////// sessionHeader header = new sessionHeader(); BrontoSoapPortTypeClient client = new BrontoSoapPortTypeClient(); header.sessionId = client.login(ConfigurationManager.AppSettings[GetType().Name]); /////////////////////////////////////////////////////////////////// // // Retrieve the contact for which you need the metrics. // /////////////////////////////////////////////////////////////////// contactFilter cf = new contactFilter(); cf.id = new string[] { "4a8e4dc1-e38f-438b-b8b5-75e46799bc9c" }; readContacts rc = new readContacts(); rc.filter = cf; contactObject[] co = client.readContacts(header, rc); contactObject mycontact = co[0]; /////////////////////////////////////////////////////////////////// // // Create a deliverFilter and read all deliverObjects // /////////////////////////////////////////////////////////////////// deliveryFilter df = new deliveryFilter(); df.deliveryType = new string[] { "normal","test","automated","split","transactional","triggered" }; readDeliveries rd = new readDeliveries(); rd.filter = df; deliveryObject[] dos = client.readDeliveries(header, rd); /////////////////////////////////////////////////////////////////// // // Extract deliverObjects into ProviderMetrics // /////////////////////////////////////////////////////////////////// List<IMetricsProvider> list = new List<IMetricsProvider>(); try { foreach (deliveryObject doj in dos) { ProviderMetrics item = new ProviderMetrics(); //deliveryRecipientObject[] dro = doj.recipients; // id can be contact id, list id or segment id //dro[0].id // if contactId, there are metrics by contact, but that doesn't tell the full story /* deliveryRecipientFilter drf = new deliveryRecipientFilter(); drf.deliveryId = doj.id; readDeliveryRecipients rdr = new readDeliveryRecipients(); rdr.filter = drf; deliveryRecipientStatObject[] drso = client.readDeliveryRecipients(header, rdr); */ // Once we receive the deliveryRecipientStatObject, we have to check // if this object has click/send/bounce and store the contactId accordingly item.Name = doj.messageId; item.Bounces = (int)doj.numBounces; item.Clicks = (int)doj.numClicks; item.Opens = (int)doj.numOpens; item.Sends = (int)doj.numSends; // read unsubscribes unsubscribeFilter uf = new unsubscribeFilter(); uf.deliveryId = doj.id; readUnsubscribes ru = new readUnsubscribes(); ru.filter = uf; ru.pageNumber = 1; if (client.readUnsubscribes(header, ru) == null) item.Unsubscribes = 0; else item.Unsubscribes = client.readUnsubscribes(header, ru).Length; list.Add(item); } } catch (Exception e) { MessageBox.Show(e.Message); ProviderMetrics item = new ProviderMetrics(); item.Name = "null"; item.Bounces = 0; item.Clicks = 0; item.Opens = 0; item.Sends = 0; item.Unsubscribes = 0; list.Add(item); } return list; }
public static readContacts IncludeEngagementData(this readContacts options) { options.includeEngagementData = options.includeEngagementDataSpecified = true; return(options); }
public static readContacts IncludeSMSKeywords(this readContacts options) { options.includeSMSKeywords = options.includeSMSKeywordsSpecified = true; return(options); }
public static readContacts IncludeSegments(this readContacts options) { options.includeSegments = options.includeSegmentsSpecified = true; return(options); }
public static readContacts IncludeListsAndSegments(this readContacts options) { return(options.IncludeLists().IncludeSegments()); }
public static readContacts IncludeFields(this readContacts options, IEnumerable <string> fieldIds) { options.fields = fieldIds.ToArray(); return(options); }
public static readContacts IncludeFields(this readContacts options, List <fieldObject> fields) { options.fields = fields.Select(x => x.id).ToArray(); return(options); }
private List <contactObject> ReadContactsInternal(Contacts contacts, contactFilter filter, readContacts options) { return(contacts.Read(filter, options)); }
/// <summary> /// Reads all contacts in bronto with the specified return fields /// </summary> /// <param name="options">The fields and information to return. Use the extension methods on the readContacts class to specify options</param> /// <returns>the list of contacts</returns> public async Task <List <contactObject> > ReadAsync(readContacts options) { return(await ReadAsync(new contactFilter(), options)); }
/// <summary> /// Reads all contacts in bronto with the specified return fields /// </summary> /// <param name="options">The fields and information to return. Use the extension methods on the readContacts class to specify options</param> /// <returns>the list of contacts</returns> public List <contactObject> Read(readContacts options) { return(Read(new contactFilter(), options)); }