Search code examples
tridiontridion-2011

How can i publish Page using TOM.net api?


Is it possible to publish a Page by using Tom.net API in SDL Tridion 2011?


Solution

  • As Nuno mentioned, use PublishEngine.Publish and refer the syntax and example

    Syntax:

    PublishEngine.Publish(
        new IdentifiableObject[] { linkedComponent },
        engine.PublishingContext.PublishInstruction,
        new List() { engine.PublishingContext.PublicationTarget }); 
    

    Do something like this:-

    private void Publish(IdentifiableObject item, PublicationTarget publicationTarget, bool rollBackOnFailure, bool includeComponentLinks)
    {
        IEnumerable<IdentifiableObject> items = new List<IdentifiableObject>() { item };    
        IEnumerable<PublicationTarget> targets = new List<PublicationTarget>() { publicationTarget };
        PublishInstruction instruction = new PublishInstruction(item.Session)
        {
            DeployAt = DateTime.Now,
            RenderInstruction = new RenderInstruction(item.Session)
            {
                RenderMode = RenderMode.Publish
            },
            ResolveInstruction = new ResolveInstruction(item.Session)
            {
                IncludeComponentLinks = includeComponentLinks
            },
            RollbackOnFailure = rollBackOnFailure,
            StartAt = DateTime.MinValue
        };
        PublishEngine.Publish(items, instruction, targets);
    }
    

    **Contents is copied from How to Publish Stuff Programmatically blog