protected virtual IEnumerable <UoeDatabaseConnection> GetDatabaseConnections(bool addDatabasesInCurrentDirectory, bool throwWhenNoDatabaseFound) { var nbYield = 0; foreach (var connection in DatabaseConnections.ToNonNullEnumerable().Where(c => !string.IsNullOrEmpty(c))) { foreach (var databaseConnection in UoeDatabaseConnection.GetConnectionStrings(connection)) { nbYield++; yield return(databaseConnection); } } var ope = GetOperator(); foreach (var path in DatabasePaths.ToNonNullEnumerable().Where(d => !string.IsNullOrEmpty(d))) { nbYield++; var loc = new UoeDatabaseLocation(path); loc.ThrowIfNotExist(); yield return(ope.GetDatabaseConnection(loc)); } if (!addDatabasesInCurrentDirectory && throwWhenNoDatabaseFound) { throw new CommandException($"You must specify a database connection string using the option {OptionDatabaseConnectionShortName.PrettyQuote()} or a database path by using the option {OptionDatabaseFileShortName.PrettyQuote()}."); } if (nbYield > 0 || !addDatabasesInCurrentDirectory) { yield break; } foreach (var databaseLocation in GetDatabaseLocationsFromCd(throwWhenNoDatabaseFound)) { databaseLocation.ThrowIfNotExist(); yield return(ope.GetDatabaseConnection(databaseLocation)); } }
protected virtual IEnumerable <UoeDatabaseLocation> GetDatabaseLocations(bool addDatabasesInCurrentDirectory, bool throwWhenNoDatabaseFound) { var nbYield = 0; foreach (var path in DatabasePaths.ToNonNullEnumerable().Where(d => !string.IsNullOrEmpty(d))) { nbYield++; yield return(new UoeDatabaseLocation(path)); } if (!addDatabasesInCurrentDirectory && throwWhenNoDatabaseFound) { throw new CommandException($"You must specify a database path by using the option {OptionDatabaseFileShortName.PrettyQuote()}."); } if (nbYield > 0 || !addDatabasesInCurrentDirectory) { yield break; } foreach (var databaseLocation in GetDatabaseLocationsFromCd(throwWhenNoDatabaseFound)) { yield return(databaseLocation); } }