/// <summary> /// See <see cref="IConnectionRepository.TryLoadConnectionsFromConfig"/>. /// </summary> public SuccessResult TryLoadConnectionsFromConfig() { IEnumerable <ConnectionInfo> configuredConnections; try { var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); configuredConnections = this._configHelper.GetConnectionsFromConfiguration(config); } catch (SnapshotException ex) { return(SuccessResult.CreateFailed(ex.Message)); } catch (ConfigurationErrorsException ex) { return(SuccessResult.CreateFailed(ex.Message)); } foreach (var connection in configuredConnections) { this._connections.Add(connection); } return(SuccessResult.CreateSuccessful()); }
/// <summary> /// See <see cref="ISnapshotRepository.TryCreateSnapshot(string, DatabaseInfo)"/>. /// </summary> public SuccessResult TryCreateSnapshot(string snapshotName, DatabaseInfo database) { ArgumentChecks.AssertNotNull(snapshotName, nameof(snapshotName)); ArgumentChecks.AssertNotNull(database, nameof(database)); try { this._databaseServices.CreateSnapshotForDatabase(snapshotName, database); return(this.TryLoadSnapshots(database)); } catch (SnapshotException ex) { return(SuccessResult.CreateFailed($"{ex.Message} ({ex.InnerException.Message})")); } }
/// <summary> /// See <see cref="ISnapshotRepository.TryLoadSnapshots(DatabaseInfo)"/>. /// </summary> public SuccessResult TryLoadSnapshots(DatabaseInfo database) { ArgumentChecks.AssertNotNull(database, nameof(database)); this.ClearSnapshots(database); try { var snapshots = this._databaseServices.GetAllSnapshotsForDatabase(database); this._snapshotsPerDatabaseDict.Add(database, snapshots); return(SuccessResult.CreateSuccessful()); } catch (SnapshotException ex) { return(SuccessResult.CreateFailed($"{ex.Message} ({ex.InnerException.Message})")); } }
/// <summary> /// See <see cref="IDatabaseRepository.TryLoadDatabases(ConnectionInfo)"/>. /// </summary> public SuccessResult TryLoadDatabases(ConnectionInfo connection) { ArgumentChecks.AssertNotNull(connection, nameof(connection)); this.ClearDatabases(connection); try { var databases = this._databaseServices.GetAllDatabasesForConnection(connection); this._databasesPerConnectionDict.Add(connection, databases); return(SuccessResult.CreateSuccessful()); } catch (SnapshotException ex) { return(SuccessResult.CreateFailed($"{ex.Message} ({ex.InnerException.Message})")); } }
/// <summary> /// See <see cref="IDatabaseRepository.DeleteDatabase(ConnectionInfo)"/>. /// </summary> public SuccessResult DeleteDatabase(DatabaseInfo database) { ArgumentChecks.AssertNotNull(database, nameof(database)); try { this._databaseServices.DeleteDatabase(database); // If this snapshot and his friends from the same database were already loaded... if (this._databasesPerConnectionDict.ContainsKey(database.Connection)) { // ...we try to reload them. return(this.TryLoadDatabases(database.Connection)); } return(SuccessResult.CreateSuccessful()); } catch (SnapshotException ex) { return(SuccessResult.CreateFailed($"{ex.Message} ({ex.InnerException.Message})")); } }
/// <summary> /// See <see cref="IConnectionRepository.TrySaveConnectionsToConfig"/>. /// </summary> public SuccessResult TrySaveConnectionsToConfig() { try { var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); this._configHelper.ClearConnectionsFromConfiguration(config); foreach (var connection in this._connections) { this._configHelper.AddConnectionToConfiguration(config, connection); } config.Save(ConfigurationSaveMode.Full); } catch (ConfigurationErrorsException ex) { return(SuccessResult.CreateFailed(ex.Message)); } return(SuccessResult.CreateSuccessful()); }
/// <summary> /// See <see cref="ISnapshotRepository.TryDeleteSnapshot(SnapshotInfo)"/>. /// </summary> public SuccessResult TryDeleteSnapshot(SnapshotInfo snapshot) { ArgumentChecks.AssertNotNull(snapshot, nameof(snapshot)); try { this._databaseServices.DeleteSnapshot(snapshot); // If this snapshot and his friends from the same database were already loaded... if (this._snapshotsPerDatabaseDict.ContainsKey(snapshot.Database)) { // ...we try to reload them. return(this.TryLoadSnapshots(snapshot.Database)); } return(SuccessResult.CreateSuccessful()); } catch (SnapshotException ex) { return(SuccessResult.CreateFailed($"{ex.Message} ({ex.InnerException.Message})")); } }