static void TestET_Send() { DateTime filterDate = new DateTime(2014, 1, 1, 13, 0, 0); Console.WriteLine("--- Testing Send ---"); ET_Client myclient = new ET_Client(); Console.WriteLine("Retrieve Filtered Send with GetMoreResults"); ET_Send s = new ET_Send(); s.AuthStub = myclient; s.SearchFilter = new SimpleFilterPart() { Property = "SendDate", SimpleOperator = SimpleOperators.greaterThan, DateValue = new DateTime[] { filterDate } }; s.Props = new string[] { "ID", "PartnerKey", "CreatedDate", "ModifiedDate", "Client.ID", "Client.PartnerClientKey", "Email.ID", "Email.PartnerKey", "SendDate", "FromAddress", "FromName", "Duplicates", "InvalidAddresses", "ExistingUndeliverables", "ExistingUnsubscribes", "HardBounces", "SoftBounces", "OtherBounces", "ForwardedEmails", "UniqueClicks", "UniqueOpens", "NumberSent", "NumberDelivered", "NumberTargeted", "NumberErrored", "NumberExcluded", "Unsubscribes", "MissingAddresses", "Subject", "PreviewURL", "SentDate", "EmailName", "Status", "IsMultipart", "SendLimit", "SendWindowOpen", "SendWindowClose", "IsAlwaysOn", "Additional", "BCCEmail", "EmailSendDefinition.ObjectID", "EmailSendDefinition.CustomerKey" }; GetReturn sGet = s.Get(); Console.WriteLine("Get Status: " + sGet.Status.ToString()); Console.WriteLine("Message: " + sGet.Message.ToString()); Console.WriteLine("Code: " + sGet.Code.ToString()); Console.WriteLine("Results Length: " + sGet.Results.Length); Console.WriteLine("MoreResults: " + sGet.MoreResults.ToString()); foreach (ET_Send send in sGet.Results) { Console.WriteLine("JobID: " + send.ID + ", SendDate: " + send.SendDate); } while (sGet.MoreResults) { Console.WriteLine("Continue Retrieve Filtered Send with GetMoreResults"); sGet = s.GetMoreResults(); Console.WriteLine("Get Status: " + sGet.Status.ToString()); Console.WriteLine("Message: " + sGet.Message.ToString()); Console.WriteLine("Code: " + sGet.Code.ToString()); Console.WriteLine("Results Length: " + sGet.Results.Length); Console.WriteLine("MoreResults: " + sGet.MoreResults.ToString()); } }
public void Execute(IJobExecutionContext context) { try { HelperDatabase conexionBD = new HelperDatabase("putyoursqlormysqlserverhere", "putyourdbnamehere", "user", "password", (int)HelperDatabase.typeConn.MYSQL,3306); conexionBD.Connect(); var objResult = conexionBD.Execute("SELECT Value from Configuration where Name='LastPollTime'"); conexionBD.Disconnect(); if (objResult.error != null) { Console.WriteLine("Error retrieving last poll timestamp."); } DateTime lastPollTimeStamp =DateTime.Parse (objResult.rows[0][0].ToString()); ET_Client client = new ET_Client(); Console.WriteLine("Establishing Connection..."); ET_Send sendObject=new ET_Send(); sendObject.AuthStub = client; sendObject.SearchFilter = new SimpleFilterPart() { Property = "SendDate", SimpleOperator = SimpleOperators.greaterThan, DateValue = new DateTime[] { lastPollTimeStamp } }; //sendObject.Props = new string[] { "ID", "PartnerKey", "CreatedDate", "ModifiedDate", "Client.ID", "Client.PartnerClientKey", "Email.ID", "Email.PartnerKey", "SendDate", "FromAddress", "FromName", "Duplicates", "InvalidAddresses", "ExistingUndeliverables", "ExistingUnsubscribes", "HardBounces", "SoftBounces", "OtherBounces", "ForwardedEmails", "UniqueClicks", "UniqueOpens", "NumberSent", "NumberDelivered", "NumberTargeted", "NumberErrored", "NumberExcluded", "Unsubscribes", "MissingAddresses", "Subject", "PreviewURL", "SentDate", "EmailName", "Status", "IsMultipart", "SendLimit", "SendWindowOpen", "SendWindowClose", "IsAlwaysOn", "Additional", "BCCEmail", "EmailSendDefinition.ObjectID", "EmailSendDefinition.CustomerKey" }; GetReturn response = sendObject.Get(); Console.WriteLine("---Results obtained---"); foreach (ET_Send send in response.Results) { conexionBD.Connect(); var insertNewSendRecord = conexionBD.Execute("INSERT INTO SentData "); conexionBD.Disconnect(); if (objResult.error != null){ Console.WriteLine("Error updating last poll timestamp."); } string subject = send.Subject; string status = send.Status; if (!subject.StartsWith("Test Send") && status.Equals("Complete")){ string previewUrl = send.PreviewURL; string domain = send.FromAddress; string templateName = send.EmailName; DateTime sentDate = send.SendDate; int targetedNumber = send.NumberTargeted; int uniqueClicks = send.UniqueClicks; string fromAdress = send.FromAddress; string fromName = send.FromName; conexionBD.Connect(); var insertStatement = String.Format("INSERT INTO SentData(Url,Domain,Date,Subject,Template_Name) values ('{0}','{1}','{2}','{3}','{4}')", previewUrl, domain, sentDate.ToString("yyyy-MM-dd HH:mm:ss"), subject.Trim(), templateName); var updatePollTimeResult = conexionBD.Execute(insertStatement); conexionBD.Disconnect(); if (updatePollTimeResult.error != null) { Console.WriteLine("Error updating last poll timestamp."); } } } } catch (Exception ConnectionException){ Console.WriteLine("Failed to do polling Job."); Console.WriteLine(ConnectionException.Message); } }
private string GetEmailName(ET_Client client, int sendID) { if (!_names.ContainsKey(sendID)) { ET_Send send = new ET_Send(); send.AuthStub = client; send.Props = new string[] { "ID", "EmailName", }; send.SearchFilter = new SimpleFilterPart() { Property = "ID", SimpleOperator = SimpleOperators.equals, Value = new string[] { Convert.ToString(sendID) }, }; GetReturn results = send.Get(); if (results.Results.Length > 0) { ET_Send item = (ET_Send)results.Results[0]; _names[sendID] = item.EmailName.Trim(); } } return _names[sendID]; }