private static bool IsLocal(string sqlConnectionString, LocalDbServerVerifier localDbServerVerifier) { sqlConnectionString = sqlConnectionString.ToUpperInvariant(); string[] array = new string[5] { "DATA SOURCE", "SERVER", "ADDRESS", "ADDR", "NETWORK ADDRESS" }; foreach (string value in array) { int num = sqlConnectionString.IndexOf(value, StringComparison.Ordinal); if (num != -1) { int num2 = sqlConnectionString.IndexOf("=", num, StringComparison.Ordinal); if (num2 != -1 && num2 != sqlConnectionString.Length - 1) { int num3 = num2 + 1; int num4 = sqlConnectionString.IndexOf(";", num3, StringComparison.Ordinal); if (num4 != sqlConnectionString.Length - 1) { string sqlInstanceName = sqlConnectionString.Substring(num3, num4 - num3); string machineNameFromSqlInstanceName = SkuUtil.GetMachineNameFromSqlInstanceName(sqlInstanceName); return(localDbServerVerifier(machineNameFromSqlInstanceName)); } } } } return(false); }
private static bool IsStandardOrHigher(SkuType sku) { if (sku != SkuType.Standard && sku != SkuType.SBS) { return(SkuUtil.IsEnterpriseOrHigher(sku)); } return(true); }
private static bool IsWebOrHigher(SkuType sku) { if (sku != SkuType.Web) { return(SkuUtil.IsStandardOrHigher(sku)); } return(true); }
private static bool IsWorkgroupOrHigher(SkuType sku) { if (sku != SkuType.Workgroup) { return(SkuUtil.IsWebOrHigher(sku)); } return(true); }
public static bool IsFeatureEnabled(SkuType sku, RestrictedFeatures feature, out bool isFeatureExpected) { isFeatureExpected = true; switch (feature) { case RestrictedFeatures.CustomAuth: return(true); case RestrictedFeatures.ReportBuilder: return(SkuUtil.IsWorkgroupOrHigher(sku)); case RestrictedFeatures.NoCpuThrottling: case RestrictedFeatures.NoMemoryThrottling: return(SkuUtil.IsDataCenterOrHigher(sku)); case RestrictedFeatures.ScaleOut: case RestrictedFeatures.DataDrivenSubscriptions: case RestrictedFeatures.DataAlerting: case RestrictedFeatures.Crescent: case RestrictedFeatures.KpiItems: case RestrictedFeatures.MobileReportItems: case RestrictedFeatures.Branding: return(SkuUtil.IsEnterpriseOrHigher(sku)); case RestrictedFeatures.NonSqlDataSources: case RestrictedFeatures.OtherSkuDatasources: case RestrictedFeatures.RemoteDataSources: case RestrictedFeatures.Caching: case RestrictedFeatures.ExecutionSnapshots: case RestrictedFeatures.History: case RestrictedFeatures.Delivery: case RestrictedFeatures.Scheduling: case RestrictedFeatures.Extensibility: case RestrictedFeatures.Sharepoint: case RestrictedFeatures.Subscriptions: case RestrictedFeatures.CustomRolesSecurity: case RestrictedFeatures.ModelItemSecurity: case RestrictedFeatures.DynamicDrillthrough: case RestrictedFeatures.EventGeneration: case RestrictedFeatures.ComponentLibrary: case RestrictedFeatures.SharedDataset: case RestrictedFeatures.PowerBI: return(SkuUtil.IsStandardOrHigher(sku)); default: isFeatureExpected = false; return(false); } }
public static SkuType GetSqlSku(SqlConnection sqlConn) { object obj = null; SqlCommand sqlCommand = new SqlCommand("SELECT SERVERPROPERTY('Edition')", sqlConn); sqlCommand.CommandType = CommandType.Text; obj = sqlCommand.ExecuteScalar(); if (obj == null) { return(SkuType.None); } string edition = (string)obj; return(SkuUtil.SkuFromString(edition)); }
public static List <SkuType> GetDatabaseSku(SkuType reportServerSku, out List <SkuType> restrictedSkus) { List <SkuType> list = new List <SkuType>(); restrictedSkus = new List <SkuType>(); switch (reportServerSku) { case SkuType.Express: list.Add(SkuType.Express); break; case SkuType.Web: list.Add(SkuType.Web); break; case SkuType.Workgroup: list.Add(SkuType.Workgroup); break; case SkuType.Standard: case SkuType.Enterprise: case SkuType.DataCenter: case SkuType.BusinessIntelligence: case SkuType.EnterpriseCore: restrictedSkus.Add(SkuType.Developer); restrictedSkus.Add(SkuType.Evaluation); break; case SkuType.Developer: restrictedSkus.Add(SkuType.Evaluation); break; case SkuType.Evaluation: restrictedSkus.Add(SkuType.Developer); break; } if (SkuUtil.IsStandardOrHigher(reportServerSku)) { restrictedSkus.Add(SkuType.Workgroup); restrictedSkus.Add(SkuType.Express); restrictedSkus.Add(SkuType.Web); } return(list); }
public static SkuVerificationErrorCode EnsureCorrectEdition(SkuType rsSku, SkuType sqlSku, string connectionString, LocalDbServerVerifier localDbServerVerifier, bool checkRestrictedSkus) { if (!SkuUtil.IsStandardOrHigher(rsSku) && !SkuUtil.IsLocal(connectionString, localDbServerVerifier)) { return(SkuVerificationErrorCode.LocalConnectionRequired); } List <SkuType> list = new List <SkuType>(); List <SkuType> databaseSku = SkuUtil.GetDatabaseSku(rsSku, out list); if (databaseSku.Count > 0 && !databaseSku.Contains(sqlSku)) { return(SkuVerificationErrorCode.DatabaseSkuRequired); } if (checkRestrictedSkus && list.Count > 0 && list.Contains(sqlSku)) { return(SkuVerificationErrorCode.DatabaseSkuRestricted); } return(SkuVerificationErrorCode.Success); }
public static bool IsBusinessIntelligenceOrHigher(SkuType sku) { return(SkuUtil.IsDataCenterOrHigher(sku)); }
private static bool IsEnterpriseOrHigher(SkuType sku) { return(SkuUtil.IsDataCenterOrHigher(sku)); }
public static bool IsFeatureEnabled(SkuType sku, RestrictedFeatures feature) { bool flag = default(bool); return(SkuUtil.IsFeatureEnabled(sku, feature, out flag)); }