コード例 #1
0
        /// <summary>
        /// Generates the package.
        /// </summary>
        /// <param name="items">The items.</param>
        /// <param name="packageName">Name of the package.</param>
        /// <param name="packageAuthor">The package author.</param>
        /// <returns>Download path</returns>
        public virtual string GeneratePackage(IEnumerable <ItemUri> items, string packageName, string packageAuthor)
        {
            try
            {
                var project = new PackageProject
                {
                    Metadata =
                    {
                        PackageName = packageName.Trim(),
                        Author      = packageAuthor,
                        Version     = DateTime.UtcNow.ToString("yyyyMMddHHmmss")
                    }
                };

                var filePath = FileUtil.MakePath(Settings.PackagePath, string.Format("{0}-{1}.{2}", project.Metadata.Version, PackageUtils.CleanupFileName(project.Metadata.PackageName), "zip"));
                var source   = new ExplicitItemSource {
                    Name = "PackMan added Items"
                };

                foreach (var item in items)
                {
                    source.Entries.Add(new ItemReference(item, false).ToString());
                }

                project.Sources.Add(source);
                using (new Sitecore.SecurityModel.SecurityDisabler())
                {
                    WritePackage(project, filePath);
                    return(filePath);
                }
            }
            catch (Exception ex)
            {
                Sitecore.Diagnostics.Log.Error(ex.Message, ex, this);
                return(null);
            }
        }