예제 #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
        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);
        }