/// <summary> /// Gets the smo server connection. /// </summary> /// <param name="newDataServiceDefinition"> /// The new data service definition. /// </param> /// <returns> /// An <see cref="ServerConnection"/> created from the credentials /// in the supplied data service definition. /// </returns> /// <externalUnit cref="DataServiceDefinition"/> /// <externalUnit cref="ConnectionFailureException"/> /// <externalUnit cref="MessageHelper"/> /// <revision revisor="dev06" date="10/16/2008" version="1.0.0.0"> /// Member created /// </revision> public ServerConnection GetSmoServerConnection( DataServiceDefinition newDataServiceDefinition) { ServerConnection serverConnection = null; DataServiceDefinition definitionToUse; if (newDataServiceDefinition != null) { definitionToUse = newDataServiceDefinition; } else if (DataServiceDefinition != null) { definitionToUse = DataServiceDefinition; } else { // they are both null definitionToUse = null; } if (definitionToUse != null) { serverConnection = new ServerConnection(); // Fill in necessary information serverConnection.ServerInstance = definitionToUse.ServerName; // Set connection timeout serverConnection.ConnectTimeout = 30; // Use SQL Server authentication serverConnection.LoginSecure = false; // set sql credentials serverConnection.Login = definitionToUse.SecureUsername; serverConnection.Password = definitionToUse.SecurePassword; try { // Go ahead and connect serverConnection.Connect(); } catch (ConnectionFailureException) { // tell user the connection failed. MessageHelper.ShowFatal( "The credentials you supplied are incorrect. " + "Please try again.", "Invalid Credentials"); } if (serverConnection.IsOpen == false) { serverConnection = null; } } return(serverConnection); }
private Task TransferExistingDataIfNewTarget(DataServiceDefinition dataServiceDefinition, CancellationToken cancellationToken) { return(Task.Factory.StartNew( () => { var dataService = CreateDataServiceAsync(dataServiceDefinition).Result; var idQuery = $"SELECT * FROM {dataServiceDefinition.DataType}"; if (string.IsNullOrWhiteSpace(dataServiceDefinition.Filter)) { idQuery += $" WHERE {dataServiceDefinition.Filter}"; } dataApiClient.SearchAsync(idQuery, ResultFormat.Json).Result.ForEachSearchResult( jObject => { var id = jObject.Value <string>("_id"); if (dataService.ObjectExistsAsync(id).Result) { return; } var data = (JObject)jObject["Data"]; dataService.TransferAsync(data, dataServiceDefinition.Fields, id).Wait(); }).Wait(); }, cancellationToken, TaskCreationOptions.LongRunning, TaskScheduler.Default)); }
/// <summary> /// Gets the smo server connection. /// </summary> /// <param name="newDataServiceDefinition"> /// The new data service definition. /// </param> /// <returns> /// An <see cref="ServerConnection"/> created from the credentials /// in the supplied data service definition. /// </returns> /// <externalUnit cref="DataServiceDefinition"/> /// <externalUnit cref="ConnectionFailureException"/> /// <externalUnit cref="MessageHelper"/> /// <revision revisor="dev06" date="10/16/2008" version="1.0.0.0"> /// Member created /// </revision> /// <revision revisor="dev22" date="03/02/2010" version="1.1.7.09"> /// Changed to throw an exception, instead of showing an error box, when /// the connection fails. Showing the message is caller's job, not this /// library's. /// </revision> public ServerConnection GetSmoServerConnection( DataServiceDefinition newDataServiceDefinition) { ServerConnection serverConnection = null; DataServiceDefinition definitionToUse; if (newDataServiceDefinition != null) { definitionToUse = newDataServiceDefinition; } else if (DataServiceDefinition != null) { definitionToUse = DataServiceDefinition; } else { // they are both null definitionToUse = null; } if (definitionToUse != null) { serverConnection = new ServerConnection(); // Fill in necessary information serverConnection.ServerInstance = definitionToUse.ServerName; // Set connection timeout serverConnection.ConnectTimeout = 30; // Use SQL Server authentication serverConnection.LoginSecure = false; // set sql credentials serverConnection.Login = definitionToUse.SecureUsername; serverConnection.Password = definitionToUse.SecurePassword; try { // Go ahead and connect serverConnection.Connect(); } catch (ConnectionFailureException ex) { throw new DatabaseException( DataServices.Properties.Resources.CredentialsIncorrectMessage, ex); } if (serverConnection.IsOpen == false) { serverConnection = null; } } return(serverConnection); }
/// <summary> /// Gets all database names on server. /// </summary> /// <param name="dataServiceDefinition"> /// The data service definition. /// </param> /// <returns> /// A list of all the database names found on the server as strings. /// </returns> /// <externalUnit cref="DataServiceDefinition"/> /// <externalUnit cref="ServerConnection"/> /// <externalUnit cref="ConnectionFailureException"/> /// <externalUnit cref="MessageHelper"/> /// <externalUnit cref="Server"/> /// <externalUnit cref="Database"/> /// <revision revisor="dev06" date="10/16/2008" version="1.0.0.0"> /// Member created /// </revision> public List <string> GetAllDatabaseNamesOnServer( DataServiceDefinition dataServiceDefinition) { // create storage for database names List <string> databaseNames = new List <string>(); // create server connection ServerConnection serverConn = new ServerConnection(); // Fill in necessary information serverConn.ServerInstance = dataServiceDefinition.ServerName; // Set connection timeout serverConn.ConnectTimeout = 30; // Use SQL Server authentication serverConn.LoginSecure = false; // set sql credentials serverConn.Login = dataServiceDefinition.SecureUsername; serverConn.Password = dataServiceDefinition.SecurePassword; try { // Go ahead and connect serverConn.Connect(); } catch (ConnectionFailureException exception) { // tell user the connection failed. MessageHelper.ShowFatal( "The credentials you supplied are incorrect. " + "Please try again.", "Invalid Credentials"); } // if the connection succeeded if (serverConn.IsOpen == true) { // create new server from connection Server server = new Server(serverConn); // check each db to determine if it is a profile db foreach (Database database in server.Databases) { // add it to the list if it is a profile db databaseNames.Add(database.Name); } // disconnect from server serverConn.Disconnect(); } // return the list of profile database names return(databaseNames); }
/// <summary> /// Gets all database names on server. /// </summary> /// <param name="dataServiceDefinition"> /// The data service definition. /// </param> /// <returns> /// A list of all the database names found on the server as strings. /// </returns> /// <externalUnit cref="DataServiceDefinition"/> /// <externalUnit cref="ServerConnection"/> /// <externalUnit cref="ConnectionFailureException"/> /// <externalUnit cref="MessageHelper"/> /// <externalUnit cref="Server"/> /// <externalUnit cref="Database"/> /// <revision revisor="dev06" date="10/16/2008" version="1.0.0.0"> /// Member created /// </revision> /// <revision revisor="dev22" date="03/02/2010" version="1.1.7.09"> /// Changed to throw an exception, instead of showing an error box, when /// the connection fails. Showing the message is caller's job, not this /// library's. /// </revision> public List <string> GetAllDatabaseNamesOnServer( DataServiceDefinition dataServiceDefinition) { // create storage for database names List <string> databaseNames = new List <string>(); // create server connection ServerConnection serverConn = new ServerConnection(); // Fill in necessary information serverConn.ServerInstance = dataServiceDefinition.ServerName; // Set connection timeout serverConn.ConnectTimeout = 30; // Use SQL Server authentication serverConn.LoginSecure = false; // set sql credentials serverConn.Login = dataServiceDefinition.SecureUsername; serverConn.Password = dataServiceDefinition.SecurePassword; try { // Go ahead and connect serverConn.Connect(); } catch (ConnectionFailureException ex) { throw new DatabaseException( DataServices.Properties.Resources.CredentialsIncorrectMessage, ex); } // if the connection succeeded if (serverConn.IsOpen == true) { // create new server from connection var server = new Server(serverConn); // check each db to determine if it is a profile db foreach (Database database in server.Databases) { // add it to the list if it is a profile db databaseNames.Add(database.Name); } // disconnect from server serverConn.Disconnect(); } // return the list of profile database names return(databaseNames); }
public async Task Run() { var username = "******"; var sut = new DataServiceProcessor(DataApiClient); var dataServiceDefinition = new DataServiceDefinition("1", username, nameof(Location), new List <DataServiceDefinition.Field> { new DataServiceDefinition.Field("Data.Site", "Site"), new DataServiceDefinition.Field("Data.Room", "Room") }, new SqlDataServiceTarget(IdGenerator.FromGuid(), "myserver", "MyDatabase", "Locations", username)); var processorResult = await sut.Process( DataModificationType.Created, nameof(DataServiceDefinition), dataServiceDefinition.Id, JsonConvert.SerializeObject(dataServiceDefinition)); Assert.That(processorResult.Status, Is.EqualTo(ProcessingStatus.Success)); var location = new Location("MainSite", "2.31.14"); processorResult = await sut.Process(DataModificationType.Replaced, nameof(Location), location.Id, JsonConvert.SerializeObject(location)); Assert.That(processorResult.Status, Is.EqualTo(ProcessingStatus.Success), JsonConvert.SerializeObject(processorResult)); }
private async Task <IDataService> CreateDataServiceAsync(DataServiceDefinition dataServiceDefinition) { if (dataServices.TryGetValue(dataServiceDefinition.Id, out var dataService)) { return(dataService); } switch (dataServiceDefinition.Target.Type) { case DataServiceTargetType.File: dataService = new FileDataService((FileDataServiceTarget)dataServiceDefinition.Target); break; case DataServiceTargetType.Sql: dataService = new SqlDataService((SqlDataServiceTarget)dataServiceDefinition.Target); break; default: throw new ArgumentOutOfRangeException(); } await dataService.InitializeAsync(); dataServices.TryAdd(dataServiceDefinition.Id, dataService); return(dataService); }
/// <summary> /// Initializes a new instance of the <see cref="LogDataService"/> class. /// </summary> /// <param name="definition">The definition.</param> /// <externalUnit/> /// <revision revisor="dev14" date="4/8/2010" version="1.1.7"> /// Member Created /// </revision> public LogDataService(DataServiceDefinition definition) { // set the database credentials this.DataServiceDefinition = definition; }