Example #1
0
        private async Task AddContactToAMailingList(MailjetContact mailjetContact, int id)
        {
            try
            {
                var requestToContactList = new MailjetRequest
                {
                    Resource   = ContactManagecontactslists.Resource,
                    ResourceId = ResourceId.Numeric(id)
                }.Property(ContactManagecontactslists.ContactsLists, new JArray
                {
                    new JObject
                    {
                        { "Action", "addnoforce" },
                        { "ListID", mailjetContact.ContactListId }
                    }
                });
                var response = await _clientV3.PostAsync(requestToContactList);

                if (!response.IsSuccessStatusCode)
                {
                    throw new MailjetApiClientException(response.FormatForLogs());
                }
            }
            catch (Exception e)
            {
                throw new MailjetApiClientException(e.Message, e.InnerException);
            }
        }
Example #2
0
        private async Task <int> CreateContact(MailjetContact mailjetContact)
        {
            var request = new MailjetRequest
            {
                Resource = Contact.Resource,
            }
            .Property(Contact.IsExcludedFromCampaigns, mailjetContact.IsExcluded)
            .Property(Contact.Name, mailjetContact.ContactName)
            .Property(Contact.Email, mailjetContact.ContactEmail);

            var response = await _clientV3.PostAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                throw new MailjetApiClientException(response.FormatForLogs());
            }
            var responseData = response.GetData();

            return((int)responseData[0]["ID"]);
        }
Example #3
0
        private async Task UpdateContactCustomProperties(int contactId, MailjetContact mailjetContact)
        {
            var enumerator = mailjetContact.CustomProperties.GetEnumerator();
            var request    = new MailjetRequest
            {
                Resource = new ResourceInfo("contactdata/" + contactId),
            }
            .Property(Contactdata.Data,

                      new JArray {
                from key in mailjetContact.CustomProperties.Keys select new JObject(new JProperty("Name", key), new JProperty("Value", mailjetContact.CustomProperties[key]))
            }
                      );

            var response = await _clientV3.PutAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                throw new MailjetApiClientException(response.FormatForLogs());
            }
        }
Example #4
0
        public async Task AddOrUpdateContact(MailjetContact mailjetContact)
        {
            int?contactId = GetContactId(mailjetContact.ContactEmail).Result;

            if (contactId == null)
            {
                contactId = await CreateContact(mailjetContact);
            }

            //Add To a contact list
            if (!string.IsNullOrEmpty(mailjetContact.ContactListId))
            {
                await AddContactToAMailingList(mailjetContact, contactId.Value);
            }

            //update custom contact properties
            if (mailjetContact.CustomProperties.Keys.Any())
            {
                await UpdateContactCustomProperties(contactId.Value, mailjetContact);
            }
        }