Exemplo n.º 1
0
        public void TestDepuraJSON()
        {
            LogUtil.LogDirPath = @"..\..\TestOutput\";
            LogUtil.Inicializa();
            var stringAux = "\"_id\" : ObjectId(\"5a999af09e50b407b8f4c0f7\"),\"FechaInstante\" : ISODate(\"2016-12-31T00:00:00.000Z\")";
            var ajustada  = CellStoreUtil.DepurarIdentificadorBson(stringAux);

            LogUtil.Info("\r\nTextoOriginal: " + stringAux + "\r\nTextoAjustado: " + ajustada);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the member value.
        /// </summary>
        /// <param name="dimension">Dimension to evaluate.</param>
        /// <param name="document">Document owner of the dimension.</param>
        /// <returns>Member value.</returns>
        private static String GetDimensionMember(DimensionInfoDto dimension, DocumentoInstanciaXbrlDto document)
        {
            var member = String.Empty;

            if (dimension.Explicita)
            {
                member = dimension.IdItemMiembro;
            }
            else
            {
                member = CellStoreUtil.EliminaEtiquetas(dimension.ElementoMiembroTipificado);
            }
            return(member);
        }
Exemplo n.º 3
0
 public DimensionAdapter(MiembrosDimensionales dimension)
 {
     this.EntDimension = new EntDimension
     {
         Explicita                 = dimension.Explicita,
         IdDimension               = dimension.IdDimension,
         IdItemMiembro             = dimension.IdItemMiembro,
         QNameDimension            = dimension.QNameDimension,
         QNameItemMiembro          = dimension.QNameItemMiembro,
         ElementoMiembroTipificado = CellStoreUtil.EliminaEtiquetas(dimension.MiembroTipificado),
         etiquetasDimension        = AdaptarEtiquetasEntity(dimension.EtiquetasDimension),
         etiquetasMiembro          = AdaptarEtiquetasEntity(dimension.EtiquetasMiembroDimension)
     };
 }
Exemplo n.º 4
0
        private void ObtenerDimensiones(IList <MiembrosDimensionales> listaDimensiones, IDictionary <String, Object> dimensionesSpotfire)
        {
            var dimensionesOrdenadas = listaDimensiones.OrderBy(d => d.QNameDimension).ThenBy(d => d.QNameItemMiembro).ThenBy(d => d.MiembroTipificado);

            foreach (var dimension in dimensionesOrdenadas)
            {
                if (dimension.Explicita)
                {
                    dimensionesSpotfire[dimension.IdDimension] = ObtenerEtiqueta(dimension.EtiquetasMiembroDimension, "es");
                }
                else
                {
                    dimensionesSpotfire[dimension.IdDimension] = CellStoreUtil.EliminaEtiquetas(dimension.MiembroTipificado);
                }

                var dimensionEtiqueta = dimension.IdDimension + "_Etiqueta";
                dimensionesSpotfire[dimensionEtiqueta] = ObtenerEtiqueta(dimension.EtiquetasDimension, "es");
            }
        }
        public void TestLLenarHechoSpotfire()
        {
            LogUtil.LogDirPath = @"..\..\TestOutput\";
            LogUtil.Inicializa();

            JsonSerializerSettings settings = new JsonSerializerSettings();

            settings.NullValueHandling = NullValueHandling.Ignore;

            var cellStoreMongo = (AbaxXBRLCellStoreMongo)applicationContext.GetObject("AbaxXBRLCellStoreMongo");

            var spotfireCollection = cellStoreMongo.ObtenerCollection("HechoSpotfire");
            var envioCollection    = cellStoreMongo.ObtenNombreCollecion(ENVIO);
            var hechoCollection    = cellStoreMongo.ObtenNombreCollecion(HECHO);

            var queryEnvio = Query.EQ("EsVersionActual", true);

            var enviosBSON = cellStoreMongo.Consulta(envioCollection, queryEnvio);
            var enviosJSON = CellStoreUtil.DepurarIdentificadorBson(enviosBSON.ToJson());
            var envios     = JsonConvert.DeserializeObject <List <Envio> >(enviosJSON, settings);


            var queryNoChunks = Query.EQ("EsValorChunks", false);

            var types = new List <BsonValue>();

            types.Add("http://www.xbrl.org/2003/instance:base64BinaryItemType");
            types.Add("http://www.xbrl.org/dtr/type/non-numeric:textBlockItemType");
            var queryTiposNoIncluidos = Query.NotIn("Concepto.TipoDato", types);

            foreach (var envio in envios)
            {
                try
                {
                    var queryIdEnvio = Query.EQ("IdEnvio", envio.IdEnvio);

                    //var countHechosSpotfire = cellStoreMongo.Count("HechoSpotfire", queryIdEnvio);
                    //if (countHechosSpotfire > 0)
                    //{
                    //    continue;
                    //}
                    var queryHecho = Query.And(
                        queryIdEnvio,
                        queryNoChunks,
                        queryTiposNoIncluidos
                        );

                    var hechosBSON = cellStoreMongo.Consulta(hechoCollection, queryHecho);
                    var hechosJSON = CellStoreUtil.DepurarIdentificadorBson(hechosBSON.ToJson());
                    var hechos     = JsonConvert.DeserializeObject <List <Hecho> >(hechosJSON, settings);
                    var taxonomia  = ObtenerTaxonomia(envio.Taxonomia);

                    IList <String> roles       = null;
                    IList <String> dimensiones = null;
                    IDictionary <String, IDictionary <String, int> > concepotsRol = null;
                    ObtenElementosTaxonomia(cellStoreMongo, taxonomia, out roles, out dimensiones, out concepotsRol);

                    List <BsonDocument> hechosSpotfire = new List <BsonDocument>();
                    foreach (var hecho in hechos)
                    {
                        var queryIdHecho        = Query.EQ("IdHecho", hecho.IdHecho);
                        var countHechosSpotfire = cellStoreMongo.Count("HechoSpotfire", queryIdHecho);
                        if (countHechosSpotfire > 0)
                        {
                            continue;
                        }
                        HechoSpotfire hechoSpotfire = new HechoSpotfire(envio, hecho, roles, concepotsRol, dimensiones);
                        hechosSpotfire.Add(hechoSpotfire.ToBson());
                    }
                    if (hechosSpotfire.Count > 0)
                    {
                        spotfireCollection.InsertBatch(hechosSpotfire);
                    }
                }
                catch (Exception ex)
                {
                    LogUtil.Error(ex);
                }
            }
        }