public NetworkInformationCommand(
				NetworkInformationConnection networkInformationConnection
			)
			{
				this._networkInformationConnection = networkInformationConnection;

				this._pinger = CreatePinger(networkInformationConnection);
			}
            public NetworkInformationCommand(
                NetworkInformationConnection networkInformationConnection
                )
            {
                this._networkInformationConnection = networkInformationConnection;

                this._pinger = CreatePinger(networkInformationConnection);
            }
            private IPinger CreatePinger(NetworkInformationConnection connection)
            {
                switch (connection.Protocol)
                {
                case ProtocolType.Tcp:
                    return(new TcpPinger(connection.Host, connection.Port, connection.Timeout));

                case ProtocolType.Udp:
                    return(new UdpPinger(connection.Host, connection.Port, connection.Timeout));

                default:
                    return(new HostPinger(connection.Host, connection.Timeout));
                }
            }
		public NetworkInformationQueryConnection(NetworkInformationConnection connection)
		{
			this._networkInformationConnection = connection;
		}
			private IPinger CreatePinger(NetworkInformationConnection connection)
			{
				switch (connection.Protocol)
				{
					case ProtocolType.Tcp:
						return new TcpPinger(connection.Host, connection.Port, connection.Timeout);

					case ProtocolType.Udp:
						return new UdpPinger(connection.Host, connection.Port, connection.Timeout);

					default:
						return new HostPinger(connection.Host, connection.Timeout);
				}
			}
 public static NetworkInformationConnection CreateNetworkInformationConnection(InstanceInfo instanceInfo)
 {
     return(NetworkInformationConnection.Parse(
                instanceInfo.GetConnectionString()
                ));
 }
        public IQueryConnection CreateQueryConnection(QuerySource sourceType, InstanceInfo instance)
        {
            bool        isOdbc    = instance.IsODBC;
            QuerySource queryType = instance.Type;

            instance.SetSettings(this._model.Settings);

            if (sourceType == QuerySource.SQLite)
            {
                IStorageManager storageManager = this._model.GetVaultProcessor(
                    instance.ConnectionGroup ?? new ConnectionGroupInfo()
                    );

                AttachingSqliteQueryConnection sqliteQueryConnection;
                string connectionString = instance.GetConnectionString();
                SqliteConnectionParameters connectionParameters = SqliteConnectionParameters.Parse(connectionString);

                if (connectionParameters.IsValid)
                {
                    sqliteQueryConnection = new SqliteInnerQueryConnection(
                        storageManager.CurrentStorage,
                        connectionParameters
                        );
                }
                else
                {
                    sqliteQueryConnection = new SqliteInternalQueryConnection(
                        storageManager.CurrentStorage,
                        instance
                        );
                }

                if (storageManager.HistoryStorage != null)
                {
                    foreach (var historyStorage in storageManager.HistoryStorage)
                    {
                        sqliteQueryConnection.AddDatabaseToAttach(
                            historyStorage.Alias,
                            historyStorage.FileName
                            );
                    }
                }

                if (storageManager.ReportStorage != null)
                {
                    sqliteQueryConnection.AddDatabaseToAttach(
                        "report",
                        storageManager.ReportStorage.FileName
                        );
                }

                return(sqliteQueryConnection);
            }

            if (isOdbc)
            {
                OdbcConnection odbcConnection = ConnectionFactory.CreateOdbcConnection(instance, true);

                return(new OdbcQueryConnection(odbcConnection));
            }

            if (sourceType == queryType)
            {
                switch (sourceType)
                {
                case QuerySource.MSSQL:
                    SqlConnection sqlConnection =
                        ConnectionFactory.CreateSqlConnection(instance, true);

                    return(new MsSqlQueryConnection(sqlConnection));

                case QuerySource.TDSQL:
                    TdConnection tdConnection =
                        ConnectionFactory.CreateTdConnection(instance, true);

                    return(new TeradataSqlQueryConnection(tdConnection));

                case QuerySource.SQLiteExternal:
                    SQLiteConnection sqliteConnection =
                        ConnectionFactory.CreateSQLiteExternalConnection(instance);

                    return(new SqliteExternalQueryConnection(sqliteConnection));

                case QuerySource.ActiveDirectory:
                    ActiveDirectoryConnection activeDirectoryConnection =
                        ConnectionFactory.CreateActiveDirectoryConnection(instance);

                    return(new ActiveDirectoryQueryConnection(activeDirectoryConnection));

                case QuerySource.EventLog:
                    EventLogConnection eventLogConnection =
                        ConnectionFactory.CreateEventLogConnection(instance);

                    return(new EventLogQueryConnection(eventLogConnection));

                case QuerySource.NetworkInformation:
                    NetworkInformationConnection networkInfoConnection =
                        ConnectionFactory.CreateNetworkInformationConnection(instance);

                    return(new NetworkInformationQueryConnection(networkInfoConnection));
                }
            }

            string errorMessage = String.Format(
                "There is no QueryConnection defined. QuerySource: {0}, QueryType: {1}",
                sourceType,
                queryType
                );

            Log.ErrorFormat(errorMessage);

            throw new ArgumentException(errorMessage);
        }
 public NetworkInformationQueryConnection(NetworkInformationConnection connection)
 {
     this._networkInformationConnection = connection;
 }