public void CalculateDigest(ITaskHandler handler)
{
#region Sanity checks
if (handler == null) throw new ArgumentNullException(nameof(handler));
if (string.IsNullOrEmpty(ImplementationDirectory)) throw new InvalidOperationException("Implementation directory is not set.");
#endregion
var newDigest = new ManifestDigest();
// Generate manifest for each available format...
foreach (var generator in ManifestFormat.All.Select(format => new ManifestGenerator(ImplementationDirectory, format)))
{
// ... and add the resulting digest to the return value
handler.RunTask(generator);
newDigest.ParseID(generator.Manifest.CalculateDigest());
}
ManifestDigest = newDigest;
}
#endregion