Esempio n. 1
0
    public static bool NotificaSectorizacion(GestorBaseDatos gestorBDCD40, GestorBaseDatos gestorBDCD40ToMantto, string listenIp, string id_sistema, string id_sectorizacion, out DateTime fechaActivacion, string serverManttoIp = null)
    {
        //AccesoABaseDeDatos a = new AccesoABaseDeDatos();
        CD40.BD.Utilidades util = new CD40.BD.Utilidades(gestorBDCD40ToMantto.ConexionMySql);
        Sectorizaciones    s    = new Sectorizaciones();

        string[] parametros = { id_sectorizacion };

        s.IdSistema       = id_sistema;
        s.IdSectorizacion = id_sectorizacion;
        List <Tablas> sActiva = gestorBDCD40.ListSelectSQL(s, null);

        if (sActiva.Count > 0)
        {
            s.FechaActivacion = ((Sectorizaciones)sActiva[0]).FechaActivacion;
            Sistema sis = new Sistema();
            sis.IdSistema = id_sistema;
            List <Tablas> sSistema = gestorBDCD40.ListSelectSQL(sis, null);
            if (sSistema.Count > 0)
            {
                sis.GrupoMulticastConfiguracion  = ((Sistema)sSistema[0]).GrupoMulticastConfiguracion;
                sis.PuertoMulticastConfiguracion = ((Sistema)sSistema[0]).PuertoMulticastConfiguracion;
                ComunicacionMulticast(listenIp, sis.GrupoMulticastConfiguracion, sis.PuertoMulticastConfiguracion, System.Text.ASCIIEncoding.ASCII.GetBytes("1" + s.FechaActivacion.ToString("dd/MM/yyyy HH:mm:ss")));
            }

            util.CreaEventoConfiguracion(id_sistema, 105, parametros, serverManttoIp);
            fechaActivacion = s.FechaActivacion;
            return(true);
        }

        util.CreaEventoConfiguracion(id_sistema, 106, parametros, serverManttoIp);
        fechaActivacion = DateTime.MinValue;
        return(false);
    }
    public bool ControladoresComunicaSectorizacionActiva(string id_sistema, string id_sectorizacion, ref DateTime fechaActivacion)
    {
        System.Configuration.Configuration webConfiguracion = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
        string listenIp       = webConfiguracion.AppSettings.Settings["ListenIp"].Value;
        string toServerMantto = webConfiguracion.AppSettings.Settings["ServerManttoIp"].Value;

        byte iEstadoSacta = 0;

        iEstadoSacta = GetEstadoSacta();

        if (iEstadoSacta == 0 || iEstadoSacta == 16 || id_sectorizacion == "SACTA") // No hay enlace con SACTA o la sectorización es de SACTA
        {
            // Servicio no arrancado (iEstadoSacta==0) o servicio arrancado pero sin conexion con SACTA (iEstadoSacta == 16) o la sectorización es de SACTA

            if (!EstanTodosLosReales(id_sistema, id_sectorizacion))
            {
                CD40.BD.Utilidades util       = new CD40.BD.Utilidades(GestorBDCD40.ConexionMySql);
                string[]           parametros = { id_sectorizacion };
                util.CreaEventoConfiguracion(id_sistema, 108, parametros, toServerMantto);

                fechaActivacion = DateTime.MinValue;
                return(false);
            }

            // Activa una sectorizacion en la base de datos.
            Utilidades.ActualizaActiva(GestorBDCD40.ConexionMySql, id_sistema, id_sectorizacion, fechaActivacion, false);
            // ResetServiciosCD40("ConexionBaseDatosCD40_Trans");

            // Activa una sectorizacion en la base de datos CD40_Trans.
            Utilidades.ActualizaActiva(GestorBDCD40.ConexionMySql, id_sistema, id_sectorizacion, fechaActivacion, false);

            // Elimina los registros de las tablas modificadas en la bd CD40 como
            // consecuencia de la llamada a Utilidades.ActualizaActiva sobre dicha bd.
            //GestorBDCD40.ExecuteNonQuery("TRUNCATE TABLE TablasModificadas", null);
        }
        else                            // La sectorización es generada desde configuración pero con enlace SACTA
        {
            GenerarSectorizacion(id_sistema, id_sectorizacion, false);

            Utilidades.ActualizaActiva(GestorBDCD40.ConexionMySql, id_sistema, id_sectorizacion, fechaActivacion, true);
            // ResetServiciosCD40("ConexionBaseDatosCD40_Trans");

            // Activa una sectorizacion en la base de datos CD40_Trans.
            Utilidades.ActualizaActiva(GestorBDCD40.ConexionMySql, id_sistema, id_sectorizacion, fechaActivacion, false);

            // Elimina los registros de las tablas modificadas en la bd CD40 como
            // consecuencia de la llamada a Utilidades.ActualizaActiva sobre dicha bd.
            //GestorBDCD40.ExecuteNonQuery("TRUNCATE TABLE TablasModificadas", null);
        }

        Rollback();

        return(Utilidades.NotificaSectorizacion(GestorBDCD40, GestorBDCD40ToMantto, listenIp, id_sistema, id_sectorizacion, out fechaActivacion, toServerMantto));
    }