Esempio n. 1
0
        /// <summary>
        /// Creates a <c>Manifest</c> instance from the given <paramref name="package"/>
        /// </summary>
        /// <param name="patch">Source <c>ISnPatch</c>.</param>
        /// <returns></returns>
        public static Manifest Create(ISnPatch patch)
        {
            Dependency[] dependencies;
            if (patch is SnPatch snPatch)
            {
                var selfDependency = new Dependency {
                    Id = snPatch.ComponentId, Boundary = snPatch.Boundary
                };
                if (patch.Dependencies == null)
                {
                    dependencies = new[] { selfDependency };
                }
                else
                {
                    var list = patch.Dependencies.ToList();
                    list.Insert(0, selfDependency);
                    dependencies = list.ToArray();
                }
            }
            else
            {
                dependencies = patch.Dependencies?.ToArray();
            }

            var manifest = new Manifest
            {
                PackageType  = patch.Type,
                ComponentId  = patch.ComponentId,
                Description  = patch.Description,
                ReleaseDate  = patch.ReleaseDate,
                Dependencies = dependencies,
                Version      = patch.Version,
                Parameters   = new Dictionary <string, string>()
            };

            manifest.SystemInstall = manifest.ComponentId == SystemComponentId &&
                                     manifest.PackageType == PackageType.Install;

            manifest.ManifestXml = manifest.ToXml();

            return(manifest);
        }
Esempio n. 2
0
        /// <summary>
        /// Creates a <c>Manifest</c> instance from the given <paramref name="package"/>
        /// </summary>
        /// <param name="package">Source <c>Package</c>.</param>
        /// <param name="dependencies">Dependency array. Default: null.</param>
        /// <param name="multipleExecutionAllowed">Dependency array. Default: null.</param>
        /// <returns></returns>
        public static Manifest Create(Package package, IEnumerable <Dependency> dependencies, bool multipleExecutionAllowed)
        {
            var manifest = new Manifest
            {
                PackageType = package.PackageType,
                MultipleExecutionAllowed = multipleExecutionAllowed,
                ComponentId  = package.ComponentId,
                Description  = package.Description,
                ReleaseDate  = package.ReleaseDate,
                Dependencies = dependencies,
                Version      = package.ComponentVersion,
                Parameters   = new Dictionary <string, string>()
            };

            manifest.SystemInstall = manifest.ComponentId == SystemComponentId &&
                                     manifest.PackageType == PackageType.Install;

            manifest.ManifestXml = manifest.ToXml();

            return(manifest);
        }