Beispiel #1
0
        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());
            }
        }
Beispiel #2
0
        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];
        }