/// <summary>
        /// Returns the <see cref="T:Tridion.ContentManager.ContentManagement.Fields.ItemFields" /> for the
        /// <see cref="T:Tridion.ContentManager.ContentManagement.Component" />
        /// </summary>
        /// <param name="component"><see cref="T:Tridion.ContentManager.ContentManagement.Component" /></param>
        /// <returns><see cref="T:Tridion.ContentManager.ContentManagement.Fields.ItemFields" /></returns>
        public static ItemFields Fields(this Component component)
        {
            if (component != null)
            {
                return(ItemFieldsFactory.Get(component, component.Content, component.Schema));
            }

            return(null);
        }
示例#2
0
        /// <summary>
        /// Returns the metadata <see cref="T:Tridion.ContentManager.ContentManagement.Fields.ItemFields" /> for the
        /// <see cref="T:Tridion.ContentManager.CommunicationManagement.Publication" />
        /// </summary>
        /// <param name="publication"><see cref="T:Tridion.ContentManager.CommunicationManagement.Publication" /></param>
        /// <returns><see cref="T:Tridion.ContentManager.ContentManagement.Fields.ItemFields" /></returns>
        public static ItemFields MetadataFields(this Publication publication)
        {
            if (publication != null)
            {
                return(ItemFieldsFactory.Get(publication, publication.Metadata, publication.MetadataSchema));
            }

            return(null);
        }
        /// <summary>
        /// Returns the metadata <see cref="T:Tridion.ContentManager.ContentManagement.Fields.ItemFields" /> for the
        /// <see cref="T:Tridion.ContentManager.ContentManagement.RepositoryLocalObject" />
        /// </summary>
        /// <param name="repositoryLocalObject"><see cref="T:Tridion.ContentManager.ContentManagement.RepositoryLocalObject" /></param>
        /// <returns><see cref="T:Tridion.ContentManager.ContentManagement.Fields.ItemFields" /></returns>
        public static ItemFields MetadataFields(this RepositoryLocalObject repositoryLocalObject)
        {
            if (repositoryLocalObject != null)
            {
                return(ItemFieldsFactory.Get(repositoryLocalObject, repositoryLocalObject.Metadata, repositoryLocalObject.MetadataSchema));
            }

            return(null);
        }
        /// <summary>
        /// Execute the transformation for the specified template
        /// </summary>
        /// <param name="Engine"><see cref="T:Tridion.ContentManager.Templating.Engine"/>.</param>
        /// <param name="Package"><see cref="T:Tridion.ContentManager.Templating.Package"/></param>
        public void Transform(Engine Engine, Package Package)
        {
            try
            {
                mTicksStart = Environment.TickCount;

                mEngine  = Engine;
                mPackage = Package;

                // Actual template transformation
                PreTransform();
                Transform();
                PostTransform();
            }
            catch (Exception ex)
            {
                String exceptionStack = LoggerExtensions.TraceException(ex);

                Logger.Error("TemplateBase.Transform Exception\n" + exceptionStack);

                StringBuilder sb = new StringBuilder();
                sb.AppendLine(ex.Message);
                sb.AppendFormat("Publisher: {0}\n", Environment.MachineName);
                sb.Append(exceptionStack);

                // Re-throw to ensure Tridion knows what happened
                throw new Exception(sb.ToString(), ex);
            }
            // Ensure we always clean up, no matter what happens during the template transformation
            finally
            {
                Logger.Info("{0}: Render time {1:0.00000} seconds @ {2:dd/MM/yyyy hh:mm:ss tt} ", this.GetType().FullName, ProcessedTime / 1000.0, DateTime.Now);

                // Do not cache objects across template transformations
                ItemFieldsFactory.ClearCache();

                // Clear published binaries list if it was used
                if (mPublishedBinaries.IsValueCreated)
                {
                    mPublishedBinaries.Value.Clear();
                }

                mPackage = null;
                mEngine  = null;
                mLogger  = null;

                mComponent         = null;
                mComponentTemplate = null;
                mPage               = null;
                mPageTemplate       = null;
                mRootStructureGroup = null;
                mPublication        = null;
                mPublishTransaction = null;
                mPublishingUser     = null;
                mPublicationTarget  = null;
            }
        }