public void PushPackage(string packageFileName, Stream packageStream)
        {
            packageFileName = PackageNameUtility.NormalizeFileName(packageFileName);

            var packageFile = _directory.GetFile(packageFileName);

            using (var destinationStream = packageFile.OpenWrite())
                StreamExtensions.CopyTo(packageStream, destinationStream);

            var zipPackage = new CachedZipPackage(null, packageFile, null);

            IndexDocument.Document.Root.Add(
                new XElement("wrap",
                             new XAttribute("name", zipPackage.Name),
                             new XAttribute("version", zipPackage.Version),
                             new XElement("link",
                                          new XAttribute("rel", "package"),
                                          new XAttribute("href", packageFile.Name)),
                             zipPackage.Dependencies.Select(x => new XElement("depends", x.ToString()))
                             ));

            SaveIndex(IndexDocument);

            return;
        }
Example #2
0
        void VerifyLoaded()
        {
            if (_loadedPackage != null)
            {
                return;
            }

            IFile temporaryFile = _fileSystem.CreateTempFile();

            using (var sourceStream = _httpNavigator.LoadPackage(_package))
                using (var destinationStream = temporaryFile.OpenWrite())
                    StreamExtensions.CopyTo(sourceStream, destinationStream);

            _loadedPackage = new CachedZipPackage(Source, temporaryFile, _fileSystem.CreateTempDirectory()).Load();
        }