public override void Check(Package package, EnvDTE.ProjectItem projectItem) { Results.Clear(); string sVisualStudioRelativePath = projectItem.DTE.FullName.Substring(0, projectItem.DTE.FullName.LastIndexOf('\\') + 1); bool bOfflineMode = false; try { sharedDataWarehouseInterfaces::Microsoft.DataWarehouse.Interfaces.IConfigurationSettings settings = (sharedDataWarehouseInterfaces::Microsoft.DataWarehouse.Interfaces.IConfigurationSettings)((System.IServiceProvider)projectItem.ContainingProject).GetService(typeof(sharedDataWarehouseInterfaces::Microsoft.DataWarehouse.Interfaces.IConfigurationSettings)); bOfflineMode = (bool)settings.GetSetting("OfflineMode"); } catch { } List <string> configPaths = new List <string>(package.Configurations.Count); foreach (Configuration c in package.Configurations) { foreach (PackageConfigurationSetting setting in PackageConfigurationLoader.GetPackageConfigurationSettings(c, package, sVisualStudioRelativePath, bOfflineMode)) { configPaths.Add(setting.Path); } } foreach (ConnectionManager cm in package.Connections) { DtsProperty prop = cm.Properties["ConnectionString"]; string sPackagePath = prop.GetPackagePath(cm); string hasConfig = "does not have "; bool result = false; if (configPaths.Contains(sPackagePath) || (!string.IsNullOrEmpty(cm.GetExpression(prop.Name)))) { hasConfig = "has"; result = true; } Results.Add(new Result(result, string.Format("The connection manager {0} {1} a configuration or expression defined for the connection string.", cm.Name, hasConfig), ResultSeverity.Normal)); } }
public override void Check(Package package, EnvDTE.ProjectItem projectItem) { Results.Clear(); string sVisualStudioRelativePath = projectItem.DTE.FullName.Substring(0, projectItem.DTE.FullName.LastIndexOf('\\') + 1); bool bOfflineMode = projectItem.ContainingProject.GetOfflineMode(); List <string> configPaths = new List <string>(package.Configurations.Count); foreach (Microsoft.SqlServer.Dts.Runtime.Configuration c in package.Configurations) { foreach (PackageConfigurationSetting setting in PackageConfigurationLoader.GetPackageConfigurationSettings(c, package, sVisualStudioRelativePath, bOfflineMode)) { configPaths.Add(setting.Path); } } foreach (ConnectionManager cm in package.Connections) { DtsProperty prop = cm.Properties["ConnectionString"]; string sPackagePath = prop.GetPackagePath(cm); string hasConfig = "does not have "; bool result = false; if (configPaths.Contains(sPackagePath) || (!string.IsNullOrEmpty(cm.GetExpression(prop.Name)))) { hasConfig = "has"; result = true; } Results.Add(new Result(result, string.Format("The connection manager {0} {1} a configuration or expression defined for the connection string.", cm.Name, hasConfig), ResultSeverity.Normal)); } }