private void GeneraSectoresSector(MySql.Data.MySqlClient.MySqlTransaction trans, string idsistema, string nucleo, string nomSector, KeyValuePair <string, string[]> top)
    {
        try
        {
            SectoresSector ss = new SectoresSector();

            foreach (string s in top.Value)
            {
                ss.IdSistema        = idsistema;
                ss.IdNucleo         = nucleo;
                ss.IdSector         = nomSector;
                ss.IdSectorOriginal = s;

                // Comprobar que esta combinación de sectores no existe en la tabla Sectores
                // en cuyo caso no hay nada que generar
                if (GestorBDCD40.ListSelectSQL(ss, trans).Count > 0)
                {
                    continue;
                }

                ss.EsDominante = top.Value[0] == s;                     // si es el primer usuario, es dominante

                GestorBDCD40.InsertSQL(ss, trans);
            }
        }
        catch (Exception)
        {
        }
    }
    public void ControladoresRenombraSectorizacion(string idSistema, string idSectorizacion)
    {
        Sectorizaciones s = new Sectorizaciones();

        s.IdSistema       = idSistema;
        s.IdSectorizacion = idSectorizacion;

        // // ResetServiciosCD40("ConexionBaseDatosCD40");
        MySql.Data.MySqlClient.MySqlTransaction trans = GestorBDCD40.StartTransaction(true);

        try
        {
            string consulta = "DELETE FROM Sectorizaciones WHERE IdSistema='" + idSistema + "' AND IdSectorizacion='" + idSectorizacion + "'";
            GestorBDCD40.ExecuteNonQuery(consulta, trans);

            consulta = "UPDATE Sectorizaciones SET IdSectorizacion='" + idSectorizacion + "' WHERE IdSistema='" + idSistema +
                       "' AND IdSectorizacion='TEMPORARY_CONTROLLER_SCTZ'";
            GestorBDCD40.ExecuteNonQuery(consulta, trans);
            GestorBDCD40.Commit(trans);
        }
        catch (MySql.Data.MySqlClient.MySqlException)
        {
            GestorBDCD40.RollBack(trans);
        }
        //finally
        //{
        // // ResetServiciosCD40("ConexionBaseDatosCD40_Trans");
        //}
    }
    private void ResetSectorizacion(MySql.Data.MySqlClient.MySqlTransaction trans, string idsistema)
    {
        Sectorizaciones sctz = new Sectorizaciones();

        sctz.IdSistema       = idsistema;
        sctz.IdSectorizacion = "TEMPORARY_CONTROLLER_SCTZ";

        GestorBDCD40.DeleteSQL(sctz, trans);
        GestorBDCD40.InsertSQL(sctz, trans);
    }
    public DataSet ControladoresRecuperaListaSectores(string idSistema, string idNucleo, string idSector)
    {
        string consulta = "SELECT ss.*, s.Tipo FROM SectoresSector ss " +
                          "JOIN Sectores s " +
                          "WHERE ss.IdSistema='" + idSistema + "' AND " +
                          "ss.IdNucleo='" + idNucleo + "' AND " +
                          "ss.IdSector='" + idSector + "' AND " +
                          "s.idsistema = ss.IdSistema AND s.idNucleo = ss.IdNucleo AND s.IdSector = ss.IdSector";

        return(GestorBDCD40.GetDataSet(consulta, null));
    }
    private void GenerarTop(MySql.Data.MySqlClient.MySqlTransaction trans, string idsistema, string nucleo, KeyValuePair <string, string[]> top)
    {
        try
        {
            if (top.Value.Length > 0)
            {
                string nomSector = DameNombreSector(trans, top.Value, idsistema, nucleo);
                if (nomSector != "")
                {
                    // Crear el nuevo sector
                    GeneraSector(trans, idsistema, nucleo, nomSector, top.Value);

                    // Insertar el nuevo sector en la sectorización
                    SectoresSectorizacion ss = new SectoresSectorizacion();
                    ss.IdSistema       = idsistema;
                    ss.IdSectorizacion = "TEMPORARY_CONTROLLER_SCTZ";
                    ss.IdTop           = top.Key;
                    ss.IdNucleo        = nucleo;
                    ss.IdSector        = nomSector;

                    GestorBDCD40.InsertSQL(ss, trans);

                    // Crear el nuevo SectoresSector
                    GeneraSectoresSector(trans, idsistema, nucleo, nomSector, top);
                }
            }
            else
            {
                string nomSector = "**FS**";

                // Crear el nuevo sector
                GeneraSector(trans, idsistema, nucleo, nomSector, null);

                // Insertar el nuevo sector en la sectorización
                SectoresSectorizacion ss = new SectoresSectorizacion();
                ss.IdSistema       = idsistema;
                ss.IdSectorizacion = "TEMPORARY_CONTROLLER_SCTZ";
                ss.IdTop           = top.Key;
                ss.IdNucleo        = nucleo;
                ss.IdSector        = nomSector;

                GestorBDCD40.InsertSQL(ss, trans);
            }
        }
        catch (Exception)
        {
        }
    }
    private void GeneraSector(MySql.Data.MySqlClient.MySqlTransaction trans, string idSistema, string idNucleo, string nomSector, string[] listSectores)
    {
        try
        {
            //ServiciosCD40.ServiciosCD40 g = new ServiciosCD40.ServiciosCD40();
            Sectores s = new Sectores();

            s.IdSistema = idSistema;
            s.IdSector  = nomSector;
            s.IdNucleo  = idNucleo;

            // Comprobar que esta combinación de sectores no existe en la tabla Sectores
            // en cuyo caso no hay nada que generar
            if (GestorBDCD40.ListSelectSQL(s, trans).Count > 0)
            {
                return;
            }

            s.IdParejaUCS  = s.IdNucleoParejaUCS = s.IdSistemaParejaUCS = null;
            s.SectorSimple = false;
            s.Tipo         = "R";
            s.TipoPosicion = "C";

            // Obtener literales de los usuarios
            if (listSectores != null)
            {
                System.Text.StringBuilder lista = new System.Text.StringBuilder();
                foreach (string user in listSectores)
                {
                    lista.AppendFormat("'{0}',", user);
                }
                lista         = lista.Remove(lista.Length - 1, 1);
                s.PrioridadR2 = GetPrioridadSector(s.IdSistema, s.IdNucleo, lista.ToString());
            }

            s.TipoHMI  = 0;
            s.NumSacta = 0;

            GestorBDCD40.InsertSQL(s, trans);
        }
        catch (Exception)
        {
        }
    }