Beispiel #1
0
        public Package CreatePackage(string key, Stream packageFileStream, string fileExtension, bool isInPlaceUpdate, string externalPackageUri)
        {
            string  tempPath = GenerateNewTempPath();
            Package package;

            try
            {
                package = ExtractPackage(packageFileStream, tempPath);
                if (!_packageIdValidator.IsValidPackageId(package.Id))
                {
                    throw new InvalidPackageIdException(package.Id);
                }
                _packageUriValidator.ValidatePackageUris(package);
                _packageAuthenticator.EnsureKeyCanAccessPackage(key, package.Id, package.Version);
                GenerateHash(tempPath, package);
                if (string.IsNullOrWhiteSpace(package.Summary))
                {
                    package.Summary = package.Description;
                }

                if (!isInPlaceUpdate)
                {
                    CreateNewPackage(tempPath, package, externalPackageUri, fileExtension);
                }
                else
                {
                    UpdatePackageInPlace(tempPath, package, externalPackageUri, fileExtension);
                }
            }
            finally
            {
                _fileSystem.DeleteFileIfItExists(tempPath);
            }
            return(package);
        }
Beispiel #2
0
 private void ValidatePackageId(string packageId)
 {
     if (!_packageIdValidator.IsValidPackageId(packageId))
     {
         throw new InvalidPackageIdException(packageId);
     }
 }
Beispiel #3
0
        private void AssertPackageCannotStartWithCharacter(char characterToStartWith)
        {
            string packageId = characterToStartWith + "abc";

            bool isValidPackageId = _packageIdValidator.IsValidPackageId(packageId);

            Assert.IsFalse(isValidPackageId, "Package ID starting with {0} should not be considered valid.", characterToStartWith);
        }