public ConventionResult IsSatisfiedBy(DatabaseSpecimen databaseSpecimen) { var script = GetScript(); if (string.IsNullOrWhiteSpace(script)) { throw new InvalidOperationException("Resource identified did not contain any SQL script."); } var failures = new List <string>(); using (IDbConnection dbConnection = new SqlConnection(databaseSpecimen.ConnectionString)) { dbConnection.Open(); var command = dbConnection.CreateCommand(); command.CommandText = script; using (var reader = command.ExecuteReader()) { while (reader.Read()) { failures.Add(reader.GetString(0)); } } } if (failures.Any()) { return(ConventionResult.NotSatisfied(DatabaseConventionResultIdentifier, FailureMessage + Environment.NewLine + failures.Aggregate((x, y) => x + Environment.NewLine + y))); } return(ConventionResult.Satisfied(DatabaseConventionResultIdentifier)); }
public ConventionResult IsSatisfiedBy(DatabaseSpecimen databaseSpecimen) { var resourceName = GetType().FullName + ".sql"; var assembly = GetType().Assembly.GetManifestResourceNames().Contains(resourceName) ? GetType().Assembly : typeof(DatabaseConventionSpecification).Assembly; string script; using (var stream = assembly.GetManifestResourceStream(resourceName)) using (var reader = new StreamReader(stream)) { script = reader.ReadToEnd(); } if (string.IsNullOrWhiteSpace(script)) { throw new InvalidOperationException("Resource identified did not contain any SQL script."); } var failures = new List <string>(); using (IDbConnection dbConnection = new SqlConnection(databaseSpecimen.ConnectionString)) { dbConnection.Open(); var command = dbConnection.CreateCommand(); command.CommandText = script; using (var reader = command.ExecuteReader()) { while (reader.Read()) { failures.Add(reader.GetString(0)); } } } if (failures.Any()) { return(ConventionResult.NotSatisfied(DatabaseConventionResultIdentifier, FailureMessage + Environment.NewLine + failures.Aggregate((x, y) => x + Environment.NewLine + y))); } return(ConventionResult.Satisfied(DatabaseConventionResultIdentifier)); }
public ConventionResult IsSatisfiedBy(DatabaseSpecimen databaseSpecimen) { var resourceName = GetType().FullName + ".sql"; var assembly = GetType().Assembly.GetManifestResourceNames().Contains(resourceName) ? GetType().Assembly : typeof(DatabaseConventionSpecification).Assembly; string script; using (var stream = assembly.GetManifestResourceStream(resourceName)) using (var reader = new StreamReader(stream)) { script = reader.ReadToEnd(); } if (string.IsNullOrWhiteSpace(script)) { throw new InvalidOperationException("Resource identified did not contain any SQL script."); } var failures = new List<string>(); using (IDbConnection dbConnection = new SqlConnection(databaseSpecimen.ConnectionString)) { dbConnection.Open(); var command = dbConnection.CreateCommand(); command.CommandText = script; using (var reader = command.ExecuteReader()) { while (reader.Read()) { failures.Add(reader.GetString(0)); } } } if (failures.Any()) { return ConventionResult.NotSatisfied(DatabaseConventionResultIdentifier, FailureMessage + Environment.NewLine + failures.Aggregate((x, y) => x + Environment.NewLine + y)); } return ConventionResult.Satisfied(DatabaseConventionResultIdentifier); }
public static ConventionResult MustConformTo(this DatabaseSpecimen databaseSpecimen, IDatabaseConventionSpecification databaseConventionSpecification) { return(databaseConventionSpecification.IsSatisfiedBy(databaseSpecimen)); }