Tuesday, June 28, 2016

Create a package in code


using (new Sitecore.SecurityModel.SecurityDisabler())
      {
        Sitecore.Data.Database db = Sitecore.Configuration.Factory.GetDatabase("master");
        Sitecore.Install.PackageProject document = new Sitecore.Install.PackageProject();

        document.Metadata.PackageName = "Priority3LP";
        document.Metadata.Author = "Olga Kogan";

        Sitecore.Install.Items.ExplicitItemSource source = new Sitecore.Install.Items.ExplicitItemSource(); //Create source – source should be based on BaseSource 
        source.Name = "INSERT SOURCE NAME";
        Sitecore.Data.Items.Item[] items = db.Items.Database.SelectItems("SPECIFY THE SITECORE ITEM PATH TO EXPORT FROM");

        foreach (Sitecore.Data.Items.Item item in items)
        {
          source.Entries.Add(new Sitecore.Install.Items.ItemReference(item.Uri, false).ToString());
        }

        document.Sources.Add(source);
        document.SaveProject = true;

        //path where the zip file package is saved 
        using (Sitecore.Install.Zip.PackageWriter writer = new Sitecore.Install.Zip.PackageWriter("/data/packages/" + "Priority3" + DateTime.Now.Ticks.ToString() + ".zip"))
        {
          Sitecore.Context.SetActiveSite("shell");

          writer.Initialize(Sitecore.Install.Installer.CreateInstallationContext());

          Sitecore.Install.PackageGenerator.GeneratePackage(document, writer);

          Sitecore.Context.SetActiveSite("website");
        }


      }

================

Import a package

  1. using (new SecurityDisabler())  
  2. {  
  3.     using (new ProxyDisabler())  
  4.     {  
  5.         using (new SyncOperationContext())  
  6.         {  
  7.             IProcessingContext context = new SimpleProcessingContext();  
  8.             IItemInstallerEvents events = new DefaultItemInstallerEvents(new BehaviourOptions(InstallMode.Overwrite, MergeMode.Undefined));  
  9.             context.AddAspect(events);  
  10.             IFileInstallerEvents events1 = new DefaultFileInstallerEvents(true);  
  11.             context.AddAspect(events1);  
  12.   
  13.             Sitecore.Install.Installer installer = new Sitecore.Install.Installer();  
  14.             installer.InstallPackage(MainUtil.MapPath("INSERT PACKAGE PATH INCLUDING THE FILE NAME"), context);  
  15.         }  
  16.     }  
  17. }  

No comments:

Post a Comment