private string DameNombreSector(MySql.Data.MySqlClient.MySqlTransaction trans, string[] listaSectores, string idSistema, string idNucleo)
    {
        System.Text.StringBuilder lista = new System.Text.StringBuilder();
        foreach (string s in listaSectores)
        {
            lista.AppendFormat("'{0}',", s);
        }

        // Buscar una agrupación
        if (lista.Length > 0)
        {
            lista = lista.Remove(lista.Length - 1, 1);

            CD40.BD.Utilidades u             = new CD40.BD.Utilidades(GestorBDCD40.ConexionMySql);
            string             nomAgrupacion = u.GetAgrupacion(listaSectores.Length, lista.ToString());
            // Si no la encuentra, aplicar algoritmo
            if (nomAgrupacion == null)
            {
                nomAgrupacion = GeneraAlgoritmo(idSistema, idNucleo, lista.ToString(), trans);
            }

            return(nomAgrupacion);
        }

        return("");
    }
Esempio n. 2
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));
    }
Esempio n. 4
0
    public static void AsignaDestinoARecurso(ParametrosRecursoGeneral t, MySql.Data.MySqlClient.MySqlTransaction tran)
    {
        try
        {
            CD40.BD.Utilidades u = new CD40.BD.Utilidades(tran.Connection);

            u.UpdateDestinoSQL(t, tran);
        }
        catch (MySql.Data.MySqlClient.MySqlException)
        {
        }
    }
Esempio n. 5
0
    public static void LiberaDestinoDeRecurso(ParametrosRecursoGeneral t, MySql.Data.MySqlClient.MySqlTransaction tran)
    {
        try
        {
            CD40.BD.Utilidades u = new CD40.BD.Utilidades(tran.Connection);

            //MySql.Data.MySqlClient.MySqlTransaction trans = GestorBDCD40.StartTransaction(true);
            u.LiberaDestinoSQL(t, tran);
            //GestorBDCD40.Commit(trans);
        }
        catch (MySql.Data.MySqlClient.MySqlException)
        {
        }
    }
        public string SectorizeFromSacta(uint Version, string dataSect)
        {
            var       info            = new SactaInfo();
            var       FechaActivacion = DateTime.Now;
            var       util            = new CD40.BD.Utilidades(MySqlConnectionToCd40);
            int       Result          = 0;
            string    Cause           = default(string);
            object    sectorizacion   = null;
            Exception exception       = default(Exception);

            util.EventResultSectorizacion += new CD40.BD.SectorizacionEventHandler <CD40.BD.SactaInfo>((resinfo) =>
            {
                Result = (int)resinfo["Resultado"];
                Cause  = resinfo.ContainsKey("ErrorCause") ? (string)resinfo["ErrorCause"] : null;
            });

            info["Version"]   = Version;
            info["IdSistema"] = "departamento";
            info["SectName"]  = "SACTA";
            info["SectData"]  = dataSect;
            try
            {
                sectorizacion = util.GeneraSectorizacion(info, FechaActivacion);
            }
            catch (Exception x)
            {
                Result    = 1;
                Cause     = String.Format("Exception {0}", x.Message);
                exception = x;
            }
            return(JsonConvert.SerializeObject(new
            {
                Executed = sectorizacion != null,
                FechaActivacion,
                Version,
                Result,
                Cause,
                DataIn = new
                {
                    Version,
                    dataSect
                },
                exception
            }));;
        }
Esempio n. 7
0
    /*
     * public DataSet SelectView(string viewName, params string[] strWhere)
     * {
     * AccesoABaseDeDatos a = new AccesoABaseDeDatos();
     * return a.SelectView(viewName, strWhere);
     * }
     */
    public static void ActualizaActiva(MySql.Data.MySqlClient.MySqlConnection conexionCD40, string idSistema, string idSectorizacion, DateTime now, bool sactaPresente)
    {
        if (string.Compare(idSectorizacion, "SACTA") != 0)
        {
            now = DateTime.Now;
        }
        else
        {
            //Si la sectorización es SACTA y la fecha de activación no está inicializada, se actualiza a la fecha actual
            if (now == DateTime.MinValue)
            {
                now = DateTime.Now;
            }
        }

        CD40.BD.Utilidades u = new CD40.BD.Utilidades(conexionCD40);
        u.ActivaSectorizacion(idSistema, idSectorizacion, now, sactaPresente);
        //u.CrearSectorizacionActiva(idSistema, idSectorizacion, now, sactaPresente);
    }