예제 #1
0
        public void CreatePackageRepositoryList(LocalPackageRepositoryList repoList)
        {
            var serializer = new XmlSerializer(typeof(LocalPackageRepositoryList));

            var stream = new FileStream(_localRepositoryFileListName, FileMode.Create);
            serializer.Serialize(stream, repoList);
            stream.Close();
        }
예제 #2
0
        public LocalPackageRepositoryList ReadPackageRepositoryList()
        {
            if (_localPackageRepositoryList == null)
            {
                var serializer = new XmlSerializer(typeof(LocalPackageRepositoryList));

                var stream = new FileStream(_localRepositoryFileListName, FileMode.Open);
                _localPackageRepositoryList = (LocalPackageRepositoryList)serializer.Deserialize(stream);
                stream.Close();
            }
            return _localPackageRepositoryList;
        }
예제 #3
0
파일: Engine.cs 프로젝트: emilw/MPack
        private LocalPackageRepositoryList createLocalPackageRepositoryList(List<LocalTempList> list)
        {
            var localPackageRepositoryList = new LocalPackageRepositoryList();

            foreach (var manifest in list)
            {
                var manifestReader = new XPathManifestReader(manifest.LocalPath);

                var name = manifestReader.GetValue(ConfigurationManager.AppSettings.Get("XPathToGetAppNameInManifest"));
                var version = manifestReader.GetValue(ConfigurationManager.AppSettings.Get("XPathToGetAppVersionInManifest"));
                var dependentPackageList = manifestReader.GetDependenApplicationExpression("/Package/Dependecies/Package",
                                                                                            ConfigurationManager.AppSettings.Get("XPathToDependencyAppName"),
                                                                                            ConfigurationManager.AppSettings.Get("XPathToDependencyAppVersion"));

                //Create the local package
                var package = new Package()
                    {
                        ApplicationName = name,
                        ApplicationVersion = version,
                        ForeignPath = manifest.PackageStorePath,
                        DependentPackages = new List<Package>()
                    };

                //Create the local dependent packages
                foreach (var dependentPackage in dependentPackageList)
                {
                    package.DependentPackages.Add(new Package()
                    {
                        ApplicationName = dependentPackage.Item1,
                        ApplicationVersion = dependentPackage.Item2
                    });
                }

                localPackageRepositoryList.Packages.Add(package);
            }

            _localTempStorage.CleanTempManifests();

            return localPackageRepositoryList;
        }