public IEnumerable <DatabaseDbo> EnumerateDatabases(EnumerateDatabasesRequest request) { try { var options = new TransactionOptions() { IsolationLevel = System.Transactions.IsolationLevel.Serializable, Timeout = new TimeSpan(0, TransactionTimeout, 0) }; using (var trScope = new TransactionScope(TransactionScopeOption.Required, options)) { UsrNamePassword credentials; if (String.IsNullOrEmpty(request.LoginName) || String.IsNullOrEmpty(request.Password)) { credentials = new UsrNamePassword(); // Take credentials from the session credentials.UserName = UserName; credentials.Password = Password; } else { credentials = new UsrNamePassword(request.LoginName, request.Password); } IEnumerable <DatabaseDbo> rzlt = EnumerateDatabases(request.ServerName, credentials.UserName, credentials.Password, request.NamePattern, request.AccessibleOnly); trScope.Complete(); return(rzlt); } } catch (Exception ex) { string msg = ex.Message; return(new List <DatabaseDbo>()); } }
public CreateDbConnectionResponse CreateDbConnection(CreateDbConnectionRequest request) { var credentials = new UsrNamePassword(request.LoginName, request.Password); bool loginIsOk; string message = BuildSqlConnection(request.ServerName, request.InitialCatalog, credentials.UserName, credentials.Password, out loginIsOk); if (!loginIsOk) { return new CreateDbConnectionResponse() { Connected = false, ErrorMessage = message } } ; else { var rzlt = new CreateDbConnectionResponse() { Connected = true, CurrentServer = request.ServerName, CurrentDatabase = request.InitialCatalog, }; try { var options = new TransactionOptions() { IsolationLevel = System.Transactions.IsolationLevel.Serializable, Timeout = new TimeSpan(0, TransactionTimeout, 0) }; using (var trScope = new TransactionScope(TransactionScopeOption.Required, options)) { rzlt.Roles = GetUsersRoles(credentials.UserName); trScope.Complete(); return(rzlt); } } catch (Exception ex) { return(new CreateDbConnectionResponse() { Connected = false, ErrorMessage = ex.Message }); } } }