/// <summary>
        ///  This enumerates all sends
        /// </summary>
        /// <returns>The sends.</returns>
        /// <param name="startDate">Start date.</param>
        /// <param name="endDate">End date.</param>
        /// <param name="daysToCountBackForSends">Days to count back for sends.</param>
        public IEnumerable <APIObject> GetSends(DateTime startDate, DateTime endDate, int daysToCountBackForSends = 30)
        {
            SimpleFilterPart dateFilter = new SimpleFilterPart();

            dateFilter.Property       = "SendDate";
            dateFilter.SimpleOperator = SimpleOperators.between;
            dateFilter.DateValue      = new DateTime[2];
            dateFilter.DateValue[0]   = startDate.AddDays(-1 * daysToCountBackForSends);
            dateFilter.DateValue[1]   = endDate;

            var rr = new RetrieveRequest();

            rr.ClientIDs = new ClientID[] { new ClientID()
                                            {
                                                ID = _auth.ClientId.Value, IDSpecified = true
                                            } };
            rr.ObjectType = "Send";
            rr.Properties = new string[] { "ID", "Additional", "SendDate", "SentDate", "EmailName" };
            rr.Filter     = dateFilter;

            var result = RetrieveAsync(rr);

            if (result.OverallStatus.ToLower().StartsWith("error"))
            {
                var err = String.Format("ExactTarget API returned status: {0} requestId: {1}", result.OverallStatus, result.RequestID);
                throw new Exception(err);
            }

            return(result.Results);
        }
        public static void RetrieveImportResultsSummary(SoapClient soapClient,
            string TaskID)
        {
            RetrieveRequest rr = new RetrieveRequest();

            rr.ObjectType = "ImportResultsSummary";

            SimpleFilterPart sf = new SimpleFilterPart();
            sf.Property = "TaskResultID";
            sf.SimpleOperator = SimpleOperators.equals;
            sf.Value = new String[] { TaskID };
            rr.Filter = sf;

            rr.Properties = new string[] { "ImportStatus" };

            string sStatus = "";
            string sRequestId = "";
            APIObject[] rResults;

            sStatus = soapClient.Retrieve(rr, out sRequestId, out rResults);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("RequestID: " + sRequestId);

            foreach (ImportResultsSummary irs in rResults)
            {
                // Possible values for ImportStatus are New, Processing, Completed, Error, IOWork, and Unknown
                Console.WriteLine("ImportStatus: " + irs.ImportStatus);
            }
        }
Example #3
0
        public static void RetrieveImportResultsSummary(SoapClient soapClient,
                                                        string TaskID)
        {
            RetrieveRequest rr = new RetrieveRequest();

            rr.ObjectType = "ImportResultsSummary";

            SimpleFilterPart sf = new SimpleFilterPart();

            sf.Property       = "TaskResultID";
            sf.SimpleOperator = SimpleOperators.equals;
            sf.Value          = new String[] { TaskID };
            rr.Filter         = sf;

            rr.Properties = new string[] { "ImportStatus" };

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

            APIObject[] rResults;

            sStatus = soapClient.Retrieve(rr, out sRequestId, out rResults);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("RequestID: " + sRequestId);

            foreach (ImportResultsSummary irs in rResults)
            {
                // Possible values for ImportStatus are New, Processing, Completed, Error, IOWork, and Unknown
                Console.WriteLine("ImportStatus: " + irs.ImportStatus);
            }
        }
Example #4
0
        public void descargaOpen(String jobid, BackgroundWorker bgw)
        {
            EmailInfo einf = new EmailInfo();
            Send objSend = einf.getEmailInformationOpenSent(jobid);
            double deci = Convert.ToDouble(objSend.UniqueOpens);
            Conexion conex =new Conexion();

            RetrieveRequest rr = new RetrieveRequest();
            rr.ObjectType = "OpenEvent";

            String[] props = { "SubscriberKey" };
            rr.Properties = props;
            /**
            * Details for single JobId/SendId
            */
            SimpleFilterPart filter = new SimpleFilterPart();
            filter.Property = "SendID";
            String[] vlaues = { jobid + " " };
            filter.Value = vlaues;

            rr.Filter = filter;

            APIObject[] results = null;
            String requestId = null;
            String status;
            List<String> lista = new List<String>();
            int k = 0;
            int porcentaje;

            do
            {
                status = conex.cliente.Retrieve(rr, out requestId, out results);
                for (int i = 0; i < results.Length; i++)
                {
                    OpenEvent deo = results[i] as OpenEvent;
                    string parte3 = deo.SubscriberKey;
                    var newLine = string.Format("{0}", parte3);
                    lista.Add(newLine);
                    porcentaje = Convert.ToInt32((k / deci) * 100);
                    if (porcentaje > 100) porcentaje = 100;
                    bgw.ReportProgress(porcentaje);
                    k++;
                }
                rr = new RetrieveRequest();
                rr.ContinueRequest = requestId;
                System.Console.Out.WriteLine("Procesando....");
                System.Console.Out.WriteLine(results.Length);
            } while (status.Equals("MoreDataAvailable"));
            List<String> sinDup = lista.Distinct().ToList();
            System.Console.Out.WriteLine("Descarga Completa!");
            StreamWriter file = new StreamWriter(@"D:\ET_EXTRACTOR\Open_" + jobid + ".txt", true);
            System.Console.Out.WriteLine("Formateando");
            for (int j = 0; j < sinDup.Count; j++)
            {
                file.WriteLine(sinDup.ElementAt(j));
            }
            file.Close();
            bgw.ReportProgress(0);
        }
Example #5
0
        public void RetrieveFolderStructure(string id, ET_Client etClient, string contentType, string path)
        {
            // Create the SOAP binding for call.
                BasicHttpBinding binding = new BasicHttpBinding();
                binding.Name = "UserNameSoapBinding";
                binding.Security.Mode = BasicHttpSecurityMode.TransportWithMessageCredential;
                binding.MaxReceivedMessageSize = 2147483647;
                var client = new FuelSDK.SoapClient(binding, etClient.soapclient.Endpoint.Address);
                client.ClientCredentials.UserName.UserName = "******";
                client.ClientCredentials.UserName.Password = "******";

                using (var scope = new OperationContextScope(client.InnerChannel))
                {
                    // Add oAuth token to SOAP header.
                    XNamespace ns = "http://exacttarget.com";
                    var oauthElement = new XElement(ns + "oAuthToken", etClient.internalAuthToken);
                    var xmlHeader = MessageHeader.CreateHeader("oAuth", "http://exacttarget.com", oauthElement);
                    OperationContext.Current.OutgoingMessageHeaders.Add(xmlHeader);

                    List<object> folders = new List<object>();

                    String requestID;
                    String status;
                    APIObject[] results;

                    SimpleFilterPart sfp = new SimpleFilterPart();
                    sfp.Property = "ContentType";
                    sfp.SimpleOperator = SimpleOperators.equals;
                    sfp.Value = new string[] { contentType };

                    SimpleFilterPart rf = new SimpleFilterPart();
                    rf.Property = "ParentFolder.ID";
                    rf.SimpleOperator = SimpleOperators.equals;
                    rf.Value = new string[] { id };

                    ComplexFilterPart cfp = new ComplexFilterPart();
                    cfp.LeftOperand = sfp;
                    cfp.LogicalOperator = LogicalOperators.AND;
                    cfp.RightOperand = rf;

                    RetrieveRequest rr = new RetrieveRequest();

                    rr.ObjectType = "DataFolder";
                    rr.Properties = new string[] { "ID", "Name", "ParentFolder.ID", "ParentFolder.Name" };
                    rr.Filter = cfp;

                    status = client.Retrieve(rr, out requestID, out results);

                    if (results.Count() > 0)
                    {
                        foreach (DataFolder df in results)
                        {
                            RetrieveObjectsByFolderID(df.ID.ToString(), etClient, path + "/" + df.Name + "/", contentType);
                            RetrieveFolderStructure(df.ID.ToString(), etClient, contentType, path + "/" + df.Name + "/");
                        }
                    }
                }
        }
        public Dictionary <string, Dictionary <string, string> > GetDataExtension()
        {
            Dictionary <string, Dictionary <string, string> > dict = new Dictionary <string, Dictionary <string, string> >();
            SoapClient client = new SoapClient();

            client.ClientCredentials.UserName.UserName = "******";
            client.ClientCredentials.UserName.Password = "******";
            APIObject[]      Results;
            String           requestID;
            String           status;
            RetrieveRequest1 rr1 = new RetrieveRequest1();
            RetrieveRequest  rr  = new RetrieveRequest();

            rr.ObjectType = "DataExtensionObject[Alert_Inbox]";
            rr.Properties = new string[] {
                "Alert_Category", "Alert_Subject"
            };
            rr1.RetrieveRequest = rr;
            SimpleFilterPart sf = new SimpleFilterPart();

            sf.SimpleOperator = SimpleOperators.equals;
            sf.Property       = "ET_Surrogate_ID";

            try
            {
                //var result = Task.Run(async () => client.RetrieveAsync(rr1));
                // var values = result.GetAwaiter().GetResult().GetAwaiter().GetResult();
                var results = client.Retrieve(rr, out requestID, out Results);
                if (Results.Length > 0)
                {
                    for (int i = 0; i < Results.Length; i++)
                    {
                        DataExtensionObject deo = (DataExtensionObject)Results[i];

                        Dictionary <string, string> props = new Dictionary <string, string>();
                        string transactionID = "";

                        foreach (APIProperty prop in deo.Properties)
                        {
                            if (prop.Name == "ET_Transaction_ID")
                            {
                                transactionID = prop.Value;
                            }

                            props[prop.Name] = prop.Value;
                        }

                        dict[transactionID] = props;
                    }
                }
            }
            catch (Exception e)
            {
            }
            //var results =   client.RetrieveAsync(rr1);
            return(dict);
        }
Example #7
0
        public Subscriber GetSubscriberByEmail(string email)
        {
            SimpleFilterPart sfp = new SimpleFilterPart();

            sfp.Property = "EmailAddress";
            sfp.Value    = new string[] { email };

            return(_client.Get <Subscriber>(sfp, _defaultColumns));
        }
Example #8
0
        //private static string[] _defaultSubscriberColumns = new string[] { "ID", "SubscriberKey" };

        public Subscriber GetSubscriberBySLXID(string slxId)
        {
            SimpleFilterPart sfp = new SimpleFilterPart();

            sfp.Property       = "SubscrierKey";
            sfp.Value          = new string[] { slxId };
            sfp.SimpleOperator = SimpleOperators.equals;

            return(_client.Get <Subscriber>(sfp, _defaultColumns));
        }
Example #9
0
        public IEnumerable <ListSubscriber> GetSubscribersOnList(ExactTargetClient.List list)
        {
            SimpleFilterPart filter = new SimpleFilterPart();

            filter.Property       = "ListID";
            filter.SimpleOperator = SimpleOperators.equals;
            filter.Value          = new string[] { list.ID.ToString() };

            return(_client.GetMany <ListSubscriber>(filter, new string[] { "SubscriberKey", "Status" }));
        }
Example #10
0
        public ExactTargetClient.List GetList(int listID)
        {
            SimpleFilterPart sfp = new SimpleFilterPart();

            sfp.Property       = "ID";
            sfp.SimpleOperator = SimpleOperators.equals;
            sfp.Value          = new string[] { listID.ToString() };

            var client = new ETClient();

            return(client.Get <List>(sfp, new string[] { "ObjectID", "ListName", "ID" }));
        }
        public static void RetrieveAutomation(SoapClient soapClient,
                                              string iAutomationCustomerKey)
        {
            RetrieveRequest rr = new RetrieveRequest();

            rr.ObjectType = "Automation";

            SimpleFilterPart sf = new SimpleFilterPart();

            sf.Property       = "CustomerKey";
            sf.SimpleOperator = SimpleOperators.equals;
            sf.Value          = new String[] { iAutomationCustomerKey };
            rr.Filter         = sf;

            rr.Properties = new string[] { "ObjectID", "Name", "Description", "Schedule.ID", "CustomerKey", "IsActive", "CreatedDate", "ModifiedDate", "Status" };

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

            APIObject[] rResults;

            sStatus = soapClient.Retrieve(rr, out sRequestId, out rResults);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("RequestID: " + sRequestId);

            foreach (Automation automation in rResults)
            {
                Console.WriteLine("ObjectID: " + automation.ObjectID);
                Console.WriteLine("Name: " + automation.Name);
                Console.WriteLine("Description: " + automation.Description);
                if (automation.Schedule != null)
                {
                    Console.WriteLine("Schedule.ID: " + automation.Schedule.ID);
                }
                Console.WriteLine("CustomerKey: " + automation.CustomerKey);
                Console.WriteLine("IsActive: " + automation.IsActive);
                Console.WriteLine("CreatedDate: " + automation.CreatedDate.ToString());
                Console.WriteLine("ModifiedDate: " + automation.ModifiedDate);
                Console.WriteLine("Status: " + automation.Status);
            }
        }
        public static void RetrieveAutomation(SoapClient soapClient,
            string iAutomationCustomerKey)
        {
            RetrieveRequest rr = new RetrieveRequest();
            rr.ObjectType = "Automation";

            SimpleFilterPart sf = new SimpleFilterPart();
            sf.Property = "CustomerKey";
            sf.SimpleOperator = SimpleOperators.equals;
            sf.Value = new String[] { iAutomationCustomerKey };
            rr.Filter = sf;

            rr.Properties = new string[] { "ObjectID", "Name", "Description", "Schedule.ID", "CustomerKey",  "IsActive", "CreatedDate",  "ModifiedDate", "Status"};

            string sStatus = "";
            string sRequestId = "";
            APIObject[] rResults;

            sStatus = soapClient.Retrieve(rr, out sRequestId, out rResults);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("RequestID: " + sRequestId);

            foreach (Automation automation in rResults)
            {
                Console.WriteLine("ObjectID: " + automation.ObjectID);
                Console.WriteLine("Name: " + automation.Name);
                Console.WriteLine("Description: " + automation.Description);
                if (automation.Schedule != null)
                {
                    Console.WriteLine("Schedule.ID: " + automation.Schedule.ID);
                }
                Console.WriteLine("CustomerKey: " + automation.CustomerKey);
                Console.WriteLine("IsActive: " + automation.IsActive);
                Console.WriteLine("CreatedDate: " + automation.CreatedDate.ToString());
                Console.WriteLine("ModifiedDate: " + automation.ModifiedDate);
                Console.WriteLine("Status: " + automation.Status);
            }
        }
Example #13
0
        public static void RetrieveSend(SoapClient soapClient,
                                        string JobID)
        {
            RetrieveRequest rr = new RetrieveRequest();

            rr.ObjectType = "Send";

            SimpleFilterPart sf = new SimpleFilterPart();

            sf.Property       = "ID";
            sf.SimpleOperator = SimpleOperators.equals;
            sf.Value          = new String[] { JobID };
            rr.Filter         = sf;

            rr.Properties = new string[] { "ID", "SendDate", "NumberSent", "NumberDelivered", "HardBounces", "SoftBounces", "OtherBounces", "Unsubscribes", "Status" };

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

            APIObject[] rResults;

            sStatus = soapClient.Retrieve(rr, out sRequestId, out rResults);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("RequestID: " + sRequestId);

            foreach (Send s in rResults)
            {
                Console.WriteLine("ID (JobID): " + s.ID);
                Console.WriteLine("SendDate: " + s.SendDate.ToString());
                Console.WriteLine("NumberSent: " + s.NumberSent);
                Console.WriteLine("NumberDelivered: " + s.NumberDelivered);
                Console.WriteLine("SoftBounces: " + s.SoftBounces);
                Console.WriteLine("OtherBounces: " + s.OtherBounces);
                Console.WriteLine("Unsubscribes: " + s.Unsubscribes);
                Console.WriteLine("Status: " + s.Status);
            }
        }
Example #14
0
        public Send getEmailInformationOpenSent(String jobid)
        {
            Conexion conex = new Conexion();

            RetrieveRequest rr = new RetrieveRequest();
            rr.ObjectType = "Send";

            String[] props = { "UniqueOpens", "NumberSent" };
            rr.Properties = props;

            SimpleFilterPart filter = new SimpleFilterPart();
            filter.Property = "ID";
            String[] vlaues = { jobid + " " };
            filter.Value = vlaues;

            rr.Filter = filter;

            APIObject[] results = null;
            String requestId = null;
            String status;
            List<String> lista = new List<String>();
            Send obj=null;
            status = conex.cliente.Retrieve(rr, out requestId, out results);

            while (status.CompareTo("OK") != 0)
            {
                status = conex.cliente.Retrieve(rr, out requestId, out results);

            }

            for (int i = 0; i < results.Length; i++)
            {
                  Send deo = results[i] as Send;
                  obj = deo;
            }
            return obj;
        }
        public static void RetrieveSend(SoapClient soapClient,
            string JobID)
        {
            RetrieveRequest rr = new RetrieveRequest();

            rr.ObjectType = "Send";

            SimpleFilterPart sf = new SimpleFilterPart();
            sf.Property = "ID";
            sf.SimpleOperator = SimpleOperators.equals;
            sf.Value = new String[] { JobID };
            rr.Filter = sf;

            rr.Properties = new string[] { "ID", "SendDate", "NumberSent", "NumberDelivered", "HardBounces", "SoftBounces", "OtherBounces", "Unsubscribes", "Status" };

            string sStatus = "";
            string sRequestId = "";
            APIObject[] rResults;

            sStatus = soapClient.Retrieve(rr, out sRequestId, out rResults);

            Console.WriteLine("Status: " + sStatus);
            Console.WriteLine("RequestID: " + sRequestId);

            foreach (Send s in rResults)
            {
                Console.WriteLine("ID (JobID): " + s.ID);
                Console.WriteLine("SendDate: " + s.SendDate.ToString());
                Console.WriteLine("NumberSent: " + s.NumberSent);
                Console.WriteLine("NumberDelivered: " + s.NumberDelivered);
                Console.WriteLine("SoftBounces: " + s.SoftBounces);
                Console.WriteLine("OtherBounces: " + s.OtherBounces);
                Console.WriteLine("Unsubscribes: " + s.Unsubscribes);
                Console.WriteLine("Status: " + s.Status);
            }
        }
Example #16
0
        public void GetDataExtension()
        {
            client.ClientCredentials.UserName.UserName = "******";
            client.ClientCredentials.UserName.Password = "******";
            APIObject[]      Results;
            String           requestID;
            String           status;
            RetrieveRequest1 rr1 = new RetrieveRequest1();
            RetrieveRequest  rr  = new RetrieveRequest();

            rr.ObjectType = "DataExtensionObject[Alert_Inbox]";
            rr.Properties = new string[] {
                "Alert_Category", "Alert_Subject"
            };
            rr1.RetrieveRequest = rr;
            SimpleFilterPart sf = new SimpleFilterPart();

            sf.SimpleOperator = SimpleOperators.equals;
            sf.Property       = "ET_Surrogate_ID";

            //var results =   client.RetrieveAsync(rr1);
            var result = Task.Run(async() => client.RetrieveAsync(rr1));
            var values = result.GetAwaiter().GetResult().GetAwaiter().GetResult();
        }
Example #17
0
        static void TestET_Folder()
        {
            string NewFolderName    = "Testing C Sharp SDK";
            int    ParentIDForEmail = 0;
            string ContentType      = "email";

            ET_Client myclient = new ET_Client();

            Console.WriteLine("--- Testing Folder ---");

            Console.WriteLine("\n Retrieve All Folder with GetMoreResults");
            ET_Folder getAllFolder = new ET_Folder();

            getAllFolder.AuthStub = myclient;
            getAllFolder.Props    = new string[] { "ID", "Client.ID", "ParentFolder.ID", "ParentFolder.CustomerKey", "ParentFolder.ObjectID", "ParentFolder.Name", "ParentFolder.Description", "ParentFolder.ContentType", "ParentFolder.IsActive", "ParentFolder.IsEditable", "ParentFolder.AllowChildren", "Name", "Description", "ContentType", "IsActive", "IsEditable", "AllowChildren", "CreatedDate", "ModifiedDate", "Client.ModifiedBy", "ObjectID", "CustomerKey", "Client.EnterpriseID", "Client.CreatedBy" };
            GetReturn grAllFolder = getAllFolder.Get();

            Console.WriteLine("Get Status: " + grAllFolder.Status.ToString());
            Console.WriteLine("Message: " + grAllFolder.Message.ToString());
            Console.WriteLine("Code: " + grAllFolder.Code.ToString());
            Console.WriteLine("Results Length: " + grAllFolder.Results.Length);

            while (grAllFolder.MoreResults)
            {
                Console.WriteLine("\n Continue Retrieve All Folders with GetMoreResults");
                grAllFolder = getAllFolder.GetMoreResults();
                Console.WriteLine("Get Status: " + grAllFolder.Status.ToString());
                Console.WriteLine("Message: " + grAllFolder.Message.ToString());
                Console.WriteLine("Code: " + grAllFolder.Code.ToString());
                Console.WriteLine("Results Length: " + grAllFolder.Results.Length);
            }


            Console.WriteLine("\n Retrieve Specific Folder for Email Folder ParentID");
            ET_Folder getFolder = new ET_Folder();

            getFolder.AuthStub = myclient;
            SimpleFilterPart ParentFolderFilter = new SimpleFilterPart()
            {
                Property = "ParentFolder.ID", SimpleOperator = SimpleOperators.equals, Value = new string[] { "0" }
            };
            SimpleFilterPart ContentTypeFilter = new SimpleFilterPart()
            {
                Property = "ContentType", SimpleOperator = SimpleOperators.equals, Value = new string[] { "Email" }
            };

            getFolder.SearchFilter = new ComplexFilterPart()
            {
                LeftOperand = ParentFolderFilter, RightOperand = ContentTypeFilter, LogicalOperator = LogicalOperators.AND
            };
            getFolder.Props = new string[] { "ID", "Name", "Description" };
            GetReturn grFolder = getFolder.Get();

            Console.WriteLine("Get Status: " + grFolder.Status.ToString());
            Console.WriteLine("Message: " + grFolder.Message.ToString());
            Console.WriteLine("Code: " + grFolder.Code.ToString());
            Console.WriteLine("Results Length: " + grFolder.Results.Length);

            foreach (ET_Folder ef in grFolder.Results)
            {
                ParentIDForEmail = ef.ID;
            }


            if (ParentIDForEmail != 0)
            {
                Console.WriteLine("\n Create Folder");
                ET_Folder fold = new ET_Folder();
                fold.Name            = NewFolderName;
                fold.Description     = NewFolderName;
                fold.CustomerKey     = NewFolderName;
                fold.AuthStub        = myclient;
                fold.ParentFolder    = new ET_Folder();
                fold.ParentFolder.ID = ParentIDForEmail;
                fold.ContentType     = ContentType;
                fold.IsEditable      = true;
                PostReturn prFolder = fold.Post();

                Console.WriteLine("Post Status: " + prFolder.Status.ToString());
                Console.WriteLine("Message: " + prFolder.Message.ToString());
                Console.WriteLine("Code: " + prFolder.Code.ToString());
                Console.WriteLine("Results Length: " + prFolder.Results.Length);

                foreach (ResultDetail rd in prFolder.Results)
                {
                    Console.WriteLine("--Status Code: " + rd.StatusCode);
                    Console.WriteLine("--Status Message: " + rd.StatusMessage);
                }

                Console.WriteLine("\n Retrieve newly created Folder");
                ET_Folder getNewFolder = new ET_Folder();
                getNewFolder.AuthStub     = myclient;
                getNewFolder.SearchFilter = new SimpleFilterPart()
                {
                    Property = "CustomerKey", SimpleOperator = SimpleOperators.equals, Value = new string[] { NewFolderName }
                };
                getNewFolder.Props = new string[] { "ID", "Name", "Description" };
                GetReturn grNewFolder = getNewFolder.Get();

                Console.WriteLine("Get Status: " + grNewFolder.Status.ToString());
                Console.WriteLine("Message: " + grFolder.Message.ToString());
                Console.WriteLine("Code: " + grNewFolder.Code.ToString());
                Console.WriteLine("Results Length: " + grNewFolder.Results.Length);

                foreach (ET_Folder ef in grNewFolder.Results)
                {
                    Console.WriteLine("--Name: " + ef.Name + " - Description:" + ef.Description);
                }

                Console.WriteLine("\n UpdateFolder");
                ET_Folder patchFolder = new ET_Folder();
                patchFolder.AuthStub    = myclient;
                patchFolder.CustomerKey = NewFolderName;
                patchFolder.Description = "Now with a new Description";
                PatchReturn patchResponse = patchFolder.Patch();

                Console.WriteLine("Patch Status: " + patchResponse.Status.ToString());
                Console.WriteLine("Message: " + patchResponse.Message.ToString());
                Console.WriteLine("Code: " + patchResponse.Code.ToString());
                Console.WriteLine("Results Length: " + patchResponse.Results.Length);

                if (patchResponse.Status)
                {
                    Console.WriteLine("\n Retrieve updated Folder");
                    grNewFolder = getNewFolder.Get();

                    Console.WriteLine("Get Status: " + grNewFolder.Status.ToString());
                    Console.WriteLine("Message: " + grFolder.Message.ToString());
                    Console.WriteLine("Code: " + grNewFolder.Code.ToString());
                    Console.WriteLine("Results Length: " + grNewFolder.Results.Length);

                    foreach (ET_Folder ef in grNewFolder.Results)
                    {
                        Console.WriteLine("--Name: " + ef.Name + " - Description:" + ef.Description);
                    }
                }

                Console.WriteLine("\n Delete Folder");
                ET_Folder delFolder = new ET_Folder();
                delFolder.AuthStub    = myclient;
                delFolder.CustomerKey = NewFolderName;
                FuelSDK.DeleteReturn drFolder = delFolder.Delete();
                Console.WriteLine("Delete Status: " + drFolder.Status.ToString());
                Console.WriteLine("Message: " + drFolder.Message.ToString());
                Console.WriteLine("Code: " + drFolder.Code.ToString());
                Console.WriteLine("Results Length: " + drFolder.Results.Length);

                foreach (ResultDetail rd in drFolder.Results)
                {
                    Console.WriteLine("--Status Code: " + rd.StatusCode);
                    Console.WriteLine("--Status Message: " + rd.StatusMessage);
                }

                Console.WriteLine("\n Retrieve Folder to confirm deletion");
                grNewFolder = getNewFolder.Get();

                Console.WriteLine("Get Status: " + grNewFolder.Status.ToString());
                Console.WriteLine("Message: " + grFolder.Message.ToString());
                Console.WriteLine("Code: " + grNewFolder.Code.ToString());
                Console.WriteLine("Results Length: " + grNewFolder.Results.Length);

                foreach (ET_Folder ef in grNewFolder.Results)
                {
                    Console.WriteLine("--Name: " + ef.Name + " - Description:" + ef.Description);
                }
            }
        }
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                // Local Variables.
                APIObject[] results = null;
                String requestId = null;
                String SOAPEndPoint = context.Session["SOAPEndPoint"].ToString();
                String internalOauthToken = context.Session["internalOauthToken"].ToString();
                String search = context.Request.QueryString["search"].ToString().Trim();

                // Create the SOAP binding for call.
                BasicHttpBinding binding = new BasicHttpBinding();
                binding.Name = "UserNameSoapBinding";
                binding.Security.Mode = BasicHttpSecurityMode.TransportWithMessageCredential;
                binding.MaxReceivedMessageSize = 2147483647;
                var client = new SoapClient(binding, new EndpointAddress(new Uri(SOAPEndPoint)));
                client.ClientCredentials.UserName.UserName = "******";
                client.ClientCredentials.UserName.Password = "******";

                using (var scope = new OperationContextScope(client.InnerChannel))
                {
                    // Add oAuth token to SOAP header.
                    XNamespace ns = "http://exacttarget.com";
                    var oauthElement = new XElement(ns + "oAuthToken", internalOauthToken);
                    var xmlHeader = MessageHeader.CreateHeader("oAuth", "http://exacttarget.com", oauthElement);
                    OperationContext.Current.OutgoingMessageHeaders.Add(xmlHeader);

                    // Setup RetrieveRequest for Subscriber object.
                    RetrieveRequest retrieveRequest = new RetrieveRequest();
                    retrieveRequest.ObjectType = "Subscriber";
                    String[] props = { "ID", "EmailAddress", "SubscriberKey", "Status" };
                    retrieveRequest.Properties = props;

                    // Query filter using Simplefilter.
                    SimpleFilterPart sfp = new SimpleFilterPart();
                    sfp.Property = "SubscriberKey";
                    sfp.SimpleOperator = SimpleOperators.like;
                    sfp.Value = new String[] { search.Trim() };

                    // Query filter using Simplefilter.
                    SimpleFilterPart sfp2 = new SimpleFilterPart();
                    sfp2.Property = "EmailAddress";
                    sfp2.SimpleOperator = SimpleOperators.like;
                    sfp2.Value = new String[] { search.Trim() };

                    // Complexfilter to OR the two SimpleFilters.
                    ComplexFilterPart cfp = new ComplexFilterPart();
                    cfp.LeftOperand = sfp;
                    cfp.RightOperand = sfp2;
                    cfp.LogicalOperator = LogicalOperators.OR;

                    // Use the ComplexFilter in RetrieveRequest.
                    retrieveRequest.Filter = cfp;

                    // Retrieve the subscribers.
                    String response = client.Retrieve(retrieveRequest, out requestId, out results);

                    // If results returned, loop through them a convert to JSON.
                    if (response != null && response.ToLower().Equals("ok"))
                    {
                        String strResults = string.Empty;
                        strResults += @"{""subscribers"": [";

                        if (results != null && results.Length > 0)
                        {
                            int i = 1;
                            foreach (Subscriber sub in results)
                            {
                                // Converting desired properties into JSON.
                                strResults += @"{""ID"":" + JsonConvert.SerializeObject(sub.ID).ToString().Trim() + ", ";
                                strResults += @"""EmailAddress"":" + JsonConvert.SerializeObject(sub.EmailAddress).ToString().Trim() + ", ";
                                strResults += @"""SubscriberKey"":" + JsonConvert.SerializeObject(sub.SubscriberKey).ToString().Trim() + ", ";
                                strResults += @"""Status"":" + JsonConvert.SerializeObject(sub.Status.ToString()).ToString().Trim() + " }";
                                if (i < results.Length)
                                    strResults += ", ";
                                i++;
                            }
                            strResults += " ]}";
                            // Return the resulting JSON from handler.
                            context.Response.Write(strResults);
                        }
                        else
                            context.Response.Write(@"{""subscribers"": []}");
                    }
                    else
                    {
                        context.Response.Write(@"{""subscribers"": []}");
                    }
                }
            }
            catch (Exception ex)
            {
                context.Response.Write(ex);
            }
        }
Example #19
0
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                // Local Variables.
                APIObject[] results            = null;
                String      requestId          = null;
                String      SOAPEndPoint       = context.Session["SOAPEndPoint"].ToString();
                String      internalOauthToken = context.Session["internalOauthToken"].ToString();
                String      id = context.Request.QueryString["id"].ToString().Trim();

                // Create the SOAP binding for call.
                BasicHttpBinding binding = new BasicHttpBinding();
                binding.Name                   = "UserNameSoapBinding";
                binding.Security.Mode          = BasicHttpSecurityMode.TransportWithMessageCredential;
                binding.MaxReceivedMessageSize = 2147483647;
                var client = new SoapClient(binding, new EndpointAddress(new Uri(SOAPEndPoint)));
                client.ClientCredentials.UserName.UserName = "******";
                client.ClientCredentials.UserName.Password = "******";

                using (var scope = new OperationContextScope(client.InnerChannel))
                {
                    // Add oAuth token to SOAP header.
                    XNamespace ns           = "http://exacttarget.com";
                    var        oauthElement = new XElement(ns + "oAuthToken", internalOauthToken);
                    var        xmlHeader    = MessageHeader.CreateHeader("oAuth", "http://exacttarget.com", oauthElement);
                    OperationContext.Current.OutgoingMessageHeaders.Add(xmlHeader);

                    // Setup RetrieveRequest for Subscriber object.
                    RetrieveRequest retrieveRequest = new RetrieveRequest();
                    retrieveRequest.ObjectType = "Subscriber"; //Object Type to retrieve
                    String[] props = { "ID", "EmailAddress", "SubscriberKey", "Status", "CreatedDate" };
                    retrieveRequest.Properties = props;

                    // Query filter using Simplefilter.
                    SimpleFilterPart sfp = new SimpleFilterPart();
                    sfp.Property       = "ID";
                    sfp.SimpleOperator = SimpleOperators.equals;
                    sfp.Value          = new String[] { id };

                    // Use the SimpleFilter in RetrieveRequest.
                    retrieveRequest.Filter = sfp;

                    // Retrieve the subscribers.
                    String response = client.Retrieve(retrieveRequest, out requestId, out results);

                    // If results returned, loop through them a convert to JSON.
                    if (response != null && response.ToLower().Equals("ok"))
                    {
                        String strResults = string.Empty;
                        strResults += @"{""subscribers"": [";

                        if (results != null && results.Length > 0)
                        {
                            int i = 1;
                            foreach (Subscriber sub in results)
                            {
                                // Converting desired properties into JSON.
                                strResults += @"{""ID"":" + JsonConvert.SerializeObject(sub.ID.ToString()).ToString().Trim() + ", ";
                                strResults += @"""EmailAddress"":" + JsonConvert.SerializeObject(sub.EmailAddress).ToString().Trim() + ", ";
                                strResults += @"""SubscriberKey"":" + JsonConvert.SerializeObject(sub.SubscriberKey).ToString().Trim() + ", ";
                                strResults += @"""Status"":" + JsonConvert.SerializeObject(sub.Status.ToString()).ToString().Trim() + ", ";
                                strResults += @"""CreatedDate"":" + JsonConvert.SerializeObject(sub.CreatedDate.ToString()).ToString().Trim() + " }";
                                if (i < results.Length)
                                {
                                    strResults += ", ";
                                }
                                i++;
                            }
                            strResults += " ]}";
                            // Return the resulting JSON from handler.
                            context.Response.Write(strResults);
                        }
                        else
                        {
                            context.Response.Write(@"{""subscribers"": []}");
                        }
                    }
                    else
                    {
                        context.Response.Write(@"{""subscribers"": []}");
                    }
                }
            }
            catch (Exception ex)
            {
                context.Response.Write(ex);
            }
        }
Example #20
0
        static void TestET_Folder()
        {
            string NewFolderName = "Testing C Sharp SDK";
            int ParentIDForEmail = 0;
            string ContentType = "email";

            ET_Client myclient = new ET_Client();

            Console.WriteLine("--- Testing Folder ---");

            Console.WriteLine("\n Retrieve All Folder with GetMoreResults");
            ET_Folder getAllFolder = new ET_Folder();
            getAllFolder.AuthStub = myclient;
            getAllFolder.Props = new string[] { "ID", "Client.ID", "ParentFolder.ID", "ParentFolder.CustomerKey", "ParentFolder.ObjectID", "ParentFolder.Name", "ParentFolder.Description", "ParentFolder.ContentType", "ParentFolder.IsActive", "ParentFolder.IsEditable", "ParentFolder.AllowChildren", "Name", "Description", "ContentType", "IsActive", "IsEditable", "AllowChildren", "CreatedDate", "ModifiedDate", "Client.ModifiedBy", "ObjectID", "CustomerKey", "Client.EnterpriseID", "Client.CreatedBy" };
            GetReturn grAllFolder = getAllFolder.Get();

            Console.WriteLine("Get Status: " + grAllFolder.Status.ToString());
            Console.WriteLine("Message: " + grAllFolder.Message.ToString());
            Console.WriteLine("Code: " + grAllFolder.Code.ToString());
            Console.WriteLine("Results Length: " + grAllFolder.Results.Length);

            while (grAllFolder.MoreResults)
            {
                Console.WriteLine("\n Continue Retrieve All Folders with GetMoreResults");
                grAllFolder = getAllFolder.GetMoreResults();
                Console.WriteLine("Get Status: " + grAllFolder.Status.ToString());
                Console.WriteLine("Message: " + grAllFolder.Message.ToString());
                Console.WriteLine("Code: " + grAllFolder.Code.ToString());
                Console.WriteLine("Results Length: " + grAllFolder.Results.Length);
            }


            Console.WriteLine("\n Retrieve Specific Folder for Email Folder ParentID");
            ET_Folder getFolder = new ET_Folder();
            getFolder.AuthStub = myclient;
            SimpleFilterPart ParentFolderFilter = new SimpleFilterPart() { Property = "ParentFolder.ID", SimpleOperator = SimpleOperators.equals, Value = new string[] { "0" } };
            SimpleFilterPart ContentTypeFilter = new SimpleFilterPart() { Property = "ContentType", SimpleOperator = SimpleOperators.equals, Value = new string[] { "Email" } };
            getFolder.SearchFilter = new ComplexFilterPart() { LeftOperand = ParentFolderFilter, RightOperand = ContentTypeFilter, LogicalOperator = LogicalOperators.AND };
            getFolder.Props = new string[] { "ID", "Name", "Description" };
            GetReturn grFolder = getFolder.Get();

            Console.WriteLine("Get Status: " + grFolder.Status.ToString());
            Console.WriteLine("Message: " + grFolder.Message.ToString());
            Console.WriteLine("Code: " + grFolder.Code.ToString());
            Console.WriteLine("Results Length: " + grFolder.Results.Length);

            foreach (ET_Folder ef in grFolder.Results)
            {
                ParentIDForEmail = ef.ID;
            }


            if (ParentIDForEmail != 0)
            {
                Console.WriteLine("\n Create Folder");
                ET_Folder fold = new ET_Folder();
                fold.Name = NewFolderName;
                fold.Description = NewFolderName;
                fold.CustomerKey = NewFolderName;
                fold.AuthStub = myclient;
                fold.ParentFolder = new ET_Folder();
                fold.ParentFolder.ID = ParentIDForEmail;
                fold.ContentType = ContentType;
                fold.IsEditable = true;
                PostReturn prFolder = fold.Post();

                Console.WriteLine("Post Status: " + prFolder.Status.ToString());
                Console.WriteLine("Message: " + prFolder.Message.ToString());
                Console.WriteLine("Code: " + prFolder.Code.ToString());
                Console.WriteLine("Results Length: " + prFolder.Results.Length);

                foreach (ResultDetail rd in prFolder.Results)
                {
                    Console.WriteLine("--Status Code: " + rd.StatusCode);
                    Console.WriteLine("--Status Message: " + rd.StatusMessage);
                }

                Console.WriteLine("\n Retrieve newly created Folder");
                ET_Folder getNewFolder = new ET_Folder();
                getNewFolder.AuthStub = myclient;
                getNewFolder.SearchFilter = new SimpleFilterPart() { Property = "CustomerKey", SimpleOperator = SimpleOperators.equals, Value = new string[] { NewFolderName } };
                getNewFolder.Props = new string[] { "ID", "Name", "Description" };
                GetReturn grNewFolder = getNewFolder.Get();

                Console.WriteLine("Get Status: " + grNewFolder.Status.ToString());
                Console.WriteLine("Message: " + grFolder.Message.ToString());
                Console.WriteLine("Code: " + grNewFolder.Code.ToString());
                Console.WriteLine("Results Length: " + grNewFolder.Results.Length);

                foreach (ET_Folder ef in grNewFolder.Results)
                {
                    Console.WriteLine("--Name: " + ef.Name + " - Description:" + ef.Description);
                }

                Console.WriteLine("\n UpdateFolder");
                ET_Folder patchFolder = new ET_Folder();
                patchFolder.AuthStub = myclient;
                patchFolder.CustomerKey = NewFolderName;
                patchFolder.Description = "Now with a new Description";
                PatchReturn patchResponse = patchFolder.Patch();

                Console.WriteLine("Patch Status: " + patchResponse.Status.ToString());
                Console.WriteLine("Message: " + patchResponse.Message.ToString());
                Console.WriteLine("Code: " + patchResponse.Code.ToString());
                Console.WriteLine("Results Length: " + patchResponse.Results.Length);

                if (patchResponse.Status)
                {
                    Console.WriteLine("\n Retrieve updated Folder");
                    grNewFolder = getNewFolder.Get();

                    Console.WriteLine("Get Status: " + grNewFolder.Status.ToString());
                    Console.WriteLine("Message: " + grFolder.Message.ToString());
                    Console.WriteLine("Code: " + grNewFolder.Code.ToString());
                    Console.WriteLine("Results Length: " + grNewFolder.Results.Length);

                    foreach (ET_Folder ef in grNewFolder.Results)
                    {
                        Console.WriteLine("--Name: " + ef.Name + " - Description:" + ef.Description);
                    }
                }

                Console.WriteLine("\n Delete Folder");
                ET_Folder delFolder = new ET_Folder();
                delFolder.AuthStub = myclient;
                delFolder.CustomerKey = NewFolderName;
                FuelSDK.DeleteReturn drFolder = delFolder.Delete();
                Console.WriteLine("Delete Status: " + drFolder.Status.ToString());
                Console.WriteLine("Message: " + drFolder.Message.ToString());
                Console.WriteLine("Code: " + drFolder.Code.ToString());
                Console.WriteLine("Results Length: " + drFolder.Results.Length);

                foreach (ResultDetail rd in drFolder.Results)
                {
                    Console.WriteLine("--Status Code: " + rd.StatusCode);
                    Console.WriteLine("--Status Message: " + rd.StatusMessage);
                }

                Console.WriteLine("\n Retrieve Folder to confirm deletion");
                grNewFolder = getNewFolder.Get();

                Console.WriteLine("Get Status: " + grNewFolder.Status.ToString());
                Console.WriteLine("Message: " + grFolder.Message.ToString());
                Console.WriteLine("Code: " + grNewFolder.Code.ToString());
                Console.WriteLine("Results Length: " + grNewFolder.Results.Length);

                foreach (ET_Folder ef in grNewFolder.Results)
                {
                    Console.WriteLine("--Name: " + ef.Name + " - Description:" + ef.Description);
                }


            }
        }
Example #21
0
        public void RetrieveObjectsByFolderID(string folderId, ET_Client etClient, string path, string contentType)
        {
            // Create the SOAP binding for call.
                BasicHttpBinding binding = new BasicHttpBinding();
                binding.Name = "UserNameSoapBinding";
                binding.Security.Mode = BasicHttpSecurityMode.TransportWithMessageCredential;
                binding.MaxReceivedMessageSize = 2147483647;
                var client = new FuelSDK.SoapClient(binding, etClient.soapclient.Endpoint.Address);
                client.ClientCredentials.UserName.UserName = "******";
                client.ClientCredentials.UserName.Password = "******";

                using (var scope = new OperationContextScope(client.InnerChannel))
                {
                    // Add oAuth token to SOAP header.
                    XNamespace ns = "http://exacttarget.com";
                    var oauthElement = new XElement(ns + "oAuthToken", etClient.internalAuthToken);
                    var xmlHeader = MessageHeader.CreateHeader("oAuth", "http://exacttarget.com", oauthElement);
                    OperationContext.Current.OutgoingMessageHeaders.Add(xmlHeader);

                    List<object> folders = new List<object>();
                    string cType = "Email";

                    switch (contentType)
                    {
                        case "media":
                            cType = "Portfolio";
                            break;
                        case "dataextension":
                            cType = "DataExtension";
                            break;
                        case "content":
                            cType = "ContentArea";
                            break;
                    }

                    string requestID;
                    // Filter by the Folder/Category
                    SimpleFilterPart sfp = new SimpleFilterPart();
                    sfp.Property = "CategoryID";
                    sfp.SimpleOperator = SimpleOperators.equals;
                    sfp.Value = new string[] { folderId };

                    // Create the RetrieveRequest object

                    RetrieveRequest request = new RetrieveRequest();
                    request.ObjectType = cType;
                    request.Filter = sfp;
                    request.Properties = new string[] { "CustomerKey", "Name", "CreatedDate", "ModifiedDate" };

                    if(contentType == "media")
                        request.Properties = new string[] { "CustomerKey", "FileName", "CreatedDate", "ModifiedDate" };

                    // Execute the Retrieve
                    APIObject[] results;

                    string status = client.Retrieve(request, out requestID, out results);

                    for (int cntr = 0; cntr < results.Length; cntr++)
                    {
                            string sql = "INSERT INTO [Results] ([IdResult] ,[CustomerKey] ,[Name] ,[ResultType] ,[Path] ,[URL],[ThumbnailURL],[CreatedDate],[ModifiedDate],[IdContactIndex])VALUES (@IdResult ,@CustomerKey ,@Name ,@ResultType ,@Path ,@URL,@ThumbnailURL,@CreatedDate,@ModifiedDate,@IdContactIndex)";

                            switch (contentType)
                            {
                                case "media":
                                    var portfolio = (Portfolio)results[cntr];
                                    using (System.Data.SqlClient.SqlConnection cn = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["FindIt.Data.Entities"].ConnectionString))
                                    using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sql, cn))
                                    {

                                        cmd.Parameters.Add("@IdResult", System.Data.SqlDbType.UniqueIdentifier).Value = Guid.NewGuid();
                                        cmd.Parameters.Add("@CustomerKey", System.Data.SqlDbType.VarChar).Value = portfolio.CustomerKey;
                                        cmd.Parameters.Add("@Name", System.Data.SqlDbType.VarChar).Value = portfolio.FileName;
                                        cmd.Parameters.Add("@ResultType", System.Data.SqlDbType.VarChar).Value = contentType;
                                        cmd.Parameters.Add("@Path", System.Data.SqlDbType.VarChar).Value = path;
                                        cmd.Parameters.Add("@URL", System.Data.SqlDbType.VarChar).Value = "";
                                        cmd.Parameters.Add("@ThumbnailURL", System.Data.SqlDbType.VarChar).Value = "";
                                        cmd.Parameters.Add("@CreatedDate", System.Data.SqlDbType.DateTime).Value = portfolio.CreatedDate;
                                        cmd.Parameters.Add("@ModifiedDate", System.Data.SqlDbType.DateTime).Value = portfolio.ModifiedDate;
                                        cmd.Parameters.Add("@IdContactIndex", System.Data.SqlDbType.UniqueIdentifier).Value = new Guid("A08D166C-F310-4F2D-8D44-5DD8F1564B8F");
                                        cn.Open();

                                        cmd.ExecuteNonQuery();
                                    }
                                    break;
                                case "dataextension":
                                    var dataextension = (DataExtension)results[cntr];
                                    using (System.Data.SqlClient.SqlConnection cn = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["FindIt.Data.Entities"].ConnectionString))
                                    using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sql, cn))
                                    {

                                        cmd.Parameters.Add("@IdResult", System.Data.SqlDbType.UniqueIdentifier).Value = Guid.NewGuid();
                                        cmd.Parameters.Add("@CustomerKey", System.Data.SqlDbType.VarChar).Value = dataextension.CustomerKey;
                                        cmd.Parameters.Add("@Name", System.Data.SqlDbType.VarChar).Value = dataextension.Name;
                                        cmd.Parameters.Add("@ResultType", System.Data.SqlDbType.VarChar).Value = contentType;
                                        cmd.Parameters.Add("@Path", System.Data.SqlDbType.VarChar).Value = path;
                                        cmd.Parameters.Add("@URL", System.Data.SqlDbType.VarChar).Value = "";
                                        cmd.Parameters.Add("@ThumbnailURL", System.Data.SqlDbType.VarChar).Value = "";
                                        cmd.Parameters.Add("@CreatedDate", System.Data.SqlDbType.DateTime).Value = dataextension.CreatedDate;
                                        cmd.Parameters.Add("@ModifiedDate", System.Data.SqlDbType.DateTime).Value = dataextension.ModifiedDate;
                                        cmd.Parameters.Add("@IdContactIndex", System.Data.SqlDbType.UniqueIdentifier).Value = new Guid("A08D166C-F310-4F2D-8D44-5DD8F1564B8F");
                                        cn.Open();

                                        cmd.ExecuteNonQuery();
                                    }
                                    break;
                                case "content":
                                    var content = (ContentArea)results[cntr];
                                    using (System.Data.SqlClient.SqlConnection cn = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["FindIt.Data.Entities"].ConnectionString))
                                    using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sql, cn))
                                    {

                                        cmd.Parameters.Add("@IdResult", System.Data.SqlDbType.UniqueIdentifier).Value = Guid.NewGuid();
                                        cmd.Parameters.Add("@CustomerKey", System.Data.SqlDbType.VarChar).Value = content.CustomerKey;
                                        cmd.Parameters.Add("@Name", System.Data.SqlDbType.VarChar).Value = content.Name;
                                        cmd.Parameters.Add("@ResultType", System.Data.SqlDbType.VarChar).Value = contentType;
                                        cmd.Parameters.Add("@Path", System.Data.SqlDbType.VarChar).Value = path;
                                        cmd.Parameters.Add("@URL", System.Data.SqlDbType.VarChar).Value = "";
                                        cmd.Parameters.Add("@ThumbnailURL", System.Data.SqlDbType.VarChar).Value = "";
                                        cmd.Parameters.Add("@CreatedDate", System.Data.SqlDbType.DateTime).Value = content.CreatedDate;
                                        cmd.Parameters.Add("@ModifiedDate", System.Data.SqlDbType.DateTime).Value = content.ModifiedDate;
                                        cmd.Parameters.Add("@IdContactIndex", System.Data.SqlDbType.UniqueIdentifier).Value = new Guid("A08D166C-F310-4F2D-8D44-5DD8F1564B8F");
                                        cn.Open();

                                        cmd.ExecuteNonQuery();
                                    }
                                    break;
                                default:
                                    var email = (Email)results[cntr];

                                    using (System.Data.SqlClient.SqlConnection cn = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["FindIt.Data.Entities"].ConnectionString))
                                    using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sql, cn))
                                    {

                                        cmd.Parameters.Add("@IdResult",System.Data.SqlDbType.UniqueIdentifier).Value = Guid.NewGuid();
                                        cmd.Parameters.Add("@CustomerKey", System.Data.SqlDbType.VarChar).Value = email.CustomerKey;
                                        cmd.Parameters.Add("@Name", System.Data.SqlDbType.VarChar).Value = email.Name;
                                        cmd.Parameters.Add("@ResultType", System.Data.SqlDbType.VarChar).Value = contentType;
                                        cmd.Parameters.Add("@Path", System.Data.SqlDbType.VarChar).Value = path;
                                        cmd.Parameters.Add("@URL", System.Data.SqlDbType.VarChar).Value = "";
                                        cmd.Parameters.Add("@ThumbnailURL", System.Data.SqlDbType.VarChar).Value = "";
                                        cmd.Parameters.Add("@CreatedDate", System.Data.SqlDbType.DateTime).Value = email.CreatedDate;
                                        cmd.Parameters.Add("@ModifiedDate", System.Data.SqlDbType.DateTime).Value = email.ModifiedDate;
                                        cmd.Parameters.Add("@IdContactIndex", System.Data.SqlDbType.UniqueIdentifier).Value = new Guid("A08D166C-F310-4F2D-8D44-5DD8F1564B8F");
                                        cn.Open();

                                        cmd.ExecuteNonQuery();
                                    }
                                    break;
                            }

                    }
                }
        }
        public IEnumerable<IMetricsProvider> GetMetrics(int days)
        {
            Dictionary<int, ProviderMetrics> dictionary = new Dictionary<int,ProviderMetrics>();

            ///////////////////////////////////////////////////////////////////
            //
            // setup variables used throughout the routine
            //
            ///////////////////////////////////////////////////////////////////

            ET_Client client = CreateClient();

            string[] properties = new string[]
            {
                "EventDate",
                "SendID",
            };

            DateTime end = DateTime.Now;
            DateTime start = end - TimeSpan.FromDays(days);

            SimpleFilterPart filter = new SimpleFilterPart();
            filter.Property = "EventDate";
            filter.SimpleOperator = SimpleOperators.between;
            filter.DateValue = new DateTime[] { start, end };

            ///////////////////////////////////////////////////////////////////
            //
            // count bounces
            //
            ///////////////////////////////////////////////////////////////////

            ET_BounceEvent bounce = new ET_BounceEvent();
            bounce.GetSinceLastBatch = false;
            bounce.AuthStub = client;
            bounce.SearchFilter = filter;
            bounce.Props = properties;

            GetReturn results = bounce.Get();

            foreach (ET_BounceEvent item in results.Results)
            {
                if (!dictionary.ContainsKey(item.SendID))
                {
                    dictionary[item.SendID] = new ProviderMetrics();
                    dictionary[item.SendID].Name = GetEmailName(client, item.SendID);
                }

                dictionary[item.SendID].Bounces++;
            }

            ///////////////////////////////////////////////////////////////////
            //
            // count clicks
            //
            ///////////////////////////////////////////////////////////////////

            ET_ClickEvent click = new ET_ClickEvent();
            click.GetSinceLastBatch = false;
            click.AuthStub = client;
            click.SearchFilter = filter;
            click.Props = properties;

            results = click.Get();

            foreach (ET_ClickEvent item in results.Results)
            {
                if (!dictionary.ContainsKey(item.SendID))
                {
                    dictionary[item.SendID] = new ProviderMetrics();
                    dictionary[item.SendID].Name = GetEmailName(client, item.SendID);
                }

                dictionary[item.SendID].Clicks++;
            }

            ///////////////////////////////////////////////////////////////////
            //
            // count opens
            //
            ///////////////////////////////////////////////////////////////////

            ET_OpenEvent open = new ET_OpenEvent();
            open.GetSinceLastBatch = false;
            open.AuthStub = client;
            open.SearchFilter = filter;
            open.Props = properties;

            results = open.Get();

            foreach (ET_OpenEvent item in results.Results)
            {
                if (!dictionary.ContainsKey(item.SendID))
                {
                    dictionary[item.SendID] = new ProviderMetrics();
                    dictionary[item.SendID].Name = GetEmailName(client, item.SendID);
                }

                dictionary[item.SendID].Opens++;
            }

            ///////////////////////////////////////////////////////////////////
            //
            // count sends
            //
            ///////////////////////////////////////////////////////////////////

            ET_SentEvent send = new ET_SentEvent();
            send.GetSinceLastBatch = false;
            send.AuthStub = client;
            send.SearchFilter = filter;
            send.Props = properties;

            results = send.Get();

            foreach (ET_SentEvent item in results.Results)
            {
                if (!dictionary.ContainsKey(item.SendID))
                {
                    dictionary[item.SendID] = new ProviderMetrics();
                    dictionary[item.SendID].Name = GetEmailName(client, item.SendID);
                }

                dictionary[item.SendID].Sends++;
            }

            ///////////////////////////////////////////////////////////////////
            //
            // count unsubscribes
            //
            ///////////////////////////////////////////////////////////////////

            ET_UnsubEvent unsubscribe = new ET_UnsubEvent();
            unsubscribe.GetSinceLastBatch = false;
            unsubscribe.AuthStub = client;
            unsubscribe.SearchFilter = filter;
            unsubscribe.Props = properties;

            results = unsubscribe.Get();

            foreach (ET_UnsubEvent item in results.Results)
            {
                if (!dictionary.ContainsKey(item.SendID))
                {
                    dictionary[item.SendID] = new ProviderMetrics();
                    dictionary[item.SendID].Name = GetEmailName(client, item.SendID);
                }

                dictionary[item.SendID].Unsubscribes++;
            }

            return dictionary.Values;
        }
Example #23
0
        public void BounceEventDetails(DateTime fromDate, DateTime toDate, string TriggeredSendDefinitionObjectID)
        {
            List <string>   BounceSubscribers;
            RetrieveRequest retrieveRequest = new RetrieveRequest();

            retrieveRequest.ObjectType = "BounceEvent";

            String[] props =
            {
                "SubscriberKey", "BounceType", "SMTPCode", "SMTPReason", "BounceCategory", "EventDate", "EventType"
            };

            retrieveRequest.Properties = props;

            SimpleFilterPart filter = new SimpleFilterPart();

            //Use this only if you are retrieving for TriggeredSend

            filter.Property = "TriggeredSendDefinitionObjectID";
            String[] vlaues = { TriggeredSendDefinitionObjectID };

            //filter.Property = "SendID";
            //String[] vlaues = { "28980" };
            filter.Value = vlaues;

            SimpleFilterPart dateFilter = new SimpleFilterPart();

            dateFilter.Property       = "EventDate";
            dateFilter.SimpleOperator = SimpleOperators.between;
            dateFilter.DateValue      = new DateTime[2];
            dateFilter.DateValue[0]   = fromDate.Date; //BeingDate;
            dateFilter.DateValue[1]   = toDate.Date;   //EndDate;


            ComplexFilterPart cfilter = new ComplexFilterPart();

            cfilter.LeftOperand     = filter;
            cfilter.LogicalOperator = LogicalOperators.AND;
            cfilter.RightOperand    = dateFilter;


            retrieveRequest.Filter = cfilter;

            /**
             * Use this only if you are retrieving data from sub-account
             */

            retrieveRequest.ClientIDs = new ClientID[] { new ClientID()
                                                         {
                                                             ID = config.ClientId.Value, IDSpecified = true
                                                         } };

            APIObject[] results     = null;
            String      requestId   = null;
            String      response    = _Client.Retrieve(retrieveRequest, out requestId, out results);
            BounceEvent bounceEvent = null;

            if (response != null && response.ToLower().Equals("ok"))
            {
                if (results != null && results.Count() > 0)
                {
                    BounceSubscribers = results.Cast <BounceEvent>().Select(a => a.SubscriberKey).ToList();
                    Console.WriteLine("*******************************************************");
                    Console.WriteLine("*******************************************************");
                    Console.WriteLine("************* List of Bounce Subscribers **************");
                    Console.WriteLine("*******************************************************");
                    Console.WriteLine("*******************************************************");
                    foreach (var sub in BounceSubscribers)
                    {
                        Console.WriteLine(string.Format("Subscriber Key: {0}", sub));
                    }
                }
            }
        }
Example #24
0
        public IList <TrackingEvent> RetrieveTrackingEventData(Type eventType, DateTime sinceWhen, String eventTypeString, ClientID clientId = null, string TriggeredSendDefinitionObjectID = "")
        {
            //String filterField = "CreatedDate";
            String filterField = "EventDate";
            var    properties  = GetRetrivableProperties(eventTypeString).ToArray();


            SimpleFilterPart filter = new SimpleFilterPart();

            //Use this only if you are retrieving for TriggeredSend
            filter.Property = "TriggeredSendDefinitionObjectID";
            String[] vlaues = { TriggeredSendDefinitionObjectID };


            //filter.Property = "SendID";
            //String[] vlaues = { "28980" };
            filter.Value = vlaues;

            var dateFilter = new SimpleFilterPart
            {
                Property       = filterField,
                SimpleOperator = SimpleOperators.greaterThanOrEqual,
                DateValue      = new DateTime[] {
                    sinceWhen
                }
            };

            ComplexFilterPart cfilter = new ComplexFilterPart();

            cfilter.LeftOperand     = filter;
            cfilter.LogicalOperator = LogicalOperators.AND;
            cfilter.RightOperand    = dateFilter;


            RetrieveRequest retrieveRequest = new RetrieveRequest
            {
                ObjectType = eventType.Name,
                Properties = properties,
                Filter     = cfilter,
                ClientIDs  = new ClientID[] { clientId }
            };

            APIObject[] results = null;
            String      requestId = null, message;

            SoapClient client = _client;

            String status = "";
            IList <TrackingEvent> returnList = new List <TrackingEvent>();

            do
            {
                status = client.Retrieve(retrieveRequest, out requestId, out results);

                if (!client.GetResult(status, results, out message))
                {
                    //WriteToLog(PIMCO.SMS.Logging.Category.Exception, message);
                    //throw new ExactTargetException(message);
                }

                for (int i = 0; i < results.Length; i++)
                {
                    returnList.Add((TrackingEvent)results[i]);
                }

                //This calls the API again to get the next 2500 records
                retrieveRequest = new RetrieveRequest();
                retrieveRequest.ContinueRequest = requestId;
            } while (status.Equals("MoreDataAvailable"));

            return(returnList.ToList());
        }
        public Response GetDataExtension()
        {
            var response = new Response { Success = true, Warning = false };
            try
            {
                //Retrieve Subscriber

                //Local variables
                APIObject[] Results;
                String requestID;
                String status;

                // Instantiate the retrieve request
                RetrieveRequest rr = new RetrieveRequest();
                rr.ObjectType = "DataExtensionObject[P00 SF_ SC CumpleaƱos Mayo_PRUEBA_0001]";//required

                // Setting up a simple filter
                SimpleFilterPart sf = new SimpleFilterPart();
                sf.SimpleOperator = SimpleOperators.equals;
                sf.Property = "EMAIL";
                sf.Value = new String[] { "" };

                //Add Filter
                //rr.Filter = sf;

                rr.Properties = new string[] { "EMAIL","NOMBRE","MONTO","VISITAS", "DNI" };//required //Any Column on the Data Extension
                status = conexion.ETCliente.Retrieve(rr, out requestID, out Results);
                Console.WriteLine("EMAIL \t\t NOMBRE \t MONTO \t VISITAS \t DNI");
                for (int i = 0; i < Results.Length; i++)
                {
                    DataExtensionObject deo = Results[i] as DataExtensionObject;
                    for (int j = 0; j < deo.Properties.Length; j++)
                    {
                        //Console.Write(string.Format("{0}-{1}     ", deo.Properties[j].Name, deo.Properties[j].Value));
                        Console.Write(string.Format("{0}\t", deo.Properties[j].Value));
                    }

                    Console.WriteLine();
                }

                response.Data += "\nTotal Registros: " + Results.Length;
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
            }

            return response;
        }