public static string Extract(IConnectToDatabaseConnectionInformation information) { switch (information.Source) { case ErrorLogSources.SqlServer: { var result = string.Format("Data Source={0};Initial Catalog={1};", information.Server, information.Database); if (information.UseIntegratedSecurity) { result += "Integrated Security=SSPI;"; } else { result += string.Format("User Id={0};Password={1};", information.Username, information.Password); } return result; } case ErrorLogSources.SqlServerCompact: { return string.Format("Data Source={0};Persist Security Info=False;", information.Server); } default: throw new InvalidOperationException(string.Format("Error log source {0} is not supported", information.Source)); } }
public static void Apply(IConnectToDatabaseConnectionInformation information, string connectionString) { var values = BuildDictionary(connectionString); information.Server = values.FirstOrDefault(x => x.Key.Equals("server", StringComparison.InvariantCultureIgnoreCase) || x.Key.Equals("data source", StringComparison.InvariantCultureIgnoreCase)).Value; information.Database = values.FirstOrDefault(x => x.Key.Equals("database", StringComparison.InvariantCultureIgnoreCase) || x.Key.Equals("initial catalog", StringComparison.InvariantCultureIgnoreCase)).Value; information.Username = values.FirstOrDefault(x => x.Key.Equals("user id", StringComparison.InvariantCultureIgnoreCase)).Value; information.Password = values.FirstOrDefault(x => x.Key.Equals("password", StringComparison.InvariantCultureIgnoreCase)).Value; var key = values.FirstOrDefault(x => x.Key.Equals("integrated security", StringComparison.InvariantCultureIgnoreCase) || x.Key.Equals("trusted_connection", StringComparison.InvariantCultureIgnoreCase)).Key; information.UseIntegratedSecurity = !string.IsNullOrEmpty(key); }