private void EjecutaDistribucion( long idDocumentoInstancia, long version, IDictionary <string, object> parametros, IVersionDocumentoInstanciaRepository versionDocumentoInstanciaRepository, IDocumentoInstanciaRepository documentoInstanciaRepository, IDistribucionDocumentoXBRL distribucion ) { versionDocumentoInstanciaRepository.DbContext.Database.CommandTimeout = 380; var versionDocumento = versionDocumentoInstanciaRepository.GetQueryable().Where(x => x.IdDocumentoInstancia == idDocumentoInstancia && x.Version == version).FirstOrDefault(); if (versionDocumento == null) { return; } var bitacora = versionDocumentoInstanciaRepository.GetQueryable().Where(x => x.IdVersionDocumentoInstancia == versionDocumento.IdVersionDocumentoInstancia).FirstOrDefault(); String newData = ZipUtil.UnZip(versionDocumento.Datos); versionDocumento.Datos = null; System.GC.Collect(); LogUtil.Info("Memoria usada:" + System.GC.GetTotalMemory(true)); var documentoInstanciaXbrlDto = JsonConvert.DeserializeObject <DocumentoInstanciaXbrlDto>(newData); newData = null; newData = null; versionDocumento.Datos = null; documentoInstanciaXbrlDto.IdDocumentoInstancia = bitacora.IdDocumentoInstancia; documentoInstanciaXbrlDto.Version = 1; documentoInstanciaXbrlDto.Taxonomia = ObtenerTaxonomia(documentoInstanciaXbrlDto.DtsDocumentoInstancia); var fechaRecepcion = documentoInstanciaRepository.GetQueryable().Where(x => x.IdDocumentoInstancia == idDocumentoInstancia).Select(x => x.FechaCreacion).FirstOrDefault(); if (parametros == null) { parametros = new Dictionary <string, object>(); } if (!parametros.ContainsKey("FechaRecepcion")) { parametros.Add("FechaRecepcion", fechaRecepcion); } var bitacorasAActualizar = new List <BitacoraDistribucionDocumento>(); if (documentoInstanciaXbrlDto.Taxonomia == null) { LogUtil.Error("Ocurrió un error al obtener la taxonomía del documento"); } else { distribucion.EjecutarDistribucion(documentoInstanciaXbrlDto, parametros); } }
/// <summary> /// Constructor por defecto de la clase /// </summary> public HomeController() { try { AlertaRepository = (IAlertaRepository)ServiceLocator.ObtenerFabricaSpring().GetObject("AlertaRepository"); UsuarioRepository = (IUsuarioRepository)ServiceLocator.ObtenerFabricaSpring().GetObject("UsuarioRepository"); RegistroAuditoriaRepository = (IRegistroAuditoriaRepository)ServiceLocator.ObtenerFabricaSpring().GetObject("RegistroAuditoriaRepository"); DocumentoInstanciaRepository = (IDocumentoInstanciaRepository)ServiceLocator.ObtenerFabricaSpring().GetObject("DocumentoInstanciaRepository"); DocumentoInstanciaService = (IDocumentoInstanciaService)ServiceLocator.ObtenerFabricaSpring().GetObject("DocumentoInstanciaService"); } catch (Exception ex) { LogUtil.Error(ex); throw; } }