示例#1
0
        private void agregarTaxonomia(DocumentoInstanciaXbrlDto instanciaDto, CacheTaxonomiaEnMemoriaXBRL _cacheTaxonomiaXbrl)
        {
            var viewerService    = new XbrlViewerService();
            var taxonomiaDto     = _cacheTaxonomiaXbrl.ObtenerTaxonomia(instanciaDto.DtsDocumentoInstancia);
            var manejadorErrores = new ManejadorErroresCargaTaxonomia();

            if (taxonomiaDto == null)
            {
                var taxo = new TaxonomiaXBRL {
                    ManejadorErrores = manejadorErrores
                };
                foreach (var dts in instanciaDto.DtsDocumentoInstancia)
                {
                    if (dts.Tipo == DtsDocumentoInstanciaDto.SCHEMA_REF)
                    {
                        taxo.ProcesarDefinicionDeEsquema(dts.HRef);
                    }
                }
                taxo.CrearArbolDeRelaciones();
                taxonomiaDto = viewerService.CrearTaxonomiaAPartirDeDefinicionXbrl(taxo);
                if (manejadorErrores.PuedeContinuar())
                {
                    _cacheTaxonomiaXbrl.AgregarTaxonomia(instanciaDto.DtsDocumentoInstancia, taxonomiaDto);
                }
                else
                {
                    return;
                }
            }
            instanciaDto.Taxonomia = taxonomiaDto;
        }
示例#2
0
        /// <summary>
        /// Veirifica si la taxonomía del archivo está en caché, si no está, se carga y agrega
        /// </summary>
        /// <param name="docIns"></param>
        /// <param name="cache"></param>

        private void VerificarTaxonomiaEnCache(DocumentoInstanciaXbrlDto docIns, CacheTaxonomiaEnMemoriaXBRL cache)
        {
            if (cache.ObtenerTaxonomia(docIns.DtsDocumentoInstancia) == null)
            {
                var servicio = XPEServiceImpl.GetInstance();
                var errores  = new List <ErrorCargaTaxonomiaDto>();
                cache.AgregarTaxonomia(docIns.DtsDocumentoInstancia,
                                       servicio.CargarTaxonomiaXbrl(docIns.DtsDocumentoInstancia[0].HRef, errores, true)
                                       );
            }
        }