Пример #1
0
        public void iniciarETLBalanzaCSV(Int64 idEmpresa)
        {
            ETLBalanzaDA etlBalanza = new ETLBalanzaDA();
            string       archivo    = string.Empty;

            string         ruta    = Constantes.CSV_PATH_BALANZA;
            List <Balanza> lstBala = new List <Balanza>();

            DateTime fechaInicioProceso = DateTime.Now;
            Proceso  proceso            = new Proceso();

            try
            {
                archivo = etlBalanza.generarSalContCC_CSV(idEmpresa, ruta);
                //prueba
                //archivo = "PruebaBalanzaRecrotado.csv";

                int cantRegAfectados = etlBalanza.copy_balanza(archivo, ruta);

                DateTime fechaFinalProceso = DateTime.Now;


                configCorreo.EnviarCorreo("La extracción de Balanza se genero correctamente"
                                          + "\nFecha Inicio : " + fechaInicioProceso + " \n Fecha Final: " + fechaFinalProceso
                                          + "\nTiempo de ejecucion : " + (fechaFinalProceso - fechaInicioProceso).TotalMinutes + " mins"
                                          , Constantes.MENSAJE_CORREO_ETL);

                proceso.id_empresa   = idEmpresa;
                proceso.tipo         = Constantes.TIPO_EXT_PROGRAMADA;
                proceso.fecha_inicio = fechaInicioProceso;
                proceso.fecha_fin    = fechaFinalProceso;
                proceso.estatus      = Constantes.EST_EXT_FIN;
                proceso.mensaje      = "";

                procesoDa.AddProceso(proceso);

                etlBalanza.UpdateCuentaUnificada(idEmpresa);// concatencacion de cuentas
            }
            catch (Exception ex)
            {
                DateTime fechaFinalProceso = DateTime.Now;
                configCorreo.EnviarCorreo("Ha ocurrido un error en la extracción de Balanza"
                                          + "\nFecha Inicio : " + fechaInicioProceso + "\nFecha Final: " + fechaFinalProceso
                                          + "\nTiempo de ejecucion : " + (fechaFinalProceso - fechaInicioProceso).TotalMinutes + " mins"
                                          + "\nError : " + ex.Message
                                          , Constantes.MENSAJE_CORREO_ETL);
                string error = ex.Message;
                proceso.id_empresa   = idEmpresa;
                proceso.tipo         = Constantes.TIPO_EXT_PROGRAMADA;
                proceso.fecha_inicio = fechaInicioProceso;
                proceso.fecha_fin    = fechaFinalProceso;
                proceso.estatus      = Constantes.EST_EXT_ERR;
                proceso.mensaje      = ex.Message;
                procesoDa.AddProceso(proceso);
                //etlBalanza.UpdateCuentaUnificada();// concatencacion de cuentas
                throw;
            }
        }
Пример #2
0
        public void iniciaServicio(int timeTo)
        {
            while (continua)
            {
                ETLBalanzaDA     etl         = new ETLBalanzaDA();
                ValidaExtraccion valiExtr    = new ValidaExtraccion();
                List <ETLProg>   lstExtrProg = new List <ETLProg>();
                lstExtrProg = valiExtr.lstExisteExtr();

                List <ETLProg> lstExtrProg1 = new List <ETLProg>();
                lstExtrProg1 = valiExtr.lstParametros();

                //int id_compania = lstExtrProg1[0].INT_ID_EMPRESA;

                Int64  idEmpresa      = 0;
                string nombreCompania = "";

                foreach (ETLProg etlProg in lstExtrProg1)
                {
                    idEmpresa = etlProg.id;
                    List <Empresa> lstCompania = etl.EmpresaConexionETL_List(idEmpresa);
                    if (lstCompania != null)
                    {
                        if (lstCompania.Count >= 1)
                        {
                            nombreCompania = lstCompania[0].nombre;
                        }
                    }

                    try
                    {
                        Thread.Sleep(timeTo);
                        //anterior
                        ///etl.insertarTabBalanza(idEmpresa,nombreCompania);
                        /// con cvs
                        this.iniciarETLBalanzaCSV(idEmpresa);
                    }
                    catch (Exception ex)
                    {
                        //string error = ex.Message;
                        //configCorreo.EnviarCorreo("Estimado Usuario : \n\n  La extracción correspondiente a la compania " + idEmpresa +"."+ nombreCompania + " se genero incorrectamente \n\n Mensaje de Error: \n " + ex, "ETL Extracción Balanza");
                        //throw;
                    }
                }



                //try
                //{
                //    Thread.Sleep(timeTo);
                //    Compania compania = new Compania();

                //    if (lstExtrProg.Count() == 0)
                //    {
                //        //etl.CadenaConexionETL(id_compania);
                //        etl.addTAB_BALANZA(id_compania);
                //        //if (lstExtrProg[0].EXISTE == 0)
                //        //if (lstExtrProg[0].EXISTE == 0)
                //        //{
                //        //    new ETL().addTAB_BALANZA(compania);
                //        //}
                //        //else
                //        //{
                //        //    continue;
                //        //}
                //    }
                //    else
                //    {

                //    }


                //}
                //catch (Exception ex)
                //{
                //    string error = ex.Message;
                //    throw;
                //}
            }
        }
Пример #3
0
        public DSN crearDSN(Int64 idEmpresa)
        {
            ETLBalanzaDA   etl    = new ETLBalanzaDA();
            List <Empresa> lstCia = etl.EmpresaConexionETL_List(idEmpresa);

            //Obtener los datos de la Tab_Compania para crear el DSN
            //ETLDataAccesLayer eTLDataAccesLayer = new ETLDataAccesLayer();
            //List<Compania> lstCia = eTLDataAccesLayer.CadenaConexionETL_lst(id_compania);
            Empresa empresa = new Empresa();

            empresa.usuario_etl     = lstCia[0].usuario_etl;
            empresa.contrasenia_etl = lstCia[0].contrasenia_etl;
            empresa.contra_bytes    = lstCia[0].contra_bytes;
            empresa.apuntador       = lstCia[0].apuntador;
            empresa.llave           = lstCia[0].llave;
            empresa.host            = lstCia[0].host;
            empresa.puerto_compania = lstCia[0].puerto_compania;
            empresa.bd_name         = lstCia[0].bd_name;
            empresa.id     = lstCia[0].id;
            empresa.nombre = lstCia[0].nombre;

            string ctr = string.Empty;

            ctr = Utilerias.DecryptStringFromBytes(empresa.contra_bytes, empresa.llave, empresa.apuntador);
            empresa.contrasenia_etl = ctr;


            string ODBC_PATH         = string.Empty;
            string driver            = string.Empty;
            string DsnNombre         = string.Empty;
            string Descri            = string.Empty;
            string DireccionDriver   = string.Empty;
            bool   trustedConnection = false;

            try
            {
                ODBC_PATH       = "SOFTWARE\\ODBC\\ODBC.INI\\";
                driver          = "SQL Anywhere 12";                                                                                  //Nombre del Driver
                DsnNombre       = empresa.id + "_" + empresa.nombre.Substring(0, 5).TrimEnd().Replace(" ", "_") + "_" + empresa.host; //nombre con el que se va identificar el DSN
                Descri          = "DNS_Sybase" + DsnNombre;
                DireccionDriver = "C:\\Program Files\\SQL Anywhere 12\\Bin64\\dbodbc12.dll";
                var datasourcesKey = Registry.LocalMachine.CreateSubKey(ODBC_PATH + "ODBC Data Sources");



                if (datasourcesKey == null)
                {
                    throw new Exception("La clave de registro ODBC no existe");
                }



                //// Se crea el DSN en datasourcesKey aunque ya exista
                datasourcesKey.SetValue(DsnNombre, driver);
                //// Borrado de DSN para Actualizar  datos en base de datos
                datasourcesKey.DeleteValue(DsnNombre);
                /// Se crea DSN con datos actuales
                datasourcesKey.SetValue(DsnNombre, driver);


                var dsnKey = Registry.LocalMachine.CreateSubKey(ODBC_PATH + DsnNombre);

                if (dsnKey == null)
                {
                    throw new Exception("No se creó la clave de registro ODBC para DSN");
                }

                dsnKey.SetValue("Database", empresa.bd_name);
                dsnKey.SetValue("Description", Descri);
                dsnKey.SetValue("Driver", DireccionDriver);
                dsnKey.SetValue("User", empresa.usuario_etl);
                dsnKey.SetValue("Host", empresa.host + ":" + empresa.puerto_compania);
                dsnKey.SetValue("Server", empresa.host);
                dsnKey.SetValue("Database", empresa.bd_name);
                dsnKey.SetValue("username", empresa.usuario_etl);
                dsnKey.SetValue("password", empresa.contrasenia_etl);
                dsnKey.SetValue("Trusted_Connection", trustedConnection ? "Yes" : "No");

                DSN dsn = new DSN();
                dsn.creado    = true;
                dsn.nombreDSN = DsnNombre;
                return(dsn);
                //return 1; //se creo
            }
            catch (Exception ex)
            {
                string error = ex.Message;

                DSN dsn = new DSN();
                dsn.creado    = false;
                dsn.nombreDSN = DsnNombre;
                throw;
                //return dsn;
                //return 0; //Nose creo
            }
        }