/// <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);
        }
Exemple #2
0
 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));
 }
Exemple #3
0
        /// <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);
        }
Exemple #5
0
        /// <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);
        }
Exemple #6
0
        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));
        }
Exemple #7
0
        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);
        }
Exemple #8
0
 /// <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;
 }