Beispiel #1
0
        /// <summary>
        /// Регистриует клиента соединения, активным или нет, при необходимости принудительно отдельный экземпляр
        /// </summary>
        /// <param name="connSett">параметры соединения</param>
        /// <param name="active">признак активности</param>
        /// <param name="bReq">признак принудительного создания отдельного экземпляра</param>
        /// <returns>Идентификатор установленного соединения</returns>
        public override int Register(object connSett, bool active, string desc, bool bReq = false)
        {
            int id  = -1,
                err = -1;

            if (connSett is ConnectionSettings == true)
            {
                return(base.Register(connSett, active, desc, bReq));
            }
            else
            if (connSett is string == true)
            {
                if (m_dictDbInterfaces.ContainsKey(MC_ID) == true)
                {
                    id = m_dictDbInterfaces[MC_ID].ListenerRegister();
                }
                else
                {
                    ;
                }
            }
            else
            {
                ;
            }

            if (id < 0)
            {
                string dbNameType = string.Empty;
                DbTSQLInterface.DB_TSQL_INTERFACE_TYPE dbType = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.ModesCentre;
                dbNameType = dbType.ToString();

                if (Equals(delegateMCApiHandler, null) == false)
                {
                    m_dictDbInterfaces.Add(MC_ID, new DbMCInterface((string)connSett, delegateMCApiHandler));
                }
                else
                {
                    throw new Exception(string.Format(@"DbMCSources::Register () - не назначен делегат обработчика извещений от Модес-Центр..."));
                }

                if (active == true)
                {
                    m_dictDbInterfaces[MC_ID].Start();
                }
                else
                {
                    ;
                }
                m_dictDbInterfaces[MC_ID].SetConnectionSettings(connSett, active);

                id = m_dictDbInterfaces[MC_ID].ListenerRegister();
            }
            else
            {
                ;
            }

            return(registerListener(ListenerIdLocal, MC_ID, id, active, out err));
        }
Beispiel #2
0
        public static DbTSQLInterface.DB_TSQL_INTERFACE_TYPE getTypeDB(int port)
        {
            DbTSQLInterface.DB_TSQL_INTERFACE_TYPE typeDBRes = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.UNKNOWN;

            switch (port)
            {
            case 3306:
                typeDBRes = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.MySQL;
                break;

            case 1433:
                typeDBRes = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.MSSQL;
                break;

            case 1521:
                typeDBRes = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.Oracle;
                break;

            case -1221:
                typeDBRes = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.Access;
                break;

            default:
                break;
            }

            return(typeDBRes);
        }
Beispiel #3
0
        /// <summary>
        /// Регистриует клиента соединения, активным или нет, при необходимости принудительно отдельный экземпляр
        /// </summary>
        /// <param name="connSett">параметры соединения</param>
        /// <param name="active">признак активности</param>
        /// <param name="bReq">признак принудительного создания отдельного экземпляра</param>
        /// <returns></returns>
        public override int Register(object connSett, bool active, string desc, bool bReq = false)
        {
            int id  = -1,
                err = -1;

            if (connSett is ConnectionSettings == true)
            {
                return(base.Register(connSett, active, desc, bReq));
            }
            else
            if (connSett is string == true)
            {
                if (m_dictDbInterfaces.ContainsKey(MC_ID) == true)
                {
                    id = m_dictDbInterfaces[MC_ID].ListenerRegister();
                }
                else
                {
                    ;
                }
            }
            else
            {
                ;
            }

            if (id < 0)
            {
                string dbNameType = string.Empty;
                DbTSQLInterface.DB_TSQL_INTERFACE_TYPE dbType = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.ModesCentre;
                dbNameType = dbType.ToString();

                m_dictDbInterfaces.Add(MC_ID, new DbMCInterface((string)connSett));

                if (active == true)
                {
                    m_dictDbInterfaces[MC_ID].Start();
                }
                else
                {
                    ;
                }
                m_dictDbInterfaces[MC_ID].SetConnectionSettings(connSett, active);

                id = m_dictDbInterfaces[MC_ID].ListenerRegister();
            }
            else
            {
                ;
            }

            return(registerListener(ListenerIdLocal, MC_ID, id, active, out err));
        }
        private int register(object connSett, bool active, string desc, bool bReq = false)
        {
            int id  = -1,
                err = 0;

            //Блокировать доступ к словарю
            lock (this)
            //lock (m_objDictListeners)
            {
                //Проверить тип объекта с параметрами соединения
                if (connSett is ConnectionSettings == true)
                {
                    //Проверить наличие уже установленного соединения
                    // , и созданного объекта-потока для обработки запросов
                    if ((m_dictDbInterfaces.ContainsKey(((ConnectionSettings)connSett).id) == true) && (bReq == false))
                    {
                        try {
                            id = m_dictDbInterfaces[((ConnectionSettings)connSett).id].ListenerRegister();
                        } catch (Exception e) { err = -1; }
                    }
                    else
                    {
                        ;
                    }
                }
                else
                //Проверить тип объекта с параметрами соединения
                if (connSett is string == true)
                {
                }
                else
                {
                    ;
                }
                //Проверить результат предыдущей операции
                if (err == 0)
                {
                    if ((id < 0) && (m_dictDbInterfaces.ContainsKey(((ConnectionSettings)connSett).id) == false))
                    {
                        string dbNameType = string.Empty;
                        DbTSQLInterface.DB_TSQL_INTERFACE_TYPE dbType = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.UNKNOWN;
                        switch (((ConnectionSettings)connSett).port)
                        {
                        case -666:
                            dbType = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.ModesCentre;
                            break;

                        case 1433:
                            dbType = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.MSSQL;
                            break;

                        case 3306:
                            dbType = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.MySQL;
                            break;

                        case 1521:
                            dbType = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.Oracle;
                            break;

                        default:
                            break;
                        }

                        dbNameType = dbType.ToString();
                        //
                        switch (dbType)
                        {
                        case DbInterface.DB_TSQL_INTERFACE_TYPE.ModesCentre:
                            //m_dictDbInterfaces.Add(((ConnectionSettings)connSett).id, new DbMCInterface (dbType, @"Интерфейс: " + dbNameType));
                            break;

                        case DbInterface.DB_TSQL_INTERFACE_TYPE.MSSQL:
                        case DbInterface.DB_TSQL_INTERFACE_TYPE.MySQL:
                        case DbInterface.DB_TSQL_INTERFACE_TYPE.Oracle:
                            m_dictDbInterfaces.Add(((ConnectionSettings)connSett).id, new DbTSQLInterface(dbType, @"Интерфейс: " + dbNameType + @"-БД" + @"; " + desc));
                            break;

                        default:
                            break;
                        }
                        try
                        {
                            if (active == true)
                            {
                                m_dictDbInterfaces[((ConnectionSettings)connSett).id].Start();
                            }
                            else
                            {
                                ;
                            }

                            m_dictDbInterfaces[((ConnectionSettings)connSett).id].SetConnectionSettings(connSett, active);

                            id = m_dictDbInterfaces[((ConnectionSettings)connSett).id].ListenerRegister();
                        }
                        catch (Exception e) {
                            Logging.Logg().Exception(e
                                                     , @"DbSources::register () - ListenerRegister () - ConnectionSettings.ID=" + (connSett as ConnectionSettings).id
                                                     , Logging.INDEX_MESSAGE.NOT_SET);
                            err = -1;
                        }
                    }
                    else
                    {
                        ; // m_dictDbInterfaces[((ConnectionSettings)connSett).id].Name = desc;
                    }
                }
                else
                {
                    ;
                }

                if (err == 0)
                {
                    return(registerListener(ListenerIdLocal, ((ConnectionSettings)connSett).id, id, active, out err));
                }
                else
                {
                    return(err);
                }
            }
        }
        /// <summary>
        /// Регистриует клиента соединения, активным или нет, при необходимости принудительно отдельный экземпляр
        /// </summary>
        /// <param name="connSett">параметры соединения</param>
        /// <param name="active">признак активности</param>
        /// <param name="bReq">признак принудительного создания отдельного экземпляра</param>
        /// <returns></returns>
        public virtual int Register(object connSett, bool active, string desc, bool bReq = false)
        {
            int id  = -1,
                err = -1;

            lock (m_objDictListeners)
            {
                if (connSett is ConnectionSettings == true)
                {
                    if ((m_dictDbInterfaces.ContainsKey(((ConnectionSettings)connSett).id) == true) && (bReq == false))
                    {
                        id = m_dictDbInterfaces[((ConnectionSettings)connSett).id].ListenerRegister();
                    }
                    else
                    {
                        ;
                    }
                }
                else
                if (connSett is string == true)
                {
                }
                else
                {
                    ;
                }

                if ((id < 0) && (m_dictDbInterfaces.ContainsKey(((ConnectionSettings)connSett).id) == false))
                {
                    string dbNameType = string.Empty;
                    DbTSQLInterface.DB_TSQL_INTERFACE_TYPE dbType = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.UNKNOWN;
                    switch (((ConnectionSettings)connSett).port)
                    {
                    case -666:
                        dbType = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.ModesCentre;
                        break;

                    case 1433:
                        dbType = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.MSSQL;
                        break;

                    case 3306:
                        dbType = DbTSQLInterface.DB_TSQL_INTERFACE_TYPE.MySQL;

                        break;

                    default:
                        break;
                    }

                    dbNameType = dbType.ToString();

                    switch (dbType)
                    {
                    case DbInterface.DB_TSQL_INTERFACE_TYPE.ModesCentre:
                        //m_dictDbInterfaces.Add(((ConnectionSettings)connSett).id, new DbMCInterface (dbType, @"Интерфейс: " + dbNameType));
                        break;

                    case DbInterface.DB_TSQL_INTERFACE_TYPE.MSSQL:
                    case DbInterface.DB_TSQL_INTERFACE_TYPE.MySQL:
                        m_dictDbInterfaces.Add(((ConnectionSettings)connSett).id, new DbTSQLInterface(dbType, @"Интерфейс: " + dbNameType + @"-БД" + @"; " + desc));
                        break;

                    default:
                        break;
                    }
                    if (active == true)
                    {
                        m_dictDbInterfaces[((ConnectionSettings)connSett).id].Start();
                    }
                    else
                    {
                        ;
                    }
                    m_dictDbInterfaces[((ConnectionSettings)connSett).id].SetConnectionSettings(connSett, active);

                    id = m_dictDbInterfaces[((ConnectionSettings)connSett).id].ListenerRegister();
                }
                else
                {
                    ; // m_dictDbInterfaces[((ConnectionSettings)connSett).id].Name = desc;
                }
            }

            return(RegisterListener(((ConnectionSettings)connSett).id, id, active, out err));
        }