/// <summary> /// Carga y agrega taxonomía a Cache /// </summary> /// <param name="list">Lista de DTS de taxonomía</param> /// <param name="CacheTaxonomia">Objeto de caché de taxonomía a agregar</param> /// <returns>La taxonomía agregada</returns> private TaxonomiaDto AgregarTaxonomiaACache(IList <DtsDocumentoInstanciaDto> list, ICacheTaxonomiaXBRL CacheTaxonomia) { var errores = new List <ErrorCargaTaxonomiaDto>(); if (list != null && list.Count > 0) { var taxo = XPEServiceImpl.GetInstance(ForzarHttp).CargarTaxonomiaXbrl(list[0].HRef, errores, false); if (errores.Count > 0) { LogUtil.Error("La taxonomía: " + list[0].HRef + " contiene errores"); foreach (var error in errores) { LogUtil.Error(error); } } else { if (CacheTaxonomia.ObtenerTaxonomia(list) == null) { CacheTaxonomia.AgregarTaxonomia(list, taxo); } return(taxo); } } else { errores.Add(new ErrorCargaTaxonomiaDto() { Mensaje = "No existen archivos en la lista de SchemaRef", Severidad = ErrorCargaTaxonomiaDto.SEVERIDAD_FATAL }); } return(null); }
public IHttpActionResult DescargarEjecucionConsultaParametrizada() { var serializerSettings = new JsonSerializerSettings(); String consultaAnalisis = getFormKeyValue("consulta"); var resultado = new ResultadoOperacionDto() { Resultado = true, Mensaje = "Ok" }; var consultaAnalisisDto = (ConsultaAnalisisDto)JsonConvert.DeserializeObject(consultaAnalisis, typeof(ConsultaAnalisisDto), serializerSettings); try { resultado = DocumentoInstanciaService.ObtenerVersionesDocumentosPorConfiguracionConsulta(consultaAnalisisDto); if (resultado.Resultado) { var resultadoOperacionTaxonomia = DocumentoInstanciaService.ObtenerTaxonomiaBdPorId(consultaAnalisisDto.IdTaxonomiaXbrl); if (resultadoOperacionTaxonomia.Resultado) { var taxonomia = (TaxonomiaXbrl)resultadoOperacionTaxonomia.InformacionExtra; var listaDts = DocumentoInstanciaXbrlDtoConverter.ConvertirDTSDocumentoInstancia(taxonomia.ArchivoTaxonomiaXbrl); var taxoDto = _cacheTaxonomiaXbrl.ObtenerTaxonomia(listaDts); var estructuraDocumento = ConsultaAnalisisService.ObtenerInformacionConsultaDocumentos(consultaAnalisisDto, (List <DocumentoInstanciaXbrlDto>)resultado.InformacionExtra, taxoDto); return(this.ExportDatosEstructuraDocumento("Index", estructuraDocumento, "estructuraDocumento.xls", consultaAnalisisDto)); } } } catch (Exception ex) { resultado.Resultado = false; resultado.InformacionExtra = ex; resultado.Mensaje = "Ocurrio un error al obtener informacion de una configuracion de una consulta de analisis: " + ex.Message; return(Json(resultado)); } return(Json(resultado)); }
/// <summary> /// Retorna la definición de la taxonomía por el identificador. /// </summary> /// <param name="idTaxonomia">Identificador de la taxonomía.</param> /// <returns>Resultado con la definición de la taxonomía.</returns> private ResultadoOperacionDto ObtenerDefinicionTaxonomiaPorId(long idTaxonomia) { var resultado = DocumentoInstanciaService.ObtenerTaxonomiaBdPorId(idTaxonomia); var errores = new List <ErrorCargaTaxonomiaDto>(); if (resultado.Resultado && resultado.InformacionExtra != null) { //Cargar la taxonomía var taxoBd = resultado.InformacionExtra as TaxonomiaXbrl; var listaDts = DocumentoInstanciaXbrlDtoConverter.ConvertirDTSDocumentoInstancia(taxoBd.ArchivoTaxonomiaXbrl); var taxoDto = _cacheTaxonomiaXbrl.ObtenerTaxonomia(listaDts); if (taxoDto == null) { var resultadoTaxonomia = DocumentoInstanciaService.ObtenerTaxonomiaXbrlProcesada(idTaxonomia, errores); var taxonomia = resultadoTaxonomia.InformacionExtra as ITaxonomiaXBRL; taxoDto = XbrlViewerService.CrearTaxonomiaAPartirDeDefinicionXbrl(taxonomia); if (taxonomia.ManejadorErrores.PuedeContinuar()) { _cacheTaxonomiaXbrl.AgregarTaxonomia(listaDts, taxoDto); _estrategiaCacheTaxonomia.AgregarTaxonomia(DocumentoInstanciaXbrlDtoConverter.ConvertirArchivoTaxonomiaXbrl(taxoBd.ArchivoTaxonomiaXbrl) , taxonomia); } else { resultado.Resultado = false; resultado.InformacionExtra = taxonomia.ManejadorErrores.GetErroresTaxonomia(); } } } if (errores.Count() > 0) { LogUtil.Error(errores); } return(resultado); }