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; }
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(); }