Esempio n. 1
0
        public void CreateDataExtension(string dataExtensionTemplateObjectId,
                                        string externalKey,
                                        string name,
                                        HashSet <string> fields)
        {
            var de = new ExactTargetApi.DataExtension
            {
                Client = _config.ClientId.HasValue ? new ClientID {
                    ID = _config.ClientId.Value, IDSpecified = true
                } : null,
                Name        = name,
                CustomerKey = externalKey,
                Template    = new DataExtensionTemplate {
                    ObjectID = dataExtensionTemplateObjectId
                },
                Fields = fields.Select(field => new DataExtensionField
                {
                    Name               = field,
                    FieldType          = DataExtensionFieldType.Text,
                    FieldTypeSpecified = true,
                }).ToArray(),
            };

            string requestId, status;
            var    result = _client.Create(new CreateOptions(), new APIObject[] { de }, out requestId, out status);

            ExactTargetResultChecker.CheckResult(result.FirstOrDefault()); //we expect only one result because we've sent only one APIObject
        }
        public int CreateEmail(string externalKey, string emailName, string subject, string htmlBody)
        {
            var email = new ExactTargetApi.Email
            {
                Client = _config.ClientId.HasValue ? new ClientID {
                    ID = _config.ClientId.Value, IDSpecified = true
                } : null,
                Name                      = emailName,
                CustomerKey               = externalKey,
                IsHTMLPaste               = true,
                IsHTMLPasteSpecified      = true,
                SyncTextWithHTML          = true,
                SyncTextWithHTMLSpecified = true,
                HTMLBody                  = htmlBody,
                Subject                   = subject,
                CharacterSet              = "UTF-8"
            };

            string requestId, status;
            var    result = _client.Create(new CreateOptions(), new APIObject[] { email }, out requestId, out status);

            ExactTargetResultChecker.CheckResult(result.FirstOrDefault()); //we expect only one result because we've sent only one APIObject

            return(result.First().NewID);
        }
Esempio n. 3
0
        public string TryCreateBlankDeliveryProfile(string externalKey)
        {
            try
            {
                var dp = new ExactTargetApi.DeliveryProfile
                {
                    Client =
                        _config.ClientId.HasValue
                            ? new ClientID {
                        ID = _config.ClientId.Value, IDSpecified = true
                    }
                            : null,
                    Name                            = "Blank delivery profile",
                    Description                     = "Blank delivery profile",
                    CustomerKey                     = externalKey,
                    FooterSalutationSource          = SalutationSourceEnum.None,
                    FooterSalutationSourceSpecified = true,
                    HeaderSalutationSource          = SalutationSourceEnum.None,
                    HeaderSalutationSourceSpecified = true,
                    SourceAddressType               = DeliveryProfileSourceAddressTypeEnum.DefaultPrivateIPAddress,
                    SourceAddressTypeSpecified      = true
                };

                string requestId, status;
                var    result = _client.Create(new CreateOptions(), new APIObject[] { dp }, out requestId, out status);

                ExactTargetResultChecker.CheckResult(result.FirstOrDefault());
                //we expect only one result because we've sent only one APIObject
                return(result.First().NewObjectID);
            }
            catch
            {
                return(Guid.Empty.ToString());
            }
        }
        public static void CreateDateExtension(SoapClient soapClient,
            string iDataExtensionName,
            string iDataExtensionCustomerKey)
        {
            DataExtension de = new DataExtension();
            de.Name = iDataExtensionName;
            de.CustomerKey = iDataExtensionCustomerKey;

            de.IsSendable = true;
            de.IsSendableSpecified = true;

            DataExtensionField def = new DataExtensionField();
            def.Name = "EMAIL";
            de.SendableDataExtensionField = def;

            //Sendable SubscriberField will be "Email Address" by default
            //If SubscriberKey option is enabled then value needs to be "Subscriber Key"
            ExactTargetSOAPAPI.Attribute attr = new ExactTargetSOAPAPI.Attribute();
            attr.Name = "Email Address";
            de.SendableSubscriberField = attr;

            DataExtensionField emailField = new DataExtensionField();
            emailField.Name = "EMAIL";
            emailField.FieldType = DataExtensionFieldType.EmailAddress;
            emailField.FieldTypeSpecified = true;
            emailField.IsRequired = true;
            emailField.IsRequiredSpecified = true;
            emailField.IsPrimaryKey = true;
            emailField.IsPrimaryKeySpecified = true;
            emailField.MaxLength = 50;
            emailField.MaxLengthSpecified = true;

            DataExtensionField fnameField = new DataExtensionField();
            fnameField.Name = "FIRST NAME";
            fnameField.FieldType = DataExtensionFieldType.Text;
            fnameField.FieldTypeSpecified = true;

            DataExtensionField lnameField = new DataExtensionField();
            lnameField.Name = "LAST NAME";
            lnameField.FieldType = DataExtensionFieldType.Text;
            lnameField.FieldTypeSpecified = true;

            de.Fields = new DataExtensionField[] { emailField, fnameField, lnameField };

            string sStatus = "";
            string sRequestId = "";

            CreateResult[] aoResults = soapClient.Create(new CreateOptions(), new APIObject[] { de }, out sRequestId, out sStatus);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("Request ID: " + sRequestId);
            foreach (CreateResult cr in aoResults)
            {
                Console.WriteLine("StatusCode: " + cr.StatusCode);
                Console.WriteLine("ErrorCode: " + cr.ErrorCode);
                Console.WriteLine("StatusMessage: " + cr.StatusMessage);
            }
        }
        public static void CreateImportDefinition(SoapClient soapClient,
            string iImportDefinitionName,
            string iImportDefinitionCustomerKey,
            string iTargetDataExtensionCustomerKey,
            string iImportFileName)
        {
            ImportDefinition id = new ImportDefinition();
            id.Name = iImportDefinitionName;
            id.CustomerKey = iImportDefinitionCustomerKey;

            // Optional value, if AllowErrors is true then it will not stop the import when
            // a single row has an error
            id.AllowErrors = true;
            id.AllowErrorsSpecified = true;

            // For this example, we are sending to a data extension
            // Value for CustomerKey will be for a data extension already created in your account
            DataExtension de = new DataExtension();
            de.CustomerKey = iTargetDataExtensionCustomerKey;
            id.DestinationObject = de;

            AsyncResponse ar = new AsyncResponse();
            ar.ResponseType = AsyncResponseType.email;
            ar.ResponseAddress = "*****@*****.**";
            id.Notification = ar;

            FileTransferLocation ftl = new FileTransferLocation();
            ftl.CustomerKey = "ExactTarget Enhanced FTP";
            id.RetrieveFileTransferLocation = ftl;

            // Specify how the import will be handled
            // If data extension has no primary key specified then only "Overwrite" will work
            id.UpdateType = ImportDefinitionUpdateType.AddAndUpdate;
            id.UpdateTypeSpecified = true;

            id.FieldMappingType = ImportDefinitionFieldMappingType.InferFromColumnHeadings;
            id.FieldMappingTypeSpecified = true;

            id.FileSpec = iImportFileName;

            id.FileType = FileType.CSV;
            id.FileTypeSpecified = true;

            string sStatus = "";
            string sRequestId = "";

            CreateResult[] aoResults = soapClient.Create(new CreateOptions(), new APIObject[] { id }, out sRequestId, out sStatus);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("Request ID: " + sRequestId);
            foreach (CreateResult cr in aoResults)
            {
                Console.WriteLine("StatusCode: " + cr.StatusCode);
                Console.WriteLine("ErrorCode: " + cr.ErrorCode);
                Console.WriteLine("StatusMessage: " + cr.StatusMessage);
            }
        }
        public int CreateTriggeredSendDefinition(
            string externalId,
            int emailId,
            string dataExtensionCustomerKey,
            string deliveryProfileCustomerKey,
            string name,
            string description, bool NeedCC = false, bool NeedBcc = false)
        {
            var ts = new ETService.TriggeredSendDefinition
            {
                Client = _config.ClientId.HasValue ? new ClientID {
                    ID = _config.ClientId.Value, IDSpecified = true
                } : null,
                Email = new ETService.Email {
                    ID = emailId, IDSpecified = true
                },
                SendSourceDataExtension = new ETService.DataExtension {
                    CustomerKey = dataExtensionCustomerKey
                },
                Name                = name,
                Description         = description,
                CustomerKey         = externalId,
                TriggeredSendStatus = TriggeredSendStatusEnum.Active,

                SendClassification = new SendClassification
                {
                    CustomerKey = "Default Transactional"
                },

                IsMultipart          = true,
                IsMultipartSpecified = true,

                DeliveryProfile = new ETService.DeliveryProfile
                {
                    CustomerKey = deliveryProfileCustomerKey
                },
                IsWrapped          = true,
                IsWrappedSpecified = true
            };

            if (NeedCC)
            {
                ts.CCEmail = "%%CCAddress%%";
            }

            string requestId, status;
            var    result = _client.Create(new CreateOptions(), new APIObject[] { ts }, out requestId, out status);

            ExactTargetResultChecker.CheckResult(result.FirstOrDefault());

            return(result != null?result.First().NewID : 0);
        }
Esempio n. 7
0
        public static void CreateAutomation(SoapClient soapClient,
                                            string iEmailSendDefinitionName,
                                            string iEmailSendDefinitionCustomerKey,
                                            string iEmailSendDefinitionObjectID)
        {
            Automation automation = new Automation();

            automation.Name = "SOAPAPI Test2_" + Guid.NewGuid().ToString();
            // CustomerKey can be any string value, GUID is only used for example purposes
            automation.CustomerKey    = Guid.NewGuid().ToString();
            automation.Description    = "SOAP API Created Example";
            automation.AutomationType = "scheduled";

            AutomationActivity activityOne = new AutomationActivity();

            activityOne = new AutomationActivity();
            // This is the ObjectID of the Definition Object
            activityOne.ObjectID = iEmailSendDefinitionObjectID;
            // This is the Name of the Definition Object
            activityOne.Name       = iEmailSendDefinitionName;
            activityOne.Definition = new APIObject();
            EmailSendDefinition activityOneDefinition = new EmailSendDefinition();

            // Again this is the ObjectID of the Definition Object
            activityOneDefinition.ObjectID = iEmailSendDefinitionObjectID;
            // Again this is the Name of the Definition Object
            activityOneDefinition.Name        = iEmailSendDefinitionName;
            activityOneDefinition.CustomerKey = iEmailSendDefinitionCustomerKey;

            activityOne.ActivityObject = activityOneDefinition;
            AutomationTask taskOne = new AutomationTask();

            taskOne.Name               = "Task 1";
            taskOne.Activities         = new AutomationActivity[] { activityOne };
            automation.AutomationTasks = new AutomationTask[] { taskOne };

            string RequestID     = String.Empty;
            string OverallStatus = String.Empty;

            CreateResult[] createResults = soapClient.Create(new CreateOptions(), new APIObject[] { automation }, out RequestID, out OverallStatus);

            Console.WriteLine("Status: " + OverallStatus);
            foreach (CreateResult cr in createResults)
            {
                Console.WriteLine("NewObjectID: " + cr.NewObjectID);
                Console.WriteLine("StatusCode: " + cr.StatusCode);
                Console.WriteLine("ErrorCode: " + cr.ErrorCode);
                Console.WriteLine("StatusMessage: " + cr.StatusMessage);
            }
        }
        public static void CreateTriggeredSend(SoapClient soapClient,
                                               string iTriggeredSendCustomerKey,
                                               string iEmailAddress,
                                               string iFirstName,
                                               string iLastName)
        {
            TriggeredSend           ts  = new TriggeredSend();
            TriggeredSendDefinition tsd = new TriggeredSendDefinition();

            tsd.CustomerKey            = iTriggeredSendCustomerKey;
            ts.TriggeredSendDefinition = tsd;

            Subscriber sub = new Subscriber();

            sub.EmailAddress  = iEmailAddress;
            sub.SubscriberKey = iEmailAddress;

            ExactTargetSOAPAPI.Attribute firstName = new ExactTargetSOAPAPI.Attribute();
            firstName.Name  = "First Name";
            firstName.Value = iFirstName;

            ExactTargetSOAPAPI.Attribute lastName = new ExactTargetSOAPAPI.Attribute();
            lastName.Name  = "Last Name";
            lastName.Value = iLastName;

            sub.Attributes = new ExactTargetSOAPAPI.Attribute[] { firstName, lastName };

            ts.Subscribers = new Subscriber[] { sub };

            string sStatus    = "";
            string sRequestId = "";

            CreateResult[] aoResults =
                soapClient.Create(new CreateOptions(), new APIObject[] { ts }, out sRequestId, out sStatus);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("Request ID: " + sRequestId);
            foreach (TriggeredSendCreateResult tscr in aoResults)
            {
                if (tscr.SubscriberFailures != null)
                {
                    foreach (SubscriberResult sr in tscr.SubscriberFailures)
                    {
                        Console.WriteLine("ErrorCode: " + sr.ErrorCode);
                        Console.WriteLine("ErrorDescription: " + sr.ErrorDescription);
                    }
                }
            }
        }
        public static void CreateAutomation(SoapClient soapClient,
            string iEmailSendDefinitionName,
            string iEmailSendDefinitionCustomerKey,
            string iEmailSendDefinitionObjectID)
        {
            Automation automation = new Automation();
            automation.Name = "SOAPAPI Test2_" + Guid.NewGuid().ToString();
            // CustomerKey can be any string value, GUID is only used for example purposes
            automation.CustomerKey = Guid.NewGuid().ToString();
            automation.Description = "SOAP API Created Example";
            automation.AutomationType = "scheduled";

            AutomationActivity activityOne = new AutomationActivity();
            activityOne = new AutomationActivity();
            // This is the ObjectID of the Definition Object
            activityOne.ObjectID = iEmailSendDefinitionObjectID;
            // This is the Name of the Definition Object
            activityOne.Name = iEmailSendDefinitionName;
            activityOne.Definition = new APIObject();
            EmailSendDefinition activityOneDefinition = new EmailSendDefinition();

            // Again this is the ObjectID of the Definition Object
            activityOneDefinition.ObjectID = iEmailSendDefinitionObjectID;
            // Again this is the Name of the Definition Object
            activityOneDefinition.Name = iEmailSendDefinitionName;
            activityOneDefinition.CustomerKey = iEmailSendDefinitionCustomerKey;

            activityOne.ActivityObject = activityOneDefinition;
            AutomationTask taskOne = new AutomationTask();
            taskOne.Name = "Task 1";
            taskOne.Activities = new AutomationActivity[] { activityOne };
            automation.AutomationTasks = new AutomationTask[] { taskOne };

            string RequestID = String.Empty;
            string OverallStatus = String.Empty;

            CreateResult[] createResults = soapClient.Create(new CreateOptions(), new APIObject[] { automation }, out RequestID, out OverallStatus);

            Console.WriteLine("Status: " + OverallStatus);
            foreach (CreateResult cr in createResults)
            {
                Console.WriteLine("NewObjectID: " + cr.NewObjectID);
                Console.WriteLine("StatusCode: " + cr.StatusCode);
                Console.WriteLine("ErrorCode: " + cr.ErrorCode);
                Console.WriteLine("StatusMessage: " + cr.StatusMessage);
            }
        }
        public static void CreateTriggeredSend(SoapClient soapClient, 
            string iTriggeredSendCustomerKey, 
            string iEmailAddress, 
            string iFirstName, 
            string iLastName)
        {
            TriggeredSend ts = new TriggeredSend();
            TriggeredSendDefinition tsd = new TriggeredSendDefinition();
            tsd.CustomerKey = iTriggeredSendCustomerKey;
            ts.TriggeredSendDefinition = tsd;

            Subscriber sub = new Subscriber();
            sub.EmailAddress = iEmailAddress;
            sub.SubscriberKey = iEmailAddress;

            ExactTargetSOAPAPI.Attribute firstName = new ExactTargetSOAPAPI.Attribute();
            firstName.Name = "First Name";
            firstName.Value = iFirstName;

            ExactTargetSOAPAPI.Attribute lastName = new ExactTargetSOAPAPI.Attribute();
            lastName.Name = "Last Name";
            lastName.Value = iLastName;

            sub.Attributes = new ExactTargetSOAPAPI.Attribute[] { firstName, lastName };

            ts.Subscribers = new Subscriber[] { sub };

            string sStatus = "";
            string sRequestId = "";

            CreateResult[] aoResults =
                soapClient.Create(new CreateOptions(), new APIObject[] { ts }, out sRequestId, out sStatus);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("Request ID: " + sRequestId);
            foreach (TriggeredSendCreateResult tscr in aoResults)
            {
                if (tscr.SubscriberFailures != null)
                {
                    foreach (SubscriberResult sr in tscr.SubscriberFailures)
                    {
                        Console.WriteLine("ErrorCode: " + sr.ErrorCode);
                        Console.WriteLine("ErrorDescription: " + sr.ErrorDescription);
                    }
                }
            }
        }
Esempio n. 11
0
        public int CreateTriggeredSendDefinition(
            string externalId,
            int emailId,
            string dataExtensionCustomerKey,
            string deliveryProfileCustomerKey,
            string name,
            string description,
            string priority = "")
        {
            var ts = new ExactTargetApi.TriggeredSendDefinition
            {
                Client = _config.ClientId.HasValue ? new ClientID {
                    ID = _config.ClientId.Value, IDSpecified = true
                } : null,
                Email = new ExactTargetApi.Email {
                    ID = emailId, IDSpecified = true
                },
                SendSourceDataExtension = new ExactTargetApi.DataExtension {
                    CustomerKey = dataExtensionCustomerKey
                },
                Name                = name,
                Description         = description,
                CustomerKey         = externalId,
                TriggeredSendStatus = TriggeredSendStatusEnum.Active,
                SendClassification  = new SendClassification
                {
                    CustomerKey = "Default Transactional"
                },
                IsMultipart          = true,
                IsMultipartSpecified = true,
                DeliveryProfile      = new ExactTargetApi.DeliveryProfile
                {
                    CustomerKey = deliveryProfileCustomerKey
                },
                IsWrapped          = true,
                IsWrappedSpecified = true,
                Priority           = priority
            };

            string requestId, status;
            var    result = _client.Create(new CreateOptions(), new APIObject[] { ts }, out requestId, out status);

            ExactTargetResultChecker.CheckResult(result.FirstOrDefault());

            return(result.First().NewID);
        }
Esempio n. 12
0
        public static void CreateEmailSendDefinition(SoapClient soapClient,
                                                     string EmailSendDefinitionName,
                                                     string EmailSendDefinitionCustomerKey,
                                                     int EmailID,
                                                     string SendClassificationCustomerKey,
                                                     string DataExtensionCustomerKey)
        {
            EmailSendDefinition esd = new EmailSendDefinition();

            esd.Name        = EmailSendDefinitionName;
            esd.CustomerKey = EmailSendDefinitionCustomerKey;

            Email em = new Email();

            em.ID          = EmailID;
            em.IDSpecified = true;
            esd.Email      = em;

            SendDefinitionList sdl = new SendDefinitionList();

            sdl.SendDefinitionListType          = SendDefinitionListTypeEnum.SourceList;
            sdl.SendDefinitionListTypeSpecified = true;
            sdl.CustomerKey               = DataExtensionCustomerKey;
            sdl.DataSourceTypeID          = DataSourceTypeEnum.CustomObject;
            sdl.DataSourceTypeIDSpecified = true;
            esd.SendDefinitionList        = new SendDefinitionList[] { sdl };

            SendClassification sc = new SendClassification();

            sc.CustomerKey         = SendClassificationCustomerKey;
            esd.SendClassification = sc;

            string sStatus    = "";
            string sRequestId = "";

            CreateResult[] aoResults = soapClient.Create(new CreateOptions(), new APIObject[] { esd }, out sRequestId, out sStatus);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("Request ID: " + sRequestId);
            foreach (CreateResult cr in aoResults)
            {
                Console.WriteLine("StatusCode: " + cr.StatusCode);
                Console.WriteLine("ErrorCode: " + cr.ErrorCode);
                Console.WriteLine("StatusMessage: " + cr.StatusMessage);
            }
        }
Esempio n. 13
0
        public int CreateEmailTemplate(string externalKey, string name, string html)
        {
            var template = new Template
            {
                Client = _config.ClientId.HasValue ? new ClientID {
                    ID = _config.ClientId.Value, IDSpecified = true
                } : null,
                TemplateName = name,
                CustomerKey  = externalKey,
                LayoutHTML   = html,
            };

            string requestId, status;
            var    result = _client.Create(new CreateOptions(), new APIObject[] { template }, out requestId, out status);

            ExactTargetResultChecker.CheckResult(result.FirstOrDefault()); //we expect only one result because we've sent only one APIObject

            return(result.First().NewID);
        }
        public static void CreateEmailSendDefinition(SoapClient soapClient,
            string EmailSendDefinitionName,
            string EmailSendDefinitionCustomerKey,
            int EmailID,
            string SendClassificationCustomerKey,
            string DataExtensionCustomerKey)
        {
            EmailSendDefinition esd = new EmailSendDefinition();
            esd.Name = EmailSendDefinitionName;
            esd.CustomerKey = EmailSendDefinitionCustomerKey;

            Email em = new Email();
            em.ID = EmailID;
            em.IDSpecified = true;
            esd.Email = em;

            SendDefinitionList sdl = new SendDefinitionList();
            sdl.SendDefinitionListType = SendDefinitionListTypeEnum.SourceList;
            sdl.SendDefinitionListTypeSpecified = true;
            sdl.CustomerKey = DataExtensionCustomerKey;
            sdl.DataSourceTypeID = DataSourceTypeEnum.CustomObject;
            sdl.DataSourceTypeIDSpecified = true;
            esd.SendDefinitionList = new SendDefinitionList[] {sdl};

            SendClassification sc = new SendClassification();
            sc.CustomerKey = SendClassificationCustomerKey;
            esd.SendClassification = sc;

            string sStatus = "";
            string sRequestId = "";

            CreateResult[] aoResults = soapClient.Create(new CreateOptions(), new APIObject[] { esd }, out sRequestId, out sStatus);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("Request ID: " + sRequestId);
            foreach (CreateResult cr in aoResults)
            {
                Console.WriteLine("StatusCode: " + cr.StatusCode);
                Console.WriteLine("ErrorCode: " + cr.ErrorCode);
                Console.WriteLine("StatusMessage: " + cr.StatusMessage);
            }
        }
Esempio n. 15
0
        public static void CreateDateExtension(SoapClient soapClient,
                                               string iDataExtensionName,
                                               string iDataExtensionCustomerKey)
        {
            DataExtension de = new DataExtension();

            de.Name        = iDataExtensionName;
            de.CustomerKey = iDataExtensionCustomerKey;

            de.IsSendable          = true;
            de.IsSendableSpecified = true;

            DataExtensionField def = new DataExtensionField();

            def.Name = "EMAIL";
            de.SendableDataExtensionField = def;

            //Sendable SubscriberField will be "Email Address" by default
            //If SubscriberKey option is enabled then value needs to be "Subscriber Key"
            ExactTargetSOAPAPI.Attribute attr = new ExactTargetSOAPAPI.Attribute();
            attr.Name = "Email Address";
            de.SendableSubscriberField = attr;

            DataExtensionField emailField = new DataExtensionField();

            emailField.Name                  = "EMAIL";
            emailField.FieldType             = DataExtensionFieldType.EmailAddress;
            emailField.FieldTypeSpecified    = true;
            emailField.IsRequired            = true;
            emailField.IsRequiredSpecified   = true;
            emailField.IsPrimaryKey          = true;
            emailField.IsPrimaryKeySpecified = true;
            emailField.MaxLength             = 50;
            emailField.MaxLengthSpecified    = true;

            DataExtensionField fnameField = new DataExtensionField();

            fnameField.Name               = "FIRST NAME";
            fnameField.FieldType          = DataExtensionFieldType.Text;
            fnameField.FieldTypeSpecified = true;

            DataExtensionField lnameField = new DataExtensionField();

            lnameField.Name               = "LAST NAME";
            lnameField.FieldType          = DataExtensionFieldType.Text;
            lnameField.FieldTypeSpecified = true;

            de.Fields = new DataExtensionField[] { emailField, fnameField, lnameField };

            string sStatus    = "";
            string sRequestId = "";

            CreateResult[] aoResults = soapClient.Create(new CreateOptions(), new APIObject[] { de }, out sRequestId, out sStatus);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("Request ID: " + sRequestId);
            foreach (CreateResult cr in aoResults)
            {
                Console.WriteLine("StatusCode: " + cr.StatusCode);
                Console.WriteLine("ErrorCode: " + cr.ErrorCode);
                Console.WriteLine("StatusMessage: " + cr.StatusMessage);
            }
        }
		private static void SendEmail(ref SoapClient client, TriggeredSendDefinition tsd, ref StringBuilder sbReturnString, Subscriber newSub)
		{
			TriggeredSend ts = new TriggeredSend();
			ts.TriggeredSendDefinition = tsd;
			ts.Subscribers = new Subscriber[] { newSub };

			string tsRequestID = "";
			string tsStatus = "";

			try
			{
				//Call the Create method on the TriggeredSend object
				CreateResult[] tsResults = client.Create(new CreateOptions(), new APIObject[] { ts }, out tsRequestID, out tsStatus);

				//Display Results
				Log.Info("[EXACTTARGET] Overall Create Status: " + tsResults, "");
				Log.Info("[EXACTTARGET] Number of Results: " + tsResults.Length, "");
				sbReturnString.Append("<br />[EXACTTARGET] Overall Create Status: " + tsResults).AppendLine();
				sbReturnString.Append("<br />[EXACTTARGET] Number of Results: " + tsResults.Length).AppendLine();
				//lblMessage.Text += "Overall Update Status: " + tsStatus;
				//lblMessage.Text += "<br/>";
				//lblMessage.Text += "Number of Results: " + tsResults.Length;
				//lblMessage.Text += "<br/>";

				//Loop through each object returned and display the StatusMessage
				foreach (TriggeredSendCreateResult tscr in tsResults)
				{
					Log.Info("[EXACTTARGET] Status Message: " + tscr.StatusMessage.ToString(), "");
					sbReturnString.Append("<br />[EXACTTARGET] Status Message: " + tscr.StatusMessage).AppendLine();

                    if (tscr.SubscriberFailures != null)
                    {
                        sbReturnString.Append("<br/>[EXACTTARGET] Subscriber failures: <br/>");

                        foreach (SubscriberResult sr in tscr.SubscriberFailures)
                        {
                            Log.Info(String.Format("[EXACTTARGET] Subscriber failure : ({0}) {1}", sr.ErrorCode, sr.ErrorDescription), "");
                            sbReturnString.Append("<br/>[EXACTTARGET] ErrorDescription: " + sr.ErrorDescription);
                            sbReturnString.Append("<br/>[EXACTTARGET] Error Code: " + sr.ErrorCode + "<br />");
                        }
                    }
				}
			}
			catch (Exception exCreate)
			{

				Log.Error("<br />[EXACTTARGET] CREATE TS ERROR: " + exCreate.Message.ToString(), exCreate, "something went wrong");
				//sbReturnString.Append("[EXACTTARGET] CREATE TS ERROR: " + exCreate.Message).AppendLine();
				//lblMessage.Text += "<br/><br/>CREATE TS ERROR:<br/>" + exCreate.Message;
				throw;
			}
		}
		private static string GetCreateResult(ref SoapClient client, TriggeredSendDefinition tsd, ref StringBuilder sbReturnString)
		{
			string cRequestID = String.Empty;
			string cStatus = String.Empty;

			try
			{
				//Call the Create method on the TriggeredSendDefinition object
				CreateResult[] cResults = client.Create(new CreateOptions(), new APIObject[] { tsd }, out cRequestID, out cStatus);

				Log.Info("[EXACTTARGET] Overall Create Status: " + cStatus, "");
				Log.Info("[EXACTTARGET] Number of Results: " + cResults.Length, "");
				sbReturnString.Append("[EXACTTARGET] Overall Create Status: " + cStatus).AppendLine();
				sbReturnString.Append("[EXACTTARGET] Number of Results: " + cResults.Length).AppendLine();


				////Display Results
				//lblMessage.Text += "Overall Create Status: " + cStatus;
				//lblMessage.Text += "<br/>";
				//lblMessage.Text += "Number of Results: " + cResults.Length;
				//lblMessage.Text += "<br/>";

				//Loop through each object returned and display the StatusMessage
				foreach (CreateResult cr in cResults)
				{
					Log.Info("[EXACTTARGET] Status Message: " + cr.StatusMessage, "");
					sbReturnString.Append("[EXACTTARGET] Status Message: " + cr.StatusMessage).AppendLine();

					//lblMessage.Text += "Status Message: " + cr.StatusMessage;
					//lblMessage.Text += "<br/>";
				}
			}
			catch (Exception exCreate)
			{
				//Set Message
				Log.Error("[EXACTTARGET] CREATE TSD ERROR: " + exCreate.Message.ToString(), exCreate, "something went wrong");
				//lblMessage.Text += "<br/><br/>CREATE TSD ERROR:<br/>" + exCreate.Message;
				// sbReturnString.Append("[EXACTTARGET] CREATE TSD ERROR: " + exCreate.Message.ToString()).AppendLine();
				throw;
			}

			return cStatus;
		}
Esempio n. 18
0
        public static void CreateImportDefinition(SoapClient soapClient,
                                                  string iImportDefinitionName,
                                                  string iImportDefinitionCustomerKey,
                                                  string iTargetDataExtensionCustomerKey,
                                                  string iImportFileName)
        {
            ImportDefinition id = new ImportDefinition();

            id.Name        = iImportDefinitionName;
            id.CustomerKey = iImportDefinitionCustomerKey;

            // Optional value, if AllowErrors is true then it will not stop the import when
            // a single row has an error
            id.AllowErrors          = true;
            id.AllowErrorsSpecified = true;

            // For this example, we are sending to a data extension
            // Value for CustomerKey will be for a data extension already created in your account
            DataExtension de = new DataExtension();

            de.CustomerKey       = iTargetDataExtensionCustomerKey;
            id.DestinationObject = de;

            AsyncResponse ar = new AsyncResponse();

            ar.ResponseType    = AsyncResponseType.email;
            ar.ResponseAddress = "*****@*****.**";
            id.Notification    = ar;

            FileTransferLocation ftl = new FileTransferLocation();

            ftl.CustomerKey = "ExactTarget Enhanced FTP";
            id.RetrieveFileTransferLocation = ftl;

            // Specify how the import will be handled
            // If data extension has no primary key specified then only "Overwrite" will work
            id.UpdateType          = ImportDefinitionUpdateType.AddAndUpdate;
            id.UpdateTypeSpecified = true;

            id.FieldMappingType          = ImportDefinitionFieldMappingType.InferFromColumnHeadings;
            id.FieldMappingTypeSpecified = true;

            id.FileSpec = iImportFileName;

            id.FileType          = FileType.CSV;
            id.FileTypeSpecified = true;

            string sStatus    = "";
            string sRequestId = "";

            CreateResult[] aoResults = soapClient.Create(new CreateOptions(), new APIObject[] { id }, out sRequestId, out sStatus);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("Request ID: " + sRequestId);
            foreach (CreateResult cr in aoResults)
            {
                Console.WriteLine("StatusCode: " + cr.StatusCode);
                Console.WriteLine("ErrorCode: " + cr.ErrorCode);
                Console.WriteLine("StatusMessage: " + cr.StatusMessage);
            }
        }
Esempio n. 19
0
        //public IEnumerable<T> GetAll<T>(string[] properties) where T : APIObject
        //{
        //    RetrieveRequest request = new RetrieveRequest();
        //    request.ObjectType = typeof(T).Name;
        //    request.Properties = properties;

        //    foreach (var result in GetObjectsSoapBinding(request))
        //    {
        //        yield return (T)result;
        //    }
        //}

        public CreateResult[] Save <T>(T record, SaveAction action) where T : APIObject
        {
            CreateOptions co = new CreateOptions();

            co.SaveOptions                 = new SaveOption[1];
            co.SaveOptions[0]              = new SaveOption();
            co.SaveOptions[0].SaveAction   = action;
            co.SaveOptions[0].PropertyName = "*";
            string emailAddress = " ";

            Type t = record.GetType();

            if (t.Name == "Subscriber")
            {
                PropertyInfo propertyInfo = t.GetProperty("EmailAddress");
                emailAddress = propertyInfo.GetValue(record, null).ToString();
            }
            string cRequestID;
            string overallStatus;
            var    results = _client.Create(co, new APIObject[] { record }, out cRequestID, out overallStatus);

            if (!overallStatus.Equals("OK"))
            {
                if (results.Length > 0)
                {
                    if (results[0].StatusMessage == "InvalidEmailAddress")
                    {
                        //Debug.WriteLine("Invalid Email");
                        //Log.Message("Invalid Email {0}", emailAddress);
                        _logging.LogMessage(String.Format("Invalid Email {0}", emailAddress), "Inside Save<T> Method", "Email rejected by the ET system.");
                    }
                    else
                    if (results[0].StatusMessage == "EmailAddressAlreadyExists")
                    {
                        //Debug.WriteLine("Email Address Already Exists");
                        //Log.Message("Email Address Already Exists {0}", emailAddress);
                        _logging.LogMessage(String.Format("Email Address Already Exists {0}", emailAddress), "Inside Save<T> Method", "Email already exists in ET system");
                    }
                    else if (results[0].StatusMessage == "OnListAlready")
                    {
                        //Debug.WriteLine("On List Already");
                        //Log.Message("On List Already", emailAddress);
                        _logging.LogMessage(String.Format("Email Address Already on list {0}", emailAddress), "Inside Save<T> Method", "Email already on list in ET system");
                    }
                    else if (results[0].StatusMessage == "TriggeredSpamFilter")
                    {
                        //Debug.WriteLine("Triggered Spam Filter");
                        //Log.Message("Triggered Spam Filter {0}", emailAddress);
                        _logging.LogMessage(String.Format("Triggered Spam Filter {0}", emailAddress), "Inside Save<T> Method", "Email blocked by ET system");
                    }
                    else
                    {
                        if (results.Length > 0 && results[0].StatusMessage != "OnGlobalUnsubList")
                        {
                            _logging.LogMessage(String.Format("On Global Unsub List {0}", emailAddress),
                                                "Inside Save<T> Method", "Email is on ET system Global Usubscribe List");
                        }
                    }
                }
            }

            if (action.IsOneOf(SaveAction.AddOnly, SaveAction.UpdateAdd))
            {
                if (results.Length == 1)
                {
                    var result = results[0];
                    record.ID = result.NewID;
                }
            }

            return(results);
        }