public IDatabaseCollector Create(EDatabaseType type)
        {
            IDatabaseCollector collector = null;

            try
            {
                switch (type)
                {
                case EDatabaseType.Oracle:
                    collector = new OracleCollector();
                    break;

                case EDatabaseType.SqlServer:
                    collector = new SqlServerCollector();
                    break;

                case EDatabaseType.Postgres:
                    collector = new PostgresCollector();
                    break;

                case EDatabaseType.Unknown:
                default:
                    throw new Exception($"Unknown database type {type}");
                }
            }
            catch (Exception ex)
            {
                ApplicationEventLog log = new ApplicationEventLog();
                log.LogError("Error in DatabaseCollectorFactory connection");
                log.Log(ex);
            }

            return(collector);
        }
        protected Tuple <Dictionary <string, ulong>, bool> QueryDatabase()
        {
            GetDBInfo();

            Tuple <Dictionary <string, ulong>, bool> data = Tuple.Create(new Dictionary <string, ulong>(), true);
            IDatabaseCollector collector = Factory.Create(DBType);

            if (collector != null)
            {
                data = collector.GetData(ConnectionString);
            }

            return(data);
        }