コード例 #1
0
        public void Validate()
        {
            var packageValidationManager = new PackageValidationManager
            {
                SourcePath           = PackageValidation.PackagePath,
                SkipInstallation     = true,
                SkipReportGeneration = true,
            };

            var configurationError     = string.Empty;
            var requiredSettingsString = string.Empty;

            if (LoadConfiguration(packageValidationManager, PackageValidation.WorkingFolder, out configurationError) &&
                packageValidationManager.CheckIfRequiredSettingsPresent(out requiredSettingsString))
            {
                packageValidationManager.ValidationStatusUpdated += new PackageValidationManager.ValidationStatusUpdatedHandler(PackageValidationManager_ValidationStatusUpdated);
                packageValidationManager.ValidationCompleted     += new PackageValidationManager.ValidationCompletedHandler(PackageValidationManager_ValidationCompleted);

                packageValidationManager.ValidatePackage(PackageValidation.PackagePath);

                // since some validation items should be ignored and not be added to ValidationItems, if no one in validationItems is "Fail", the validaton should be "Pass"
                PackageValidation.Result = ValidationResult.Pass;
                foreach (var item in PackageValidation.ValidationItems)
                {
                    if (item.Type == LogEventType.Fail)
                    {
                        PackageValidation.Result = ValidationResult.Fail;
                    }
                }
            }
            else
            {
                PackageValidation.Result       = ValidationResult.Fail;
                PackageValidation.ErrorMessage = string.IsNullOrEmpty(configurationError) ? requiredSettingsString : configurationError;
            }
        }
コード例 #2
0
        public static bool LoadConfiguration(PackageValidationManager packageValidationManager, string workingFolder, out string configurationError)
        {
            configurationError = string.Empty;
            try
            {
                if (ConfigurationManager.AppSettings["unzippedFolderLocation"] != null)
                {
                    packageValidationManager.UnzippedFolderLocation = Path.Combine(workingFolder, ConfigurationManager.AppSettings["unzippedFolderLocation"]);
                }

                if (ConfigurationManager.AppSettings["dbType"] != null)
                {
                    try
                    {
                        packageValidationManager.DbChoice = (DatabaseChoice)Enum.Parse(typeof(DatabaseChoice), ConfigurationManager.AppSettings["dbType"]);
                    }
                    catch (Exception) { }
                }

                var sqlInfo = ConfigurationManager.GetSection("SqlInfo") as SqlInfo;
                if (sqlInfo != null)
                {
                    packageValidationManager.SqlDbInfo = new DbInfo(sqlInfo.AdminUsername, sqlInfo.AdminPassword, sqlInfo.Server);
                }

                var mySqlInfo = ConfigurationManager.GetSection("MySqlInfo") as MySqlInfo;
                if (mySqlInfo != null)
                {
                    packageValidationManager.MySqlDbInfo = new DbInfo(mySqlInfo.AdminUsername, mySqlInfo.AdminPassword, mySqlInfo.Server);
                }

                var appGalleryConfigSection = ConfigurationManager.GetSection("AppGalleryRequirements") as AppGalleryRequirementsSection;
                if (appGalleryConfigSection.RequiredProviders != null)
                {
                    foreach (RequiredProviderElement requiredProviderElement in appGalleryConfigSection.RequiredProviders)
                    {
                        if (!AppGalleryRequirements.RequiredProviders.Contains(requiredProviderElement.Name))
                        {
                            AppGalleryRequirements.RequiredProviders.Add(requiredProviderElement.Name);
                        }
                    }
                }
                if (appGalleryConfigSection.OptionalProviders != null)
                {
                    foreach (OptionalProviderElement optionalProviderElement in appGalleryConfigSection.OptionalProviders)
                    {
                        if (!AppGalleryRequirements.OptionalProviders.Contains(optionalProviderElement.Name))
                        {
                            AppGalleryRequirements.OptionalProviders.Add(optionalProviderElement.Name);
                        }
                    }
                }
                if (appGalleryConfigSection.CustomValidParamTags != null)
                {
                    foreach (CustomValidParamTag customValidParamTag in appGalleryConfigSection.CustomValidParamTags)
                    {
                        if (!AppGalleryRequirements.CustomTags.Contains(customValidParamTag.Name))
                        {
                            AppGalleryRequirements.CustomTags.Add(customValidParamTag.Name);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                configurationError = "Unexpected exception occurred while parsing configuration: " + e.Message;
                logger.Error(e, "SIR Package Parsing Configuration:");
                return(false);
            }

            return(true);
        }