Example #1
0
        /// <summary>
        /// Creates a new manifest entry.
        /// </summary>
        /// <param name="rootDirectory">The directory that the file's path will be stored relative to.</param>
        /// <param name="relativeFilepath">The path to the file, relative to the <paramref name="rootDirectory" /></param>
        /// <param name="remoteLocation">A remote location where the file can be obtained from.</param>
        /// <param name="hashAlgorithm">A valid parameter for the <seealso cref="System.Security.Cryptography.HashAlgorithm"/>.<seealso cref="System.Security.Cryptography.HashAlgorithm.Create(string)"/> method.</param>
        public static ManifestEntry CreateManifestEntry(String rootDirectory, String relativeFilepath, String remoteLocation = null, String hashAlgorithm = null)
        {
            String absolutePath;
            if (String.IsNullOrWhiteSpace(rootDirectory))
            {
                absolutePath = relativeFilepath;
            }
            else
            {
                absolutePath = Path.Combine(rootDirectory, relativeFilepath);
            }
            
            if (!File.Exists(absolutePath)) { return null; }

            FileInfo fi = new FileInfo(absolutePath);
            var size = fi.Length;
            String hash = String.Empty;

            if (hashAlgorithm != null)
            {
                var hashTask = ManifestHelper.GetHashAsync(hashAlgorithm, absolutePath);
                hashTask.Wait();
                hash = hashTask.Result;
            }

            String webLocation = remoteLocation;
            var entry = new ManifestEntry(hash, size, relativeFilepath, webLocation);
            return entry;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ManifestValidatorResult"/> class.
 /// </summary>
 /// <param name="manifestEntry">The manifest entry that was validated.</param>
 /// <param name="isValidHash">If the hash of the file is valid, <c>true</c>.  Otherwise, <c>false</c>.</param>
 /// <param name="fileLocation">The absolute path to the validated file.</param>
 public ManifestValidatorResult(ManifestEntry manifestEntry, Boolean isValidHash, String fileLocation)
 {
     this.ManifestEntry = manifestEntry;
     this.IsValidHash = isValidHash;
     this.FileLocation = fileLocation;
 }