예제 #1
0
        public ResultadoOperacionDto ProcesarImportacionArchivosBMV(InformacionProcesoImportacionArchivosBMVDto infoProcesoImportacionDto)
        {
            var resultadoOperacion = new ResultadoOperacionDto();
            var bitacora           = new BitacoraProcesarArchivosBMV();

            bitacora.Estatus = 1;

            try
            {
                resultadoOperacion.Resultado = true;

                LogUtil.Error("Inicializa el metodo de ProcesarArchivosEmisorasBMV");

                var resultadoSincronizacion = SincronizacionArchivosBMVService.ProcesarArchivosEmisorasBMV(infoProcesoImportacionDto.archivoEmisoras, infoProcesoImportacionDto.archivoFideicomisos);

                LogUtil.Error("Fin del metodo de ProcesarArchivosEmisorasBMV");

                resultadoOperacion.InformacionExtra = resultadoSincronizacion;

                infoProcesoImportacionDto.archivoEmisoras     = null;
                infoProcesoImportacionDto.archivoFideicomisos = null;

                bitacora.FechaHoraProcesamiento         = DateTime.Now;
                bitacora.NumeroEmisorasReportadas       = resultadoSincronizacion.EmisorasImportadas.Count;
                bitacora.NumeroFideicomisosReportados   = resultadoSincronizacion.FideicomisosImportados.Count;
                bitacora.RutaOrigenArchivoEmisoras      = infoProcesoImportacionDto.RutaOrigenArchivoEmisoras;
                bitacora.RutaDestinoArchivoEmisoras     = infoProcesoImportacionDto.RutaDestinoArchivoEmisoras;
                bitacora.RutaOrigenArchivoFideicomisos  = infoProcesoImportacionDto.RutaOrigenArchivoFideicomisos;
                bitacora.RutaDestinoArchivoFideicomisos = infoProcesoImportacionDto.RutaDestinoArchivoFideicomisos;
                bitacora.InformacionSalida = JsonConvert.SerializeObject(resultadoSincronizacion);

                BitacoraProcesarArchivosBMVRepository.Add(bitacora);
            }
            catch (Exception e) {
                LogUtil.Error(e);
                bitacora.Estatus             = 2;
                resultadoOperacion.Resultado = false;
                resultadoOperacion.Mensaje   = e.StackTrace;
            }

            return(resultadoOperacion);
        }
예제 #2
0
        public void Execute(JobExecutionContext context)
        {
            var pathArchivosPendientesBMV = WebConfigurationManager.AppSettings["pathArchivosPendientesBMV"];

            var emisoraArchivoNombre     = WebConfigurationManager.AppSettings["emisoraArchivoNombre"];
            var fideicomisoArchivoNombre = WebConfigurationManager.AppSettings["fideicomisoArchivoNombre"];


            Stream emisorasStream     = null;
            Stream fideicomisosStream = null;

            //DirectoryInfo directoryInfo = new DirectoryInfo(@pathArchivosPendientesBMV);
            string[] filesInDirectory = Directory.GetFiles(@pathArchivosPendientesBMV, "*.txt", SearchOption.TopDirectoryOnly);


            string emisorasPath     = null;
            string fideicomisosPath = null;

            foreach (string archivoAProcesar in filesInDirectory)
            {
                if (archivoAProcesar.Contains(emisoraArchivoNombre))
                {
                    emisorasPath = archivoAProcesar;
                }
                if (archivoAProcesar.Contains(fideicomisoArchivoNombre))
                {
                    fideicomisosPath = archivoAProcesar;
                }
            }

            try
            {
                JobDataMap dataMap        = context.JobDetail.JobDataMap;
                var        empresaService = (IEmpresaService)dataMap["emisoraService"];


                //var empresaService = (IEmpresaService)ServiceLocator.ObtenerFabricaSpring().GetObject("EmpresaService");

                emisorasStream = emisorasPath != null?File.OpenRead(@emisorasPath) : null;

                fideicomisosStream = fideicomisosPath != null?File.OpenRead(@fideicomisosPath) : null;


                var infoProcesoImportacionDto = new  InformacionProcesoImportacionArchivosBMVDto();
                infoProcesoImportacionDto.archivoFideicomisos            = fideicomisosStream;
                infoProcesoImportacionDto.archivoEmisoras                = emisorasStream;
                infoProcesoImportacionDto.RutaOrigenArchivoEmisoras      = emisorasPath != null? emisorasPath : "Sin informacion";
                infoProcesoImportacionDto.RutaOrigenArchivoFideicomisos  = fideicomisosPath != null? fideicomisosPath:"Sin informacion";
                infoProcesoImportacionDto.RutaDestinoArchivoEmisoras     = emisorasPath != null ? emisorasPath : "Sin informacion";
                infoProcesoImportacionDto.RutaDestinoArchivoFideicomisos = fideicomisosPath != null ? fideicomisosPath : "Sin informacion";

                //Ejecucion del metodo
                var resultadoOperacion = empresaService.ProcesarImportacionArchivosBMV(infoProcesoImportacionDto);

                if (emisorasStream != null)
                {
                    emisorasStream.Close();
                }
                if (fideicomisosStream != null)
                {
                    fideicomisosStream.Close();
                }

                moverArchivos(emisorasPath, fideicomisosPath, resultadoOperacion.Resultado);
                moverArchivosEnPendientesANoProcesados();
            }
            catch (Exception e)
            {
                if (emisorasStream != null)
                {
                    emisorasStream.Close();
                }
                if (fideicomisosStream != null)
                {
                    fideicomisosStream.Close();
                }
                LogUtil.Error("***********************ERROR EN EL PROCESAMIENTO DE LA CARGA DE ARCHIVOS PARA SINCRONIZAR DE LA BMV ****************************************************");
                LogUtil.Error("aRCHIVO emisorasPath:" + emisorasPath);
                LogUtil.Error("aRCHIVO fideicomisosPath:" + fideicomisosPath);
                LogUtil.Error(e);
            }
        }