예제 #1
0
        public ObjectDefinition GetDefinition <T>()
        {
            string requestId;
            ObjectDefinitionRequest request = new ObjectDefinitionRequest();

            request.ObjectType = typeof(T).Name;
            var defs = _client.Describe(new ObjectDefinitionRequest[] { request }, out requestId);

            return(defs[0]);
        }
예제 #2
0
        public IList <string> GetRetrivableProperties(string type)
        {
            Type apiObjectType = typeof(ETService.APIObject);
            Type et            = Type.GetType(apiObjectType.Namespace + "." + type);

            string[] excludedProperties = new string[] {
                "IsHTMLPaste"
            };
            string requestID;
            ObjectDefinitionRequest objDefs = new ObjectDefinitionRequest();

            objDefs.ObjectType = et.Name;

            ObjectDefinition[] definitions = _client.Describe(new ObjectDefinitionRequest[] { objDefs }, out requestID);


            var retrievables = (
                from p in definitions[0].Properties
                where p.IsRetrievableSpecified && p.IsRetrievable
                select p.Name
                ).Except(excludedProperties).ToList();

            return(retrievables);
        }
        public InfoReturn(APIObject theObject)
        {
            string RequestID = string.Empty;
            theObject.AuthStub.refreshToken();
            this.Results = new ET_PropertyDefinition[0];
            using (var scope = new OperationContextScope(theObject.AuthStub.soapclient.InnerChannel))
            {
                //Add oAuth token to SOAP header.
                XNamespace ns = "http://exacttarget.com";
                var oauthElement = new XElement(ns + "oAuthToken", theObject.AuthStub.internalAuthToken);
                var xmlHeader = MessageHeader.CreateHeader("oAuth", "http://exacttarget.com", oauthElement);
                OperationContext.Current.OutgoingMessageHeaders.Add(xmlHeader);

                var httpRequest = new System.ServiceModel.Channels.HttpRequestMessageProperty();
                OperationContext.Current.OutgoingMessageProperties.Add(System.ServiceModel.Channels.HttpRequestMessageProperty.Name, httpRequest);
                httpRequest.Headers.Add(HttpRequestHeader.UserAgent, theObject.AuthStub.SDKVersion);

                ObjectDefinitionRequest odr = new ObjectDefinitionRequest();
                odr.ObjectType = this.TranslateObject(theObject).GetType().ToString().Replace("FuelSDK.", "");
                ObjectDefinition[] definitionResults = theObject.AuthStub.soapclient.Describe(new ObjectDefinitionRequest[] { odr }, out RequestID);

                this.RequestID = RequestID;
                this.Status = true;
                this.Code = 200;
                this.MoreResults = false;
                this.Message = "";

                if (definitionResults.Length > 0)
                {

                    List<ET_PropertyDefinition> cleanedObjectResults = new List<ET_PropertyDefinition>();
                    foreach (PropertyDefinition obj in definitionResults[0].Properties)
                    {
                        cleanedObjectResults.Add((ET_PropertyDefinition)(this.TranslateObject(obj)));
                    }
                    this.Results = cleanedObjectResults.ToArray();
                }
                else
                {
                    this.Status = false;
                }
            }
        }