public Article(SessionAwareCoreServiceClient client, TcmUri location)
     : base(client)
 {
     ComponentData component = (ComponentData)Client.GetDefaultData(ItemType.Component, location, ReadOptions);
     component.Schema = new LinkToSchemaData { IdRef = ContentManager.ResolveUrl(Constants.ArticleSchemaUrl) };
     Content = component;
 }
        public void Transform(Engine engine, Package package)
        {
            TemplatingLogger log = TemplatingLogger.GetLogger(GetType());
            if (package.GetByName(Package.OutputName) == null)
            {
                log.Error("Could not find \"Output\" item in Package. This template building block should be the last TBB in your template.");
                return;
            }
            Item output = package.GetByName(Package.OutputName);

            string outputText = output.GetAsString();

            bool outputchanged = false;
            foreach (Match m in TcmUriRegEx.Matches(outputText))
            {
                log.Debug("Found " + m.Value);
                TcmUri uri = new TcmUri(m.Value);
                if(uri.GetVersionlessUri().ToString().Equals(m.Value)) continue;
                log.Debug("Found version information on uri " + m.Value + ". Removing.");
                outputText = outputText.Replace(m.Value, uri.GetVersionlessUri().ToString());
                outputchanged = true;
            }
            if (outputchanged)
            {
                output.SetAsString(outputText);
                package.Remove(output);
                package.PushItem(Package.OutputName, output);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            // get the current logged in user
            string user = HttpContext.Current.User.Identity.Name;
            if (!String.IsNullOrEmpty(user))
            {
                // set LogonUser
                TridionTreeView.LogonUser = user;
            }

            // process querystring parameters
            string start = Request.QueryString["start"];
            string types = Request.QueryString["types"];
            string pubid = Request.QueryString["pubid"];

            if (!String.IsNullOrEmpty(start))
            {
                // override StartFromUri
                TridionTreeView.StartFromUri = start;
            }
            else if (!String.IsNullOrEmpty(pubid))
            {
                // override StartFromUri with current publication id
                TcmUri uri = new TcmUri(pubid);
                TridionTreeView.StartFromUri = uri.ToString();
            }

            if (!String.IsNullOrEmpty(types))
            {
                // override SelectTypes
                TridionTreeView.SelectTypes = Convert.ToInt32(types);
            }
        }
        public string ResolveLink(string componentUri)
        {
            TcmUri uri = new TcmUri(componentUri);

            if (!uri.Equals(emptyTcmUri))
            {
                Cache cache = HttpContext.Current.Cache;
                string cacheKey = String.Format(CACHEKEY_FORMAT, componentUri);
                if (cache[cacheKey] != null)
                {
                    return (String)cache[cacheKey];
                }
                else
                {
                    Link link = componentLink.GetLink(uri.ToString());
                    if (!link.IsResolved)
                    {
                        return null;
                    }
                    cache.Insert(cacheKey, link.Url, null, DateTime.Now.AddSeconds(30), TimeSpan.Zero); //TODO should this be configurable?
                    return link.Url;
                }
            }

            return null;
        }
 /// <summary>
 /// Constrctor
 /// </summary>
 /// <param name="engine"></param>
 /// <param name="componentID"></param>
 /// <param name="templateID"></param>
 /// <param name="index"></param>
 public ComponentPresentationModel(Engine engine, TcmUri componentID, TcmUri templateID, int index)
 {
     _engine = engine;
     _componentID = componentID;
     _templateID = templateID;
     Index = index;
 }
        /// <summary>
        /// Retrieves the Compound Template invocation XML for a given page or component template Uri
        /// </summary>
        /// <param name="compoundTemplateWebService"><see cref="T:Tridion.ContentManager.Templating.CompoundTemplates.DomainModel.Proxy.CompoundTemplateWebService" /></param>
        /// <param name="templateUri">Tridion template URI.</param>
        /// <returns>Compound Template invocation XML as <see cref="T:String.String" /></returns>
        /// <exception cref="System.NotSupportedException">Unsupported template type</exception>
        public static String GetAssemblyKey(this CompoundTemplateWebService compoundTemplateWebService, String templateUri)
        {
            if (compoundTemplateWebService != null)
            {
                XmlElement templateXml = compoundTemplateWebService.ReadItem(templateUri, EnumOpenMode.OpenModeView, 1919);

                String templateType = templateXml.SelectSingleNode("/tcm:Data/tcm:Type", namespaceManager).InnerText;

                if (!String.Equals(templateType, "CompoundTemplate", StringComparison.OrdinalIgnoreCase))
                    throw new NotSupportedException("Unsupported template type: " + templateType);

                String owningPublication = templateXml.SelectSingleNode("/tcm:Info/tcm:BluePrintInfo/tcm:OwningPublication/@xlink:href", namespaceManager).InnerText;
                String version = templateXml.SelectSingleNode("/tcm:Info/tcm:VersionInfo/tcm:Version", namespaceManager).InnerText;
                String revision = templateXml.SelectSingleNode("/tcm:Info/tcm:VersionInfo/tcm:Revision", namespaceManager).InnerText;
                String content = templateXml.SelectSingleNode("/tcm:Data/tcm:Content/tcm:PublisherScript", namespaceManager).InnerText;

                content = content.Replace("\n", "\r\n");

                TcmUri tcmPublication = new TcmUri(owningPublication);
                TcmUri tcmTemplate = new TcmUri(templateUri);

                TcmUri tcmParent = new TcmUri(tcmTemplate.ItemId, tcmTemplate.ItemType, tcmPublication.ItemId);

                int hashCode = 0;

                if (!String.IsNullOrEmpty(content))
                    hashCode = content.GetHashCode();

                return String.Format("{0}/{1}.{2}/{3:X}", tcmParent, version, revision, hashCode);
            }

            return String.Empty;
        }
 protected ContentItem(TcmUri itemId, SessionAwareCoreServiceClient client)
 {
     ReadOptions = new ReadOptions();
     Client = client;
     Content = (ComponentData) client.Read(itemId, ReadOptions);
     ContentManager = new ContentManager(Client);
 }
 /// <summary>
 /// Add a new <see cref="T:Tridion.ContentManager.TcmUri"/> value to the current <see cref="T:Tridion.ContentManager.Templating.Package" />
 /// </summary>
 /// <param name="package"><see cref="T:Tridion.ContentManager.Templating.Package" /></param>
 /// <param name="name">Name.</param>
 /// <param name="value">Value.</param>
 public static void AddComponent(this Package package, String name, TcmUri value)
 {
     if (package != null)
     {
         Item packageItem = package.CreateTridionItem(ContentType.Component, value != null ? value : TcmUri.UriNull);
         package.PushItem(name, packageItem);
     }
 }
 protected ComponentLink GetComponentLink(TcmUri uri)
 {
     if (!_componentLinks.ContainsKey(uri.PublicationId))
     {
         _componentLinks.Add(uri.PublicationId, new ComponentLink(uri.PublicationId));
     }
     return _componentLinks[uri.PublicationId];
 }
 public static TcmUri GetLocalUri(TcmUri uriPublication, TcmUri uriItem)
 {
    TcmUri uriReturn = new TcmUri(uriItem.ItemId, uriItem.ItemType, uriPublication.ItemId);
    TemplatingLogger log = TemplatingLogger.GetLogger(typeof(TemplateUtilities));
    log.Info("(getLocalUri)Old URI was:" + uriItem.ToString());
    log.Info("(getLocalUri)New URI is:" + uriReturn.ToString());
    return uriReturn;
 }
        public string GetContent(string uri, string templateUri = "")
        {
            var tcmUri = new TcmUri(uri);
            string urlParameters = string.IsNullOrEmpty(templateUri) ?
                string.Format("{0}/GetContent/{1}/{2}", controller, tcmUri.PublicationId, tcmUri.ItemId) :
                string.Format("{0}/GetContent/{1}/{2}/{3}", controller, tcmUri.PublicationId, tcmUri.ItemId, new TcmUri(templateUri).ItemId);

            return Execute<string>(urlParameters);
        }
        public ComponentPresentationModel(Engine engine, Component component, ComponentTemplate template, int index)
        {
            _engine = engine;
            _component = new ComponentModel(engine, component);
            _template = new ComponentTemplateModel(engine, template);

            _componentID = component.Id;
            _templateID = template.Id;
            Index = index;
        }
        public string ResolveLink(string sourcePageUri, string componentUri, string excludeComponentTemplateUri)
        {
            
            var compUri = new TcmUri(componentUri);
            var pageUri = new TcmUri(sourcePageUri);
            var templateUri = new TcmUri(excludeComponentTemplateUri);

            string urlParameters = string.Format("{0}/ResolveLink/{1}/{2}/{3}/{4}", controller, PublicationId, pageUri.ItemId, compUri.ItemId, templateUri.ItemId);
            return Execute<string>(urlParameters);
        }
        public string GetContent(string uri, string templateUri = "")
        {
            LoggerService.Debug(">>GetContent({0})", LoggingCategory.Performance, uri);

            TcmUri tcmUri = new TcmUri(uri);

            TcmUri templateTcmUri = new TcmUri(templateUri);

            T.ComponentPresentationFactory cpFactory = GetComponentPresentationFactory(tcmUri.PublicationId);

            T.ComponentPresentation cp = null;

            if (!String.IsNullOrEmpty(templateUri))
            {
                cp = cpFactory.GetComponentPresentation(tcmUri.ItemId, templateTcmUri.ItemId);
                if (cp != null)
                    return cp.Content;
            }

            if (!string.IsNullOrEmpty(selectByComponentTemplateId))
            {
                cp = cpFactory.GetComponentPresentation(tcmUri.ItemId, Convert.ToInt32(selectByComponentTemplateId));
                if (cp != null)
                {
                    LoggerService.Debug("<<GetContent({0}) - by ct id", LoggingCategory.Performance, uri);
                    return cp.Content;
                }
            }
            if (!string.IsNullOrEmpty(selectByOutputFormat))
            {
                cp = cpFactory.GetComponentPresentationWithOutputFormat(tcmUri.ItemId, selectByOutputFormat);
                if (cp != null)
                {
                    LoggerService.Debug("<<GetContent({0}) - by output format", LoggingCategory.Performance, uri);
                    return cp.Content;
                }
            }

            LoggerService.Debug("GetContent: about to get component presentations with Highst Priority for {0}", LoggingCategory.Performance, tcmUri.ToString());
            cp = cpFactory.GetComponentPresentationWithHighestPriority(tcmUri.ItemId);
            LoggerService.Debug("GetContent: get component presentations with Highst Priority for {0}", LoggingCategory.Performance, tcmUri.ToString());
            if (cp != null)
                return cp.Content;
            //foreach (Tridion.ContentDelivery.DynamicContent.ComponentPresentation _cp in cps)
            //{
            //    if (_cp != null)
            //    {
            //        LoggerService.Debug("<<GetContent({0}) - find all", LoggingCategory.Performance, uri);
            //        return _cp.Content;
            //    }
            //}

            LoggerService.Debug("<<GetContent({0}) - not found", LoggingCategory.Performance, uri);
            return string.Empty;
        }
        public string ResolveLink(string componentUri)
        {
            TcmUri uri = new TcmUri(componentUri);

            if (!uri.Equals(emptyTcmUri))
            {
                Link link = componentLink.GetLink(uri.ToString());
                return link.IsResolved ? link.Url : null;
            }
    
            return null;
        }
Exemple #16
0
 public bool IsSiteEditEnabled(ITridionItemData item)
 {
     int publicationId = 0;
     try
     {
         publicationId = new TcmUri(item.TcmUri).PublicationId;
     }
     catch (Exception)
     {
         publicationId = 0;
     }
     return IsSiteEditEnabled(publicationId);
 }
        protected ComponentLink GetComponentLink(TcmUri uri)
        {
            if (_componentLinks.ContainsKey(uri.PublicationId))
                return _componentLinks[uri.PublicationId];

            lock (lock1)
            {
                if (!_componentLinks.ContainsKey(uri.PublicationId)) // we must test again, because in the mean time another thread might have added a record to the dictionary!
                {
                    _componentLinks.Add(uri.PublicationId, new ComponentLink(uri.PublicationId));
                }
            }
            return _componentLinks[uri.PublicationId];
        }
        /// <summary>
        /// Get all urls of published pages
        /// </summary>
        /// <param name="includeExtensions"></param>
        /// <param name="pathStarts"></param>
        /// <param name="publicationID"></param>
        /// <returns></returns>
        public string[] GetAllPublishedPageUrls(string[] includeExtensions, string[] pathStarts)
        {
            Query pageQuery = new Query();
            ItemTypeCriteria isPage = new ItemTypeCriteria(64);  // TODO There must be an enum of these somewhere
            PublicationCriteria currentPublication = new PublicationCriteria(PublicationId); //Todo: add logic to determine site on url

            Criteria pageInPublication = CriteriaFactory.And(isPage, currentPublication);

            if (includeExtensions.Length > 0)
            {
                PageURLCriteria[] extensionsCriteria = new PageURLCriteria[includeExtensions.Length];
                int criteriaCount = 0;
                foreach (string pageExtension in includeExtensions)
                {
                    extensionsCriteria.SetValue(new PageURLCriteria("%" + pageExtension, Criteria.Like), criteriaCount);
                    criteriaCount++;
                }

                Criteria allExtensions = CriteriaFactory.Or(extensionsCriteria);
                pageInPublication = CriteriaFactory.And(pageInPublication, allExtensions);
            }

            if (pathStarts.Length > 0)
            {
                PageURLCriteria[] pathCriteria = new PageURLCriteria[pathStarts.Length];
                int criteriaCount = 0;
                foreach (string requiredPath in pathStarts)
                {
                    pathCriteria.SetValue(new PageURLCriteria(requiredPath + "%", Criteria.Like), criteriaCount);
                    criteriaCount++;
                }

                Criteria allPaths = CriteriaFactory.Or(pathCriteria);
                pageInPublication = CriteriaFactory.And(pageInPublication, allPaths);
            }

            Query findPages = new Query(pageInPublication);
            string[] pageUris = findPages.ExecuteQuery();

            // Need to get PageMeta data to find all the urls
            List<string> pageUrls = new List<string>();
            foreach (string uri in pageUris)
            {
                TcmUri tcmUri = new TcmUri(uri);
                PageMetaFactory metaFactory = GetPageMetaFactory(tcmUri.PublicationId);
                IPageMeta currentMeta = metaFactory.GetMeta(uri);
                pageUrls.Add(currentMeta.UrlPath);
            }
            return pageUrls.ToArray();
        }
        /// <summary>
        /// Returns the Component contents which could be found. Components that couldn't be found don't appear in the list. 
        /// </summary>
        /// <param name="componentUris"></param>
        /// <returns></returns>
        public List<string> GetContentMultiple(string[] componentUris)
        {
            TcmUri uri = new TcmUri(componentUris.First());
            ComponentPresentationFactory cpFactory = new ComponentPresentationFactory(uri.PublicationId);
            var components =
                componentUris
                .Select(componentUri => (Tridion.ContentDelivery.DynamicContent.ComponentPresentation)cpFactory.FindAllComponentPresentations(componentUri)[0])
                .Where(cp => cp != null)
                .Select(cp => cp.Content)
                .ToList();

            return components;

        }
        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));
        }
        private void CreateBinaryLink(XmlDocument xmlContent, XmlNode node, TcmUri item, Component c)
        {
            _package.PushItem(_package.CreateMultimediaItem(item));
            Binary binary = _engine.PublishingContext.RenderedItem.AddBinary(c, "");
            node.Attributes.RemoveAll();
            String publishedPath = GetUrlForBinary(binary.Url);
            XmlAttribute attr = xmlContent.CreateAttribute("href");
            attr.Value = publishedPath;
            node.Attributes.SetNamedItem(attr);

            attr = xmlContent.CreateAttribute("title");
            attr.Value = c.Title;
            node.Attributes.SetNamedItem(attr);
        }
        /// <summary>
        /// Get 'current' PublishTransaction. It tries to identify a PublishTransaction from the publish queue that is on the 
        /// given TcmUri, Publication, User, etc.
        /// </summary>
        /// <param name="engine">Engine object</param>
        /// <param name="tcmUri">String representing the tcmuri of the item to check</param>
        /// <returns>PublishTransaction if found; or null, otherwise</returns>
        public static PublishTransaction GetPublishTransaction(Engine engine, String tcmUri)
        {
            String binaryPath = engine.PublishingContext.PublishInstruction.RenderInstruction.BinaryStoragePath;
            Regex tcmRegex = new Regex(@"tcm_\d+-\d+-66560");
            Match match = tcmRegex.Match(binaryPath);

            if (match.Success)
            {
                String transactionId = match.Value.Replace('_', ':');
                TcmUri transactionUri = new TcmUri(transactionId);
                return new PublishTransaction(transactionUri, engine.GetSession());
            }
            return FindPublishTransaction(engine, tcmUri);
        }
        public ListItem(XmlElement element)
        {
            XElement el = element.ConvertToXElement();

                _id = new TcmUri(el.AttributeValueOrEmpty("ID"));
                _parentId = new TcmUri(el.AttributeValueOrEmpty("ParentOrgItemID"));
                _title = el.AttributeValueOrEmpty("Title");
                _path = el.AttributeValueOrEmpty("Path");
                _modified = DateTime.Parse(el.AttributeValueOrEmpty("Modified"));
                _isShared = Boolean.Parse(el.AttributeValueOrEmpty("IsShared"));
                _isLocalized = Boolean.Parse(el.AttributeValueOrEmpty("IsLocalized"));
                _trusteeId = new TcmUri(el.AttributeValueOrEmpty("TrusteeID"));
                _icon = el.AttributeValueOrEmpty("Icon");
                _url = el.AttributeValueOrEmpty("URL");
        }
 public string ResolvePageLink(string tcmUri)
 {
     TcmUri pageUri = new TcmUri(tcmUri);
     using (var pageLink = new PageLink(pageUri.PublicationId))
     {
         var link = pageLink.GetLink(pageUri.ItemId);
         if (link != null)
         {
             return link.Url;
         }
         else
         {
             return String.Empty;
         }
     }
 }
        public virtual string ResolveLink(string sourcePageUri, string componentUri, string excludeComponentTemplateUri)
        {
            TcmUri componentUriToLinkTo = new TcmUri(componentUri);
            TcmUri pageUri = new TcmUri(sourcePageUri);
            TcmUri componentTemplateUri = new TcmUri(excludeComponentTemplateUri);

            if (!componentUriToLinkTo.Equals(emptyTcmUri))
            {
                Link link = GetComponentLink(componentUriToLinkTo).GetLink(pageUri.ToString(), componentUriToLinkTo.ToString(), componentTemplateUri.ToString(), String.Empty, String.Empty, false, LinkToAnchor);
                if (!link.IsResolved)
                {
                    return null;
                }
                return LinkToAnchor && link.Anchor != "0" ? string.Format("{0}#{1}", link.Url, TridionHelper.GetLocalAnchorTag(pageUri, componentUriToLinkTo, componentTemplateUri, link.Anchor)) : link.Url;
            }

            return null;
        }
        public string ResolveLink(string sourcePageUri, string componentUri, string excludeComponentTemplateUri)
        {
            TcmUri componentUriToLinkTo = new TcmUri(componentUri);
            TcmUri pageUri = new TcmUri(sourcePageUri);
            TcmUri componentTemplateUri = new TcmUri(excludeComponentTemplateUri);

            if (!componentUriToLinkTo.Equals(emptyTcmUri))
            {
                Link link = componentLink.GetLink(pageUri.ToString(), componentUriToLinkTo.ToString(), componentTemplateUri.ToString(), String.Empty, String.Empty, false, false);
                if (!link.IsResolved)
                {
                    return null;
                }
                return link.Url;
            }

            return null;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="TransformXml"/> class.
        /// </summary>
        /// <param name="engine"><see cref="T:Tridion.ContentManager.Templating.Engine" /></param>
        /// <param name="package"><see cref="T:Tridion.ContentManager.Templating.Package" /></param>
        /// <param name="templateBase"><see cref="T:TcmTemplating.TemplateBase" /></param>
        /// <param name="templateBuildingBlock">Tridion template building block to use as source</param>
        public TransformXml(Engine engine, Package package, TemplateBase templateBase, TcmUri templateBuildingBlockUri)
            : this(engine, package, templateBase)
        {
            if (templateBuildingBlockUri.ItemType != ItemType.TemplateBuildingBlock)
                throw new ArgumentException("templateBuildingBlock is not ItemType.TemplateBuildingBlock");

            TemplateBuildingBlock templateBuildingBlock = engine.GetObject(templateBuildingBlockUri) as TemplateBuildingBlock;

            String content = templateBuildingBlock.Content.Replace("tcm:include", "xsl:include");

            using (StringReader sr = new StringReader(content))
            {
                using (XmlReader reader = XmlReader.Create(sr))
                {
                    mXslCompiledTransform.Load(reader, XsltSettings, new XmlTcmUriResolver(engine));
                }
            }
        }
 public ListItem(XmlElement element)
 {
     if (element.HasAttribute("ID"))
     {
         _id = new TcmUri(element.GetAttribute("ID"));
     }
     if (element.HasAttribute("ParentOrgItemID"))
     {
         _parentId = new TcmUri(element.GetAttribute("ParentOrgItemID"));
     }
     if (element.HasAttribute("Title"))
     {
         _title = element.GetAttribute("Title");
     }
     if (element.HasAttribute("Path"))
     {
         _path = element.GetAttribute("Path");
     }
     if (element.HasAttribute("Modified"))
     {
         _modified = DateTime.Parse(element.GetAttribute("Modified"));
     }
     if (element.HasAttribute("IsShared"))
     {
         _isShared = Boolean.Parse(element.GetAttribute("IsShared"));
     }
     if (element.HasAttribute("IsLocalized"))
     {
         _isLocalized = Boolean.Parse(element.GetAttribute("IsLocalized"));
     }
     if (element.HasAttribute("TrusteeID"))
     {
         _trusteeId = new TcmUri(element.GetAttribute("TrusteeID"));
     }
     if (element.HasAttribute("Icon"))
     {
         _icon = element.GetAttribute("Icon");
     }
     if (element.HasAttribute("URL"))
     {
         _url = element.GetAttribute("URL");
     }
 }
        public string GetContent(string uri, string templateUri = "")
        {
            
            TcmUri tcmUri = new TcmUri(uri);
            TcmUri templateTcmUri = new TcmUri(templateUri);
            Tridion.ContentDelivery.DynamicContent.ComponentPresentationFactory cpFactory = new ComponentPresentationFactory(PublicationId);
            Tridion.ContentDelivery.DynamicContent.ComponentPresentation cp = null;


            if (!String.IsNullOrEmpty(templateUri))
            {
                cp = cpFactory.GetComponentPresentation(tcmUri.ItemId, templateTcmUri.ItemId);
                if (cp != null)
                    return cp.Content;
            }

            if (!string.IsNullOrEmpty(selectByComponentTemplateId))
            {
                cp = cpFactory.GetComponentPresentation(tcmUri.ItemId, Convert.ToInt32(selectByComponentTemplateId));
                if (cp != null)
                    return cp.Content;
            }
            if (!string.IsNullOrEmpty(selectByOutputFormat))
            {
                cp = cpFactory.GetComponentPresentationWithOutputFormat(tcmUri.ItemId, selectByOutputFormat);
                if (cp != null)
                    return cp.Content;
            }
            IList cps = cpFactory.FindAllComponentPresentations(tcmUri.ItemId);

            foreach (Tridion.ContentDelivery.DynamicContent.ComponentPresentation _cp in cps)
            {
                if (_cp != null)
                {
                    if (_cp.Content.Contains("<Component"))
                    {
                        return _cp.Content;
                    }
                }
            }
            return string.Empty;
        }
        private ILinkProvider GetLinkProvider(string uri)
        {
            TcmUri u = new TcmUri(uri);
            if (u == null)
                // invalid uri, return null
                return null;

            if (_linkProviders.ContainsKey(u.PublicationId))
                return _linkProviders[u.PublicationId];
            lock (lock1)
            {
                if (!_linkProviders.ContainsKey(u.PublicationId)) // we must test again, because in the mean time another thread might have added a record to the dictionary!
                {
                    Type t = LinkProvider.GetType();
                    ILinkProvider lp = (ILinkProvider)Activator.CreateInstance(t);
                    lp.PublicationId = u.PublicationId;
                    _linkProviders.Add(u.PublicationId, lp);
                }
            }
            return _linkProviders[u.PublicationId];
        }
 /// <summary>
 /// Gets the <see cref="T:Tridion.ContentManager.ContentManagement.IdentifiableObject"/> object specified by the ID
 /// </summary>
 /// <param name="ID">IdentifiableObject ID</param>
 /// <returns><see cref="T:Tridion.ContentManager.ContentManagement.IdentifiableObject"/></returns>
 public T GetObject <T>(TcmUri ID) where T : IdentifiableObject
 {
     return(mEngine.GetObject(ID) as T);
 }
        /// <summary>
        /// On (Save, and) Check-in of a Component, create a Page for that Component and update an index Page with the Component and publish both to a staging target.
        /// </summary>
        /// <remarks>
        /// The metadata of the Folder the Component resides in, will be used as the configuration for the actions.
        /// </remarks>
        /// <param name="subject">checked in Component</param>
        /// <param name="args">check in event arguments</param>
        /// <param name="phase">event phase</param>
        private static void ComponentCheckInAction(Component subject, CheckInEventArgs args, EventPhases phase)
        {
            // get Folder from Component for configuration metadata
            Folder folder = (Folder)subject.OrganizationalItem;

            // proceed when Folder has metadata
            if (folder.Metadata == null)
            {
                return;
            }

            ItemFields metadata = new ItemFields(folder.Metadata, folder.MetadataSchema);
            ReiConfig  config   = new ReiConfig(metadata);

            // proceed when metadata contains valid URIs, and Schema of Component is recognised
            if (!config.IsValid || subject.Schema.Id.ItemId != config.SchemaUri.ItemId)
            {
                return;
            }

            // create list of items to publish
            List <IdentifiableObject> items = new List <IdentifiableObject>();

            // if Component is already used on any Page then no need to create new Page and update index, just publish Component
            UsingItemsFilter pageFilter = new UsingItemsFilter(subject.Session)
            {
                ItemTypes = new List <ItemType> {
                    ItemType.Page
                }
            };

            if (subject.HasUsingItems(pageFilter))
            {
                items.Add(subject);
            }
            else
            {
                // create Page and add Component Presentation (using Context Publication of Structure Group)
                TcmUri            localUri          = ReiConfig.TransformTcmUri(subject.Id, config.StructureGroupUri);
                Component         localComponent    = new Component(localUri, subject.Session);
                ComponentTemplate componentTemplate = new ComponentTemplate(config.ComponentTemplateUri, subject.Session);
                Page page = new Page(subject.Session, config.StructureGroupUri);
                try
                {
                    page.Title        = subject.Title;
                    page.FileName     = GetSafeFileName(subject.Title);
                    page.PageTemplate = new PageTemplate(config.PageTemplateUri, subject.Session);
                    page.ComponentPresentations.Add(new ComponentPresentation(localComponent, componentTemplate));
                    page.Save(true);

                    // add Page to publish items list
                    items.Add(page);
                }
                catch (Exception ex)
                {
                    Logger.Write(ex, ReiConfig.Name, LoggingCategory.General, TraceEventType.Error);
                }

                // add Component to index Page (using Context Publication of index Page)
                localUri          = ReiConfig.TransformTcmUri(subject.Id, config.IndexPageUri);
                localComponent    = new Component(localUri, subject.Session);
                componentTemplate = new ComponentTemplate(config.IndexComponentTemplateUri, subject.Session);
                Page indexPage = new Page(config.IndexPageUri, subject.Session);
                try
                {
                    indexPage.CheckOut();
                    indexPage.ComponentPresentations.Add(new ComponentPresentation(localComponent, componentTemplate));
                    indexPage.Save(true);

                    // add index Page to publish items list
                    items.Add(indexPage);
                }
                catch (Exception ex)
                {
                    Logger.Write(ex, ReiConfig.Name, LoggingCategory.General, TraceEventType.Error);
                }
            }

            // publish items
            if (items.Count > 0)
            {
                List <TargetType> targets = new List <TargetType> {
                    new TargetType(config.TargetTypeUri, subject.Session)
                };
                PublishInstruction publishInstruction = new PublishInstruction(subject.Session);
                PublishEngine.Publish(items, publishInstruction, targets, ReiConfig.Priority);
            }
            else
            {
                Logger.Write("No items were published.", ReiConfig.Name, LoggingCategory.General, TraceEventType.Information);
            }
        }
 /// <summary>
 /// Gets the <see cref="T:Tridion.ContentManager.ContentManagement.Component"/> component specified by the ID
 /// </summary>
 /// <param name="ID"><see cref="T:Tridion.ContentManager.TcmUri"/></param>
 /// <returns><see cref="T:Tridion.ContentManager.ContentManagement.Component"/></returns>
 public Component GetComponent(TcmUri ID)
 {
     return(GetObject <Component>(ID));
 }
Exemple #34
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Page"/> class.
 /// </summary>
 /// <param name="client"><see cref="T:TcmCoreService.Client" /></param>
 /// <param name="uri"><see cref="T:TcmCoreService.Misc.TcmUri" /></param>
 internal Page(Client client, TcmUri uri) : this(client, client.Read <PageData>(uri))
 {
 }
 /// <summary>
 /// Gets the <see cref="T:Tridion.ContentManager.CommunicationManagement.StructureGroup"/> specified by the ID
 /// </summary>
 /// <param name="ID"><see cref="T:Tridion.ContentManager.TcmUri"/></param>
 /// <returns><see cref="T:Tridion.ContentManager.CommunicationManagement.StructureGroup"/></returns>
 public StructureGroup GetStructureGroup(TcmUri ID)
 {
     return(GetObject <StructureGroup>(ID));
 }
 /// <summary>
 /// Retrieves <see cref="T:Tridion.ContentDelivery.DynamicContent.BinaryData" />
 /// </summary>
 /// <param name="binaryUri">Binary <see cref="T:TcmCDService.Tridion.TcmUri" /></param>
 /// <returns>
 ///   <see cref="T:Tridion.ContentDelivery.DynamicContent.BinaryData" /> or null
 /// </returns>
 internal static BinaryData GetBinaryData(TcmUri binaryUri)
 {
     return(GetBinaryData(binaryUri.PublicationId, binaryUri.ItemId));
 }
Exemple #37
0
        public T GetContextIdentifiableObject <T>(TcmUri tcmUri) where T : IdentifiableObject
        {
            var contextTcmUri = TemplateUtilities.CreateTcmUriForPublication(this.Publication.Id.ItemId, tcmUri);

            return(this.Engine.GetObject <T>(contextTcmUri));
        }
Exemple #38
0
        private List <Component> GatherLinkedComponents(Component component)
        {
            _log.Debug($"Gathering linked components for component {component.Title}");
            List <ItemFields> fieldList  = new List <ItemFields>();
            List <Component>  components = new List <Component>();

            if (component.Content != null)
            {
                fieldList.Add(new ItemFields(component.Content, component.Schema));
            }
            if (component.Metadata != null)
            {
                fieldList.Add(new ItemFields(component.Metadata, component.MetadataSchema));
            }
            var componentLinkFields  = new List <ComponentLinkField>();
            var embeddedSchemaFields = new List <EmbeddedSchemaField>();

            foreach (var fields in fieldList)
            {
                foreach (var field in fields)
                {
                    if (field is ComponentLinkField)
                    {
                        componentLinkFields.Add((ComponentLinkField)field);
                    }

                    if (field is EmbeddedSchemaField)
                    {
                        embeddedSchemaFields.Add((EmbeddedSchemaField)field);
                    }
                }
            }

            for (int i = 0; i < embeddedSchemaFields.Count; i++)
            {
                EmbeddedSchemaField           linkField            = embeddedSchemaFields[i];
                EmbeddedSchemaFieldDefinition linksFieldDefinition = linkField.Definition as EmbeddedSchemaFieldDefinition;
                if (linksFieldDefinition?.EmbeddedSchema == null)
                {
                    continue;
                }
                TcmUri id = linksFieldDefinition.EmbeddedSchema.Id; // force schema load
                foreach (var embeddedFields in linkField.Values)
                {
                    foreach (var embeddedField in embeddedFields)
                    {
                        if (embeddedField is ComponentLinkField)
                        {
                            componentLinkFields.Add((ComponentLinkField)embeddedField);
                        }
                        if (embeddedField is EmbeddedSchemaField)
                        {
                            embeddedSchemaFields.Add((EmbeddedSchemaField)embeddedField);
                        }
                    }
                }
            }

            foreach (var linkField in componentLinkFields)
            {
                if (linkField.Values != null)
                {
                    components.AddRange(linkField.Values);
                }
            }
            return(components);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="Category"/> class.
 /// </summary>
 /// <param name="client"><see cref="T:TcmCoreService.Client" /></param>
 /// <param name="uri"><see cref="T:TcmCoreService.Misc.TcmUri" /></param>
 internal Category(Client client, TcmUri uri) : this(client, client.Read <CategoryData>(uri))
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ActivityInstance"/> class.
 /// </summary>
 /// <param name="client"><see cref="T:TcmCoreService.Client" /></param>
 /// <param name="uri"><see cref="T:TcmCoreService.Misc.TcmUri" /></param>
 internal ActivityInstance(Client client, TcmUri uri) : this(client, client.Read <ActivityInstanceData>(uri))
 {
 }
        public Tridion.ContentDelivery.DynamicContent.Query.Query ToTridionQuery()
        {
            string[] basedOnSchemas              = QuerySchemas;
            DateTime lastPublishedDate           = LastPublishedDate;
            IList <MetaQueryItem> metaQueryItems = MetaQueryValues;
            QueryLogic            metaQueryLogic = MetaQueryLogic;
            int maxmimumComponents = MaximumComponents;

            Query q = null;
            //PublicationCriteria publicationAndLastPublishedDateCriteria = new PublicationCriteria(PublicationId);
            PublicationCriteria publicationAndLastPublishedDateCriteria = new PublicationCriteria(PublicationId);
            //format DateTime // 00:00:00.000
            ItemLastPublishedDateCriteria dateLastPublished = new ItemLastPublishedDateCriteria(lastPublishedDate.ToString("yyyy-MM-dd HH:mm:ss.fff"), Criteria.GreaterThanOrEqual);
            //publicationAndLastPublishedDateCriteria.AddCriteria(dateLastPublished);

            Criteria basedOnSchemaAndInPublication;

            if (basedOnSchemas.Length > 0)
            {
                Criteria[] schemaCriterias = new Criteria[basedOnSchemas.Length];
                int        i = 0;
                foreach (var schema in basedOnSchemas)
                {
                    TcmUri schemaUri = new TcmUri(schema);
                    schemaCriterias.SetValue(new ItemSchemaCriteria(schemaUri.ItemId), i);
                    i++;
                }
                Criteria basedOnSchema = CriteriaFactory.Or(schemaCriterias);
                basedOnSchemaAndInPublication = CriteriaFactory.And(publicationAndLastPublishedDateCriteria, basedOnSchema);
            }
            else
            {
                basedOnSchemaAndInPublication = publicationAndLastPublishedDateCriteria;
            }

            // Add filtering for meta data
            Criteria schemasAndMetaData;

            if (metaQueryItems.Count > 0)
            {
                Criteria   metaQuery;
                Criteria[] metaCriterias = new Criteria[metaQueryItems.Count];
                int        metaCount     = 0;
                foreach (MetaQueryItem queryItem in metaQueryItems)
                {
                    CustomMetaKeyCriteria   metaField = new CustomMetaKeyCriteria(queryItem.MetaField);
                    CustomMetaValueCriteria metaCriteria;
                    FieldOperator           metaOperator = typeof(Criteria).GetField(queryItem.MetaOperator.ToString()).GetValue(null) as FieldOperator;

                    switch (queryItem.MetaValue.GetType().Name)
                    {
                    case "DateTime":
                        DateTime tempDate = (DateTime)queryItem.MetaValue;
                        metaCriteria = new CustomMetaValueCriteria(metaField, tempDate.ToString("yyyy-MM-dd HH:mm:ss.fff"), "yyyy-MM-dd HH:mm:ss.SSS", metaOperator);
                        break;

                    case "Float":
                        metaCriteria = new CustomMetaValueCriteria(metaField, (float)queryItem.MetaValue, metaOperator);
                        break;

                    case "String":
                        metaCriteria = new CustomMetaValueCriteria(metaField, queryItem.MetaValue as string, metaOperator);
                        break;

                    default:
                        throw new System.Exception("Unexpected query item data type; " + queryItem.MetaValue.GetType().Name);
                    }

                    metaCriterias.SetValue(metaCriteria, metaCount);
                    metaCount++;
                }

                if (MetaQueryLogic == QueryLogic.AllCriteriaMatch)
                {
                    metaQuery = CriteriaFactory.And(metaCriterias);
                }
                else
                {
                    metaQuery = CriteriaFactory.Or(metaCriterias);
                }
                schemasAndMetaData = CriteriaFactory.And(basedOnSchemaAndInPublication, metaQuery);
            }
            else
            {
                schemasAndMetaData = basedOnSchemaAndInPublication;
            }

            Criteria allConditions;

            if (KeywordValues.Count > 0)
            {
                Criteria[] keywordCriterias = new Criteria[KeywordValues.Count];
                int        keywordCount     = 0;
                foreach (KeywordItem keyCriteria in KeywordValues)
                {
                    TaxonomyKeywordCriteria keywordField = new TaxonomyKeywordCriteria(keyCriteria.CategoryUri, keyCriteria.KeywordUri, false);
                    keywordCriterias.SetValue(keywordField, keywordCount);
                    keywordCount++;
                }

                Criteria keyQuery;
                if (KeywordQueryLogic == QueryLogic.AllCriteriaMatch)
                {
                    keyQuery = CriteriaFactory.And(keywordCriterias);
                }
                else
                {
                    keyQuery = CriteriaFactory.Or(keywordCriterias);
                }
                allConditions = CriteriaFactory.And(schemasAndMetaData, keyQuery);
            }
            else
            {
                allConditions = schemasAndMetaData;
            }


            q = new Query(allConditions);
            if (maxmimumComponents != 0 && maxmimumComponents != int.MaxValue)
            {
                LimitFilter limitResults = new LimitFilter(maxmimumComponents);
                q.SetResultFilter(limitResults);
            }

            // Sort column should either be a standard or custom metaData field
            SortColumn paramSort;

            if (typeof(SortParameter).GetField(QuerySortField) != null)
            {
                paramSort = typeof(SortParameter).GetField(QuerySortField).GetValue(null) as SortColumn;
            }
            else
            {
                // Why do we need to tell Tridion what data type the field is! Its in the database already!
                paramSort = new CustomMetaKeyColumn(QuerySortField, typeof(MetadataType).GetField(SortType.ToString()).GetValue(null) as MetadataType);
            }
            SortDirection paramSortDirection = typeof(SortParameter).GetField(QuerySortOrder.ToString()).GetValue(null) as SortDirection;
            SortParameter sortParameter      = new SortParameter(paramSort, paramSortDirection);

            q.AddSorting(sortParameter);
            return(q);
        }
Exemple #42
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SystemWideObject"/> class.
 /// </summary>
 /// <param name="client"><see cref="T:TcmCoreService.Client" /></param>
 /// <param name="uri"><see cref="T:TcmCoreService.Misc.TcmUri" /></param>
 internal SystemWideObject(Client client, TcmUri uri) : this(client, client.Read <SystemWideObjectData>(uri))
 {
 }
Exemple #43
0
        private static void Main(string[] args)
        {
            // Default execution options
            Options options = new Options()
            {
                Mode                 = EngineMode.Debugger,
                ItemURI              = null,
                TemplateURI          = null,
                PublicationTargetURI = null
            };

            InitializeConsole();

            if (Parser.Default.ParseArguments(args, options))
            {
                LegacyInterface legacyInterface = null;

                try
                {
                    using (new PreviewServer())
                    {
                        // Initialize TcmDebugger.COM
                        legacyInterface = new LegacyInterface();
                        legacyInterface.SetProvider(new LegacyProvider());

                        switch (options.Mode)
                        {
                        case EngineMode.LocalServer:
                            using (new CompoundTemplateService2011())
                            {
                                Logger.Log(System.Diagnostics.TraceEventType.Information, "Press any key to exit.");
                                Console.ReadKey();
                            }
                            break;

                        case EngineMode.Debugger:
                        case EngineMode.Publisher:
                            if (String.IsNullOrEmpty(options.ItemURI))
                            {
                                throw new Exception("ItemUri is required for Debugger or Publisher engines");
                            }

                            if (!TcmUri.IsValid(options.ItemURI))
                            {
                                throw new Exception(String.Format("Invalid tcm uri {0}", options.ItemURI));
                            }

                            TcmUri tcmItemUri = new TcmUri(options.ItemURI);

                            if (tcmItemUri.ItemType != ItemType.Page || options.Mode != EngineMode.Publisher)
                            {
                                if (String.IsNullOrEmpty(options.TemplateURI))
                                {
                                    throw new Exception("Template tcm uri is required for non-page type objects or debug engine");
                                }

                                if (!TcmUri.IsValid(options.TemplateURI))
                                {
                                    throw new Exception(String.Format("Invalid template tcm uri {0}", options.TemplateURI));
                                }
                            }

                            if (!String.IsNullOrEmpty(options.PublicationTargetURI) && !TcmUri.IsValid(options.PublicationTargetURI))
                            {
                                throw new Exception(String.Format("Invalid publication target tcm uri {0}", options.TemplateURI));
                            }

                            Engine engine = null;

                            switch (options.Mode)
                            {
                            case EngineMode.Debugger:
                                engine = new Engines.DebugEngine();
                                break;

                            case EngineMode.Publisher:
                                engine = new RenderEngine();
                                break;
                            }

                            String output = engine.Execute(options.ItemURI, options.TemplateURI, options.PublicationTargetURI);
                            output += "";

                            Console.WriteLine();
                            Console.WriteLine("{0} [!] {1}", DateTime.Now.ToString("HH:mm:ss"), "Execution finished. Press any key to exit.");
                            Console.ReadKey();
                            break;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log(System.Diagnostics.TraceEventType.Error, ex.Message);
                }
                finally
                {
                    if (legacyInterface != null)
                    {
                        Marshal.ReleaseComObject(legacyInterface);
                    }
                }
            }
        }
Exemple #44
0
        public IPage GetPage(TcmUri pageId)
        {
            var page = _pageFactory.GetPage(pageId.ToString());

            return(page);
        }
Exemple #45
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ApprovalStatus"/> class.
 /// </summary>
 /// <param name="client"><see cref="T:TcmCoreService.Client" /></param>
 /// <param name="uri"><see cref="T:TcmCoreService.Misc.TcmUri" /></param>
 internal ApprovalStatus(Client client, TcmUri uri) : this(client, client.Read <ApprovalStatusData>(uri))
 {
 }
Exemple #46
0
 /// <summary>
 /// Writes a <see cref="T:Tridion.ContentManager.TcmUri" /> value to a XML element
 /// </summary>
 /// <param name="writer"><see cref="T:System.Xml.XmlWriter" />.</param>
 /// <param name="localName">Node Name.</param>
 /// <param name="value"><see cref="T:Tridion.ContentManager.TcmUri" /> value</param>
 /// <remarks>Only the TcmUri.ItemId is written as publishing is already publication specific</remarks>
 public static void WriteAttributeOptional(this XmlWriter writer, String localName, TcmUri value)
 {
     if (writer != null && value != null)
     {
         writer.WriteAttributeString(localName, value);
     }
 }
 /// <summary>
 /// Retrieves <see cref="T:Tridion.ContentDelivery.DynamicContent.BinaryData" />
 /// </summary>
 /// <param name="binaryUri">Binary <see cref="T:TcmCDService.Tridion.TcmUri" /></param>
 /// <param name="variantId">Binary variantId as <see cref="T:System.String" /></param>
 /// <returns>
 ///   <see cref="T:Tridion.ContentDelivery.DynamicContent.BinaryData" /> or null
 /// </returns>
 internal static BinaryData GetBinaryData(TcmUri binaryUri, String variantId)
 {
     return(GetBinaryData(binaryUri.PublicationId, binaryUri.ItemId, variantId));
 }
Exemple #48
0
 public static XElement GetListXml(this TcmUri tcmUri, ItemType itemType, bool recursive)
 {
     ItemType[] list = { itemType };
     return(GetListXml(tcmUri, list, recursive));
 }
Exemple #49
0
 private static string GetPublicationUri(TcmUri tcmUri, Localization localization)
 => (localization == null) ? $"tcm:0-{tcmUri.PublicationId}-1" : localization.GetCmUri();
Exemple #50
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Trustee"/> class.
 /// </summary>
 /// <param name="client"><see cref="T:TcmCoreService.Client" /></param>
 /// <param name="uri"><see cref="T:TcmCoreService.Misc.TcmUri" /></param>
 internal Trustee(Client client, TcmUri uri) : this(client, client.Read <TrusteeData>(uri))
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="PublicationTarget"/> class.
 /// </summary>
 /// <param name="client"><see cref="T:TcmCoreService.Client" /></param>
 /// <param name="uri"><see cref="T:TcmCoreService.Misc.TcmUri" /></param>
 internal PublicationTarget(Client client, TcmUri uri) : this(client, client.Read <PublicationTargetData>(uri))
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="VirtualFolder"/> class.
 /// </summary>
 /// <param name="client"><see cref="T:TcmCoreService.Client" /></param>
 /// <param name="uri"><see cref="T:TcmCoreService.Misc.TcmUri" /></param>
 internal VirtualFolder(Client client, TcmUri uri) : this(client, client.Read <VirtualFolderData>(uri))
 {
 }
Exemple #53
0
 /// <summary>
 /// Deletes the object for the specified <see cref="T:TcmCoreService.Misc.TcmUri" /> from Tridion
 /// </summary>
 /// <param name="uri"><see cref="T:TcmCoreService.Misc.TcmUri" /></param>
 internal void Delete(TcmUri uri)
 {
     mClient.Delete(uri);
 }
 /// <summary>
 /// Gets the <see cref="T:Tridion.ContentManager.CommunicationManagement.ComponentTemplate"/> specified by the ID
 /// </summary>
 /// <param name="ID"><see cref="T:Tridion.ContentManager.TcmUri"/></param>
 /// <returns><see cref="T:Tridion.ContentManager.CommunicationManagement.ComponentTemplate"/></returns>
 public ComponentTemplate GetComponentTemplate(TcmUri ID)
 {
     return(GetObject <ComponentTemplate>(ID));
 }
Exemple #55
0
 /// <summary>
 /// UnLocalize the specified <see cref="T:Tridion.ContentManager.CoreService.IdentifiableObjectData" /> derived class
 /// in Tridion
 /// </summary>
 /// <typeparam name="T"><see cref="T:Tridion.ContentManager.CoreService.IdentifiableObjectData" /> derived class</typeparam>
 /// <param name="uri"><see cref="T:TcmCoreService.Misc.TcmUri" /></param>
 /// <param name="readOptions"><see cref="T:Tridion.ContentManager.CoreService.Client.ReadOptions"/></param>
 /// <returns><see cref="T:Tridion.ContentManager.CoreService.IdentifiableObjectData" /> derived class</returns>
 internal T UnLocalize <T>(TcmUri uri, ReadOptions readOptions) where T : IdentifiableObjectData
 {
     return(mClient.UnLocalize(uri, readOptions) as T);
 }
 /// <summary>
 /// Gets the <see cref="T:Tridion.ContentManager.CommunicationManagement.Page"/> specified by the ID
 /// </summary>
 /// <param name="ID"><see cref="T:Tridion.ContentManager.TcmUri"/></param>
 /// <returns><see cref="T:Tridion.ContentManager.CommunicationManagement.Page"/></returns>
 public Page GetPage(TcmUri ID)
 {
     return(GetObject <Page>(ID));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="Group"/> class.
 /// </summary>
 /// <param name="client"><see cref="T:TcmCoreService.Client" /></param>
 /// <param name="uri"><see cref="T:TcmCoreService.Misc.TcmUri" /></param>
 internal Group(Client client, TcmUri uri) : this(client, client.Read <GroupData>(uri))
 {
 }
Exemple #58
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TargetType"/> class.
 /// </summary>
 /// <param name="client"><see cref="T:TcmCoreService.Client" /></param>
 /// <param name="uri"><see cref="T:TcmCoreService.Misc.TcmUri" /></param>
 internal TargetType(Client client, TcmUri uri) : this(client, client.Read <TargetTypeData>(uri))
 {
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="TransformXml"/> class.
        /// </summary>
        /// <param name="engine"><see cref="T:Tridion.ContentManager.Templating.Engine" /></param>
        /// <param name="package"><see cref="T:Tridion.ContentManager.Templating.Package" /></param>
        /// <param name="templateBase"><see cref="T:TcmTemplating.TemplateBase" /></param>
        /// <param name="templateBuildingBlock">Tridion template building block to use as source</param>
        public TransformXml(Engine engine, Package package, TemplateBase templateBase, TcmUri templateBuildingBlockUri) : this(engine, package, templateBase)
        {
            if (templateBuildingBlockUri.ItemType != ItemType.TemplateBuildingBlock)
            {
                throw new ArgumentException("templateBuildingBlock is not ItemType.TemplateBuildingBlock");
            }

            TemplateBuildingBlock templateBuildingBlock = engine.GetObject(templateBuildingBlockUri) as TemplateBuildingBlock;

            String content = templateBuildingBlock.Content.Replace("tcm:include", "xsl:include");

            using (StringReader sr = new StringReader(content))
            {
                using (XmlReader reader = XmlReader.Create(sr))
                {
                    mXslCompiledTransform.Load(reader, XsltSettings, new XmlTcmUriResolver(engine));
                }
            }
        }
        public bool Contains(TcmUri uri)
        {
            XmlNode node = m_TridionList.SelectSingleNode(String.Format("//tcm:{0}[@ID = '{1}']", ItemXmlName, uri.ToString()), NSManager);

            return(node != null);
        }