Example #1
0
        public IList <IComponent> FindComponents(string[] schemaUris)
        {
            Cache  cache    = HttpContext.Current.Cache;
            string cacheKey = String.Format("Components_{0}", String.Join(":", schemaUris));

            if (cache[cacheKey] != null)
            {
                return((List <IComponent>)cache[cacheKey]);
            }
            else
            {
                var      serializer = new XmlSerializer(typeof(Component));
                string[] components;

                using (var client = new TridionBrokerServiceClient())
                {
                    components = client.FindComponentsBySchemas(schemaUris);
                }

                List <IComponent> deserializedComponents = components
                                                           .Select(component => (IComponent)serializer.Deserialize(new StringReader(component)))
                                                           .ToList();
                cache.Insert(cacheKey, deserializedComponents, null, DateTime.Now.AddMinutes(5), TimeSpan.Zero);
                return(deserializedComponents);
            }
        }
        public bool TryFindPage(string Url, out IPage page)
        {
            var serializer = new XmlSerializer(typeof(Page));

            page = null;
            //Create WCF Client
            using (var client = new TridionBrokerServiceClient())
            {
                //Create XML Document to hold Xml returned from WCF Client
                var pageContent = new XmlDocument();
                pageContent.LoadXml(client.FindPageByUrl(PublicationId, Url));

                //Load XML into Reader for deserialization
                using (var reader = new XmlNodeReader(pageContent.DocumentElement))
                {
                    try
                    {
                        page = (IPage)serializer.Deserialize(reader);
                        LoadComponentModelsFromComponentFactory(page);
                        return(true);
                    }
                    catch (Exception)
                    {
                        //return false;
                        //throw new FieldHasNoValueException();
                    }
                }
            }

            return(false);
        }
        public bool TryFindBinary(string url, out IBinary binary)
        {
            using (var client = new TridionBrokerServiceClient())
            {
                binary = null;
                string binaryMetaXml = client.FindBinaryMetaByUrl(url, PublicationId);

                if (binaryMetaXml != "")
                {
                    XElement binaryMeta        = XElement.Parse(binaryMetaXml);
                    DateTime lastPublishedDate = DateTime.Parse(binaryMeta.Element("LastPublishDate").Value);

                    binary = new Binary(this)
                    {
                        Url               = binaryMeta.Element("Url").Value,
                        VariantId         = binaryMeta.Element("VariantId").Value,
                        Id                = String.Format("tcm:{0}-{1}", PublicationId, Convert.ToInt32(binaryMeta.Element("Id").Value)),
                        LastPublishedDate = lastPublishedDate
                    };

                    return(true);
                }
                return(false);
            }
        }
        public bool TryGetBinary(string tcmUri, out IBinary binary)
        {
            using (var client = new TridionBrokerServiceClient())
            {
                binary = null; if (tcmUri == "")
                {
                    return(false);
                }
                string binaryMetaXml = client.GetBinaryMeta(tcmUri);
                if (binaryMetaXml != "")
                {
                    XElement binaryMeta        = XElement.Parse(binaryMetaXml);
                    DateTime lastPublishedDate = DateTime.Parse(binaryMeta.Element("LastPublishDate").Value);
                    TcmUri   uri = new TcmUri(tcmUri);

                    binary = new Binary(this)
                    {
                        Url               = binaryMeta.Element("Url").Value,
                        VariantId         = binaryMeta.Element("VariantId").Value,
                        Id                = uri.ToString(),
                        LastPublishedDate = lastPublishedDate
                    };

                    return(true);
                }

                return(false);
            }
        }
        public IList<IComponent> FindComponents(string[] schemaUris)
        {
            Cache cache = HttpContext.Current.Cache;
            string cacheKey = String.Format("Components_{0}", String.Join(":", schemaUris));
            if (cache[cacheKey] != null)
            {
                return (List<IComponent>)cache[cacheKey];
            }
            else
            {
                var serializer = new XmlSerializer(typeof(Component));
                string[] components;

                using (var client = new TridionBrokerServiceClient())
                {
                    components = client.FindComponentsBySchemas(schemaUris);
                }

                List<IComponent> deserializedComponents = components
                    .Select(component => (IComponent)serializer.Deserialize(new StringReader(component)))
                    .ToList();
                cache.Insert(cacheKey, deserializedComponents, null, DateTime.Now.AddMinutes(5), TimeSpan.Zero);
                return deserializedComponents;
            }
        }
 public string[] GetAllPublishedPageUrls(string[] includeExtensions, string[] pathStarts)
 {
     using (var client = new TridionBrokerServiceClient())
     {
         return(client.GetAllPublishedPageUrls(includeExtensions, pathStarts, PublicationId));
     }
 }
 public string[] GetAllPublishedPageUrls(string[] includeExtensions, string[] pathStarts)
 {
     using (var client = new TridionBrokerServiceClient())
     {
         return client.GetAllPublishedPageUrls(includeExtensions, pathStarts, PublicationId);
     }
 }
Example #8
0
 public DateTime LastPublished(string[] schemaUris)
 {
     using (var client = new TridionBrokerServiceClient())
     {
         return(client.LastPublished(schemaUris));
     }
 }
        public bool TryGetKeyword(string categoryUriToLookIn, string keywordName, out IKeyword keyword)
        {
            using (var client = new TridionBrokerServiceClient())
            {
                string result = client.GetKeywordHierarchy(categoryUriToLookIn, keywordName);
                if (!string.IsNullOrEmpty(result))
                {
                    XElement keyWord  = XElement.Parse(result);
                    var      tkeyword = new Keyword()
                    {
                        Id         = keyWord.Element("Uri").Value,
                        Title      = keyWord.Element("KeywordName").Value,
                        TaxonomyId = keyWord.Element("TaxonomyUri").Value
                    };
                    foreach (XElement parentElement in keyWord.Element("ParentKeywords").Elements())
                    {
                        tkeyword.ParentKeywords.Add(
                            new Keyword
                        {
                            Id         = parentElement.Attribute("Uri").Value,
                            Title      = parentElement.Value,
                            TaxonomyId = parentElement.Attribute("TaxonomyUri").Value
                        }
                            );
                    }
                    keyword = tkeyword;
                    return(true);
                }
            }

            keyword = null;
            return(false);
        }
        public bool TryGetKeyword(string categoryUriToLookIn, string keywordName, out IKeyword keyword)
        {
            using (var client = new TridionBrokerServiceClient())
            {
                string result = client.GetKeywordHierarchy(categoryUriToLookIn, keywordName);
                if (!string.IsNullOrEmpty(result))
                {
                    XElement keyWord = XElement.Parse(result);
                    var tkeyword = new Keyword()
                    {
                        Id = keyWord.Element("Uri").Value,
                        Title = keyWord.Element("KeywordName").Value,
                        TaxonomyId = keyWord.Element("TaxonomyUri").Value
                    };
                    foreach (XElement parentElement in keyWord.Element("ParentKeywords").Elements())
                    {
                        tkeyword.ParentKeywords.Add(
                            new Keyword
                            {
                                Id = parentElement.Attribute("Uri").Value,
                                Title = parentElement.Value,
                                TaxonomyId = parentElement.Attribute("TaxonomyUri").Value
                            }
                        );
                    }
                    keyword = tkeyword;
                    return true;
                }
            }

            keyword = null;
            return false;
        }
Example #11
0
        public IList <IComponent> FindComponents(string[] schemaUris, DateTime sinceLastPublished)
        {
            var serializer = new XmlSerializer(typeof(Component));

            using (var client = new TridionBrokerServiceClient())
            {
                return(client.FindComponentsSinceLastPublished(schemaUris, sinceLastPublished)
                       .Select(component => (IComponent)serializer.Deserialize(new StringReader(component)))
                       .ToList());
            }
        }
 public bool TryFindPageContent(string Url, out string pageContent)
 {
     pageContent = string.Empty;
     using (var client = new TridionBrokerServiceClient())
     {
         pageContent = client.FindPageByUrl(PublicationId, Url);
         if (pageContent != string.Empty)
         {
             return(true);
         }
     }
     return(false);
 }
Example #13
0
        public IList <IComponent> GetLastCreatedComponents(string[] schemaUris, DateTime lastCreatedDate)
        {
            string[] components = null;
            using (var client = new TridionBrokerServiceClient())
            {
                components = client.FindComponentsSinceLastCreated(schemaUris, lastCreatedDate);
            }
            var serializer = new XmlSerializer(typeof(Component));

            return(components
                   .Select(component => (IComponent)serializer.Deserialize(new StringReader(component)))
                   .ToList());
        }
        public IDictionary<string, IComponentMeta> FindComponentMetas(string[] schemaUris, DateTime sinceLastPublished)
        {
            int pubId = new TcmUri(schemaUris.First()).PublicationId;
            string[] componentMetas;
            using (var client = new TridionBrokerServiceClient())
            {
                componentMetas = client.FindLatestComponentMetasBySchemas(schemaUris, sinceLastPublished);
            }

            return
                componentMetas
                .Select(metaXml => XElement.Parse(metaXml))
                .ToDictionary(k => String.Format("tcm:{0}-{1}", pubId, k.Element("Id").Value), v => CreateComponentMeta(v));
        }
Example #15
0
        public IComponent GetLastPublishedComponent(string schemaUri)
        {
            var    serializer = new XmlSerializer(typeof(Component));
            string component;

            using (var client = new TridionBrokerServiceClient())
            {
                component = client.GetLastPublishedComponent(schemaUri);
            }

            IComponent deserializedComponent = (IComponent)serializer.Deserialize(new StringReader(component));

            return(deserializedComponent);
        }
 public DateTime GetLastPublishedDate(string url)
 {
     using (var client = new TridionBrokerServiceClient())
     {
         string pageMetaXml = client.FindPageMetaByUrl(PublicationId, url);
         if (!String.IsNullOrEmpty(pageMetaXml))
         {
             XElement pageMeta          = XElement.Parse(pageMetaXml);
             DateTime lastPublishedDate = DateTime.Parse(pageMeta.Element("LastPublishDate").Value);
             return(lastPublishedDate);
         }
     }
     return(DateTime.Now);
 }
Example #17
0
        public IComponentMeta GetComponentMeta(string componentUri)
        {
            ComponentMeta componentMeta = new ComponentMeta();

            using (var client = new TridionBrokerServiceClient())
            {
                string   compMeta    = client.GetComponentMeta(componentUri);
                XElement compMetaXml = XElement.Parse(compMeta);
                componentMeta.CreationDate     = Convert.ToDateTime(compMetaXml.Element("CreationDate").Value, System.Globalization.CultureInfo.InvariantCulture);
                componentMeta.ModificationDate = Convert.ToDateTime(compMetaXml.Element("ModificationDate").Value, System.Globalization.CultureInfo.InvariantCulture);

                return(componentMeta);
            }
        }
 public DateTime GetLastPublishedDate(string url)
 {
     using (var client = new TridionBrokerServiceClient())
     {
         string pageMetaXml = client.FindPageMetaByUrl(PublicationId, url);
         if (!String.IsNullOrEmpty(pageMetaXml))
         {
             XElement pageMeta = XElement.Parse(pageMetaXml);
             DateTime lastPublishedDate = DateTime.Parse(pageMeta.Element("LastPublishDate").Value);
             return lastPublishedDate;
         }
     }
     return DateTime.Now;
 }
Example #19
0
        public IDictionary <string, IComponentMeta> FindComponentMetas(string[] schemaUris, DateTime sinceLastPublished)
        {
            int pubId = new TcmUri(schemaUris.First()).PublicationId;

            string[] componentMetas;
            using (var client = new TridionBrokerServiceClient())
            {
                componentMetas = client.FindLatestComponentMetasBySchemas(schemaUris, sinceLastPublished);
            }

            return
                (componentMetas
                 .Select(metaXml => XElement.Parse(metaXml))
                 .ToDictionary(k => String.Format("tcm:{0}-{1}", pubId, k.Element("Id").Value), v => CreateComponentMeta(v)));
        }
Example #20
0
        public IList <IComponent> GetLastPublishedComponents(string[] schemaUris, DateTime lastPublished, Func <string, bool> filter)
        {
            string[] components = null;
            using (var client = new TridionBrokerServiceClient())
            {
                components = client.FindComponentsSinceLastPublished(schemaUris, lastPublished.AddDays(-8));
            }

            var serializer = new XmlSerializer(typeof(Component));

            return(components
                   .Where(comp => filter(comp))
                   .Select(component => (IComponent)serializer.Deserialize(new StringReader(component)))
                   .ToList());
        }
        public bool TryFindBinaryContent(string url, out byte[] bytes)
        {
            using (var client = new TridionBrokerServiceClient())
            {
                bytes = null;
                byte[] tempBytes = client.FindBinaryByUrl(url, PublicationId);
                if (tempBytes != null)
                {
                    bytes = tempBytes;
                    return(true);
                }

                return(false);
            }
        }
        public IList<IComponent> FindComponents(string schemaUri)
        {
            var serializer = new XmlSerializer(typeof(Component));
            string[] components;

            using (var client = new TridionBrokerServiceClient())
            {
                components = client.FindComponentsBySchema(schemaUri);
            }

            List<IComponent> deserializedComponents = components
                .Select(component => (IComponent)serializer.Deserialize(new StringReader(component)))
                .ToList();
            return deserializedComponents;
        }
        public bool TryGetBinaryContent(string tcmUri, out byte[] bytes)
        {
            using (var client = new TridionBrokerServiceClient())
            {
                bytes = null;
                byte[] tempBytes = client.GetBinary(tcmUri);
                if (tempBytes != null)
                {
                    bytes = tempBytes;
                    return(true);
                }

                return(false);
            }
        }
Example #24
0
        public IList <IComponent> FindComponents(string schemaUri)
        {
            var serializer = new XmlSerializer(typeof(Component));

            string[] components;

            using (var client = new TridionBrokerServiceClient())
            {
                components = client.FindComponentsBySchema(schemaUri);
            }

            List <IComponent> deserializedComponents = components
                                                       .Select(component => (IComponent)serializer.Deserialize(new StringReader(component)))
                                                       .ToList();

            return(deserializedComponents);
        }
 public string ResolveLink(string componentUri)
 {
     Cache cache = HttpContext.Current.Cache;
     string cacheKey = String.Format(CACHEKEY_FORMAT, componentUri);
     if (cache[cacheKey] != null)
     {
         return (String)cache[cacheKey];
     }
     else
     {
         using (var client = new TridionBrokerServiceClient())
         {
             string resolvedLink = client.ResolveLink(PublicationId, componentUri);
             cache.Insert(cacheKey, resolvedLink, null, DateTime.Now.AddSeconds(30), TimeSpan.Zero); //TODO should this be configurable?
             return resolvedLink;
         }
     }
 }
        public string ResolveLink(string componentUri)
        {
            Cache  cache    = HttpContext.Current.Cache;
            string cacheKey = String.Format(CACHEKEY_FORMAT, componentUri);

            if (cache[cacheKey] != null)
            {
                return((String)cache[cacheKey]);
            }
            else
            {
                using (var client = new TridionBrokerServiceClient())
                {
                    string resolvedLink = client.ResolveLink(PublicationId, componentUri);
                    cache.Insert(cacheKey, resolvedLink, null, DateTime.Now.AddSeconds(30), TimeSpan.Zero); //TODO should this be configurable?
                    return(resolvedLink);
                }
            }
        }
Example #27
0
        public bool TryGetComponent(string componentUri, out IComponent component)
        {
            component = null;
            var serializer = new XmlSerializer(typeof(Component));

            using (var client = new TridionBrokerServiceClient())
            {
                //Create XML Document to hold Xml returned from WCF Client
                var componentContent = new XmlDocument();

                //TODO add GetComponent method in webservice
                string content = client.GetComponent(componentUri);
                if (!string.IsNullOrEmpty(content))
                {
                    componentContent.LoadXml(content);
                    using (var reader = new XmlNodeReader(componentContent.DocumentElement))
                    {
                        component = (IComponent)serializer.Deserialize(reader);
                        return(true);
                    }
                }
                return(false);
            }
        }
 public bool TryFindPageContent(string Url, out string pageContent)
 {
     pageContent = string.Empty;
     using (var client = new TridionBrokerServiceClient())
     {
         pageContent = client.FindPageByUrl(PublicationId, Url);
         if (pageContent != string.Empty)
         {
             return true;
         }
     }
     return false;
 }
        public IComponentMeta GetComponentMeta(string componentUri)
        {
            ComponentMeta componentMeta = new ComponentMeta();
            using (var client = new TridionBrokerServiceClient())
            {
                string compMeta = client.GetComponentMeta(componentUri);
                XElement compMetaXml = XElement.Parse(compMeta);
                componentMeta.CreationDate = Convert.ToDateTime(compMetaXml.Element("CreationDate").Value, System.Globalization.CultureInfo.InvariantCulture);
                componentMeta.ModificationDate = Convert.ToDateTime(compMetaXml.Element("ModificationDate").Value, System.Globalization.CultureInfo.InvariantCulture);

                return componentMeta;
            }
        }
        public bool TryFindPage(string Url, out IPage page)
        {
            var serializer = new XmlSerializer(typeof(Page));

            page = null;
            //Create WCF Client
            using (var client = new TridionBrokerServiceClient())
            {
                //Create XML Document to hold Xml returned from WCF Client
                var pageContent = new XmlDocument();
                pageContent.LoadXml(client.FindPageByUrl(PublicationId, Url));

                //Load XML into Reader for deserialization
                using (var reader = new XmlNodeReader(pageContent.DocumentElement))
                {
                    try
                    {
                        page = (IPage)serializer.Deserialize(reader);
                        LoadComponentModelsFromComponentFactory(page);
                        return true;
                    }
                    catch (Exception)
                    {
                        //return false;
                        //throw new FieldHasNoValueException();
                    }
                }
            }

            return false;
        }
        public IComponent GetLastPublishedComponent(string schemaUri)
        {
            var serializer = new XmlSerializer(typeof(Component));
            string component;

            using (var client = new TridionBrokerServiceClient())
            {
                component = client.GetLastPublishedComponent(schemaUri);
            }

            IComponent deserializedComponent = (IComponent)serializer.Deserialize(new StringReader(component));
            return deserializedComponent;
        }
 public IList<IComponent> FindComponents(string[] schemaUris, DateTime sinceLastPublished)
 {
     var serializer = new XmlSerializer(typeof(Component));
     using (var client = new TridionBrokerServiceClient())
     {
         return client.FindComponentsSinceLastPublished(schemaUris, sinceLastPublished)
             .Select(component => (IComponent)serializer.Deserialize(new StringReader(component)))
             .ToList();
     }
 }
        public IList<IComponent> GetLastPublishedComponents(string[] schemaUris, DateTime lastPublishedDate)
        {
            string[] components = null;
            using (var client = new TridionBrokerServiceClient())
            {
                components = client.FindComponentsSinceLastPublished(schemaUris, lastPublishedDate);
            }

            var serializer = new XmlSerializer(typeof(Component));
            return components
                .Select(component => (IComponent)serializer.Deserialize(new StringReader(component)))
                .ToList();
        }
 public DateTime LastPublished(string[] schemaUris)
 {
     using (var client = new TridionBrokerServiceClient())
     {
         return client.LastPublished(schemaUris);
     }
 }
        public bool TryGetComponent(string componentUri, out IComponent component)
        {
            component = null;
            var serializer = new XmlSerializer(typeof(Component));

            using (var client = new TridionBrokerServiceClient())
            {
                //Create XML Document to hold Xml returned from WCF Client
                var componentContent = new XmlDocument();

                //TODO add GetComponent method in webservice
                string content = client.GetComponent(componentUri);
                if (!string.IsNullOrEmpty(content))
                {
                    componentContent.LoadXml(content);
                    using (var reader = new XmlNodeReader(componentContent.DocumentElement))
                    {
                        component = (IComponent)serializer.Deserialize(reader);
                        return true;
                    }
                }
                return false;
            }
        }