public void StartTriggeredSend(string externalKey) { using (var triggeredSendDefinitionClient = new TriggeredSendDefinitionClient(_config)) { triggeredSendDefinitionClient.StartTriggeredSend(externalKey); } }
public int Create(string externalKey, string layoutHtml) { if (externalKey.Length > Guid.Empty.ToString().Length) { throw new ArgumentException("externalKey too long, should be max length of " + Guid.Empty.ToString().Length, "externalKey"); } if (triggeredSendDefinitionClient.DoesTriggeredSendDefinitionExist(externalKey)) { throw new Exception(string.Format("A TriggeredSendDefinition with external key {0} already exsits", externalKey)); } var dataExtensionExternalKey = ExternalKeyGenerator.GenerateExternalKey("data-extension-" + externalKey); if (!dataExtensionClient.DoesDataExtensionExist(dataExtensionExternalKey)) { var dataExtensionTemplateObjectId = dataExtensionClient.RetrieveTriggeredSendDataExtensionTemplateObjectId(); var regex = new Regex(@"(?<=%%)[^\s].*?[^\s]?(?=%%)"); var matches = regex.Matches(layoutHtml); var dataExtensionFieldNames = new HashSet <string> { "Subject", "Body", "Head" }; for (var i = 0; i < matches.Count; i++) { dataExtensionFieldNames.Add(matches[i].Value); } dataExtensionClient.CreateDataExtension(dataExtensionTemplateObjectId, dataExtensionExternalKey, "triggeredsend-" + externalKey, dataExtensionFieldNames); } var emailTempalteExternalKey = ExternalKeyGenerator.GenerateExternalKey("email-template" + externalKey); var emailTemplateId = emailTemplateClient.RetrieveEmailTemplateId(emailTempalteExternalKey); if (emailTemplateId == 0) { layoutHtml += EmailContentHelper.GetOpenTrackingTag() + EmailContentHelper.GetCompanyPhysicalMailingAddressTags(); emailTemplateId = emailTemplateClient.CreateEmailTemplate(emailTempalteExternalKey, "template-" + externalKey, layoutHtml); } var emailId = emailRequestClient.CreateEmailFromTemplate(emailTemplateId, "email-" + externalKey, "%%Subject%%", new KeyValuePair <string, string>("dynamicArea", "%%Body%%")); var deliveryProfileExternalKey = ExternalKeyGenerator.GenerateExternalKey("blank-delivery-profile"); deliveryProfileClient.TryCreateBlankDeliveryProfile(deliveryProfileExternalKey); var triggeredSendDefinition = triggeredSendDefinitionClient.CreateTriggeredSendDefinition(externalKey, emailId, dataExtensionExternalKey, deliveryProfileExternalKey, externalKey, externalKey, "High"); triggeredSendDefinitionClient.StartTriggeredSend(externalKey); return(triggeredSendDefinition); }