/// <summary> /// Validate a package according to specific validation settings. /// </summary> /// <remarks> /// The <Typ>ValidationResults</Typ> log will contain the warnings and errors encountered during the package /// validation process, up to any <Typ>InvalidPackageException</Typ> that is thrown during the process, at /// which time the validation process ends. /// </remarks> /// <returns> /// A <Typ>ValidationResults</Typ> log that contains the warnings and errors encountered during the package /// validation process. /// </returns> /// <param name="packageValidatorSettings">The <c>PackageValidatorSettings</c> determining which /// validation rules should be applied during the validation process.</param> /// <param name="packageReader">The package to be valdated.</param> /// <exception cref="ArgumentNullException">Thrown if the <paramref name="packageReader"/> is null.</exception> /// <exception cref="InvalidPackageException">Thrown if the validation process encounters errors in the package /// for which the <paramref name="packageValidatorSettings"/> have a <Typ>ValidationBehavior</Typ> value /// of <c>ValidationBehavior.Enforce</c>.</exception> public static ValidationResults Validate(PackageReader packageReader, PackageValidatorSettings packageValidatorSettings) { ValidatorResources.Culture = LocalizationManager.GetCurrentCulture(); Utilities.ValidateParameterNonNull("packageReader", packageReader); Utilities.ValidateParameterNonNull("packageValidatorSettings", packageValidatorSettings); ValidationResults log = Validate(packageReader); if (log.HasErrors || (packageValidatorSettings.ScormRequirementValidation == ValidationBehavior.None && packageValidatorSettings.ScormRecommendationValidation == ValidationBehavior.None && packageValidatorSettings.LrmRequirementValidation == ValidationBehavior.None && packageValidatorSettings.MlcRequirementValidation == ValidationBehavior.None)) { return(log); } ManifestReaderSettings manifestSettings = new ManifestReaderSettings(true, true); LrmSettings lrmSettings = new LrmSettings(true); ManifestReader manifestReader; PackageValidator.Validate(packageValidatorSettings, packageReader, false, log, manifestSettings, lrmSettings, out manifestReader); return(log); }
/// <summary> /// Validate a package according to specific validation settings. /// </summary> /// <remarks> /// The <Typ>ValidationResults</Typ> log will contain the warnings and errors encountered during the package /// validation process, up to any <Typ>InvalidPackageException</Typ> that is thrown during the process, at /// which time the validation process ends. /// </remarks> /// <returns> /// A <Typ>ValidationResults</Typ> log that contains the warnings and errors encountered during the package /// validation process. /// </returns> /// <param name="packageValidatorSettings">The <c>PackageValidatorSettings</c> determining which /// validation rules should be applied during the validation process.</param> /// <param name="packageReader">The package to be valdated.</param> /// <exception cref="ArgumentNullException">Thrown if the <paramref name="packageReader"/> is null.</exception> /// <exception cref="InvalidPackageException">Thrown if the validation process encounters errors in the package /// for which the <paramref name="packageValidatorSettings"/> have a <Typ>ValidationBehavior</Typ> value /// of <c>ValidationBehavior.Enforce</c>.</exception> public static ValidationResults Validate(PackageReader packageReader, PackageValidatorSettings packageValidatorSettings) { ValidatorResources.Culture = Thread.CurrentThread.CurrentCulture;; Utilities.ValidateParameterNonNull("packageReader", packageReader); Utilities.ValidateParameterNonNull("packageValidatorSettings", packageValidatorSettings); ValidationResults log = ValidateIsELearning(packageReader); if (log.HasErrors || (packageValidatorSettings.ScormRequirementValidation == ValidationBehavior.None && packageValidatorSettings.ScormRecommendationValidation == ValidationBehavior.None && packageValidatorSettings.LrmRequirementValidation == ValidationBehavior.None && packageValidatorSettings.MlcRequirementValidation == ValidationBehavior.None)) { return(log); } ManifestReaderSettings manifestSettings = new ManifestReaderSettings(true, true); ManifestReader manifestReader; bool fixLrmViolations = true; PackageValidator.Validate(packageValidatorSettings, packageReader, false, log, manifestSettings, fixLrmViolations, out manifestReader); return(log); }