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); }
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); }