Exemple #1
0
        /// <summary>
        /// Realiza el registro de información de hechos
        /// </summary>
        /// <param name="documentoInstanciaJson">informacion del json como documento instancia</param>
        /// <returns>Resultado de la oepracion de los hechos</returns>
        public ResultadoOperacionDto RegistrarHechosDocumentoInstancia(string documentoInstanciaJson)
        {
            var resultadoOperacion = new ResultadoOperacionDto();

            try
            {
                JsonSerializerSettings settings = new JsonSerializerSettings();
                settings.NullValueHandling = NullValueHandling.Ignore;
                var documentoInstanciXbrlDto = Newtonsoft.Json.JsonConvert.DeserializeObject <DocumentoInstanciaXbrlDto>(documentoInstanciaJson, settings);

                var estructuraRegistroInstancia       = BlockStoreDocumentoInstancia.procesarDocumentoInstancia(documentoInstanciXbrlDto);
                List <BsonDocument> listaBsonDocument = BlockStoreDocumentoInstancia.armarBlockStore(estructuraRegistroInstancia);

                CrearHintEmpresas(documentoInstanciXbrlDto);
                CrearHintUnidades(documentoInstanciXbrlDto);
                CrearHintConceptos(documentoInstanciXbrlDto);
                CrearHintDimension(documentoInstanciXbrlDto);

                BlockStoreDocumentoInstancia.insertarBlockStore(Collection, listaBsonDocument);

                resultadoOperacion.Resultado = true;
            }
            catch (Exception e)
            {
                resultadoOperacion.Resultado = false;
                resultadoOperacion.Mensaje   = e.Message;
            }

            return(resultadoOperacion);
        }
        public void ConsultarDimensiones()
        {
            var conectionServer = new ConnectionServer
            {
                //miConnectionString = "mongodb://*****:*****@ds027325-a0.mongolab.com:27325,ds027325-a1.mongolab.com:27325/abaxxbrl?replicaSet=rs-ds027325",
                miConnectionString = "mongodb://*****:*****@172.16.235.123:27017/repositorioAbaxXbrl",
                miBaseDatos        = "repositorioAbaxXbrl"
            };

            conectionServer.init();

            var conexion           = new Conexion(conectionServer);
            var blockStoreDocIns   = new BlockStoreDocumentoInstancia(conexion);
            var blockStoreConsulta = new BlockStoreConsulta(conexion);

            var BlockStoreHechoService = new BlockStoreHechoService
            {
                BlockStoreDocumentoInstancia = blockStoreDocIns,
                BlockStoreConsulta           = blockStoreConsulta,
                Collection          = "BlockStoreHecho",
                CollectionDimension = "BlockStoreDimension",
                CollectionEmpresas  = "BlockStoreEmpresa",
                CollectionUnidades  = "BlockStoreUnidad",
                CollectionConcepto  = "BlockStoreConcepto"
            };

            var resultadoOperacion = BlockStoreHechoService.ConsultarDimensionesPorConcepto("ifrs-full_Equity", "");
            var valores            = resultadoOperacion.InformacionExtra;

            Debug.WriteLine(valores.ToString());
        }
        public void ConsultarConceptos()
        {
            var conectionServer = new ConnectionServer
            {
                //miConnectionString = "mongodb://*****:*****@ds027325-a0.mongolab.com:27325,ds027325-a1.mongolab.com:27325/abaxxbrl?replicaSet=rs-ds027325",
                miConnectionString = "mongodb://*****:*****@172.16.235.123:27017/repositorioAbaxXbrl",
                miBaseDatos        = "repositorioAbaxXbrl"
                                     //miBaseDatos = "abaxxbrl"
            };

            conectionServer.init();

            var conexion           = new Conexion(conectionServer);
            var blockStoreDocIns   = new BlockStoreDocumentoInstancia(conexion);
            var blockStoreConsulta = new BlockStoreConsulta(conexion);

            var BlockStoreHechoService = new BlockStoreHechoService
            {
                BlockStoreDocumentoInstancia = blockStoreDocIns,
                BlockStoreConsulta           = blockStoreConsulta,
                Collection          = "BlockStoreHecho",
                CollectionDimension = "BlockStoreDimension",
                CollectionEmpresas  = "BlockStoreEmpresa",
                CollectionUnidades  = "BlockStoreUnidad",
                CollectionConcepto  = "BlockStoreConcepto"
            };

            //var resultadoOperacion = BlockStoreHechoService.ConsultarConceptos("http://www.bmv.com.mx/fr/ics/2012-04-01/ifrs-mx-ics-entryPoint-all");
            var resultadoOperacion = BlockStoreHechoService.ConsultarConceptos("http://www.bmv.com.mx/taxonomy/ifrs_mx/full_ifrs_mc_mx_ics_entry_point_2014-12-05");

            var valores = resultadoOperacion.InformacionExtra;

            Debug.WriteLine(valores.ToString());
        }
        public void generarDocumentoConHechosDocumentoInstancia()
        {
            var conectionServer = new ConnectionServer
            {
                miConnectionString = "mongodb://*****:*****@172.16.235.125:27017/repositorioAbaxXbrl",
                miBaseDatos        = "repositorioAbaxXbrl"
            };

            var conexion                     = new Conexion(conectionServer);
            var blockStore                   = new BlockStoreDocumentoInstancia(conexion);
            var blockStoreConsulta           = new BlockStoreConsulta(conexion);
            var ConsumerFactoryTaskHechoImpl = new ConsumerFactoryTaskHechoImpl {
                numeroMaximoConsumidores = 25, con = conexion
            };

            var blockStoreHechoService = new BlockStoreHechoService
            {
                BlockStoreDocumentoInstancia = blockStore,
                BlockStoreConsulta           = blockStoreConsulta,
                Collection               = "BlockStoreHecho",
                CollectionDimension      = "BlockStoreDimension",
                CollectionEmpresas       = "BlockStoreEmpresa",
                CollectionUnidades       = "BlockStoreUnidad",
                CollectionConcepto       = "BlockStoreConcepto",
                ConsumerFactoryTaskHecho = ConsumerFactoryTaskHechoImpl
            };


            string line;

            LogUtil.LogDirPath = ".\\";
            LogUtil.Inicializa();

            var procesarList = new List <string> {
                //"C:/Users/Luis Angel/Documents/Workspace/DocumentosPrueba/trac.json"
                //"C:/Users/Luis Angel/Documents/Workspace/DocumentosPrueba/2015/ifrsxbrl_622986_2015-02_1_AUTLAN.json"
                "C:/Users/Luis Angel/Documents/Workspace/DocumentosPrueba/2015/ifrsxbrl_636036_2015-01_1_ALPEK.json"
            };


            var targetDirectory = "C:/Users/Luis Angel/Documents/Workspace/DocumentosPrueba/resultado";

            string[] fileEntries = Directory.GetFiles(targetDirectory);

            using (StreamWriter archivoSalida = new StreamWriter(@"C:\Users\Luis Angel\Documents\Workspace\informacionTaxonomia2012.json"))
            {
                foreach (var itemArchivo in fileEntries)
                //foreach (var itemArchivo in procesarList)
                {
                    using (var streamReader = new StreamReader(itemArchivo)) line = streamReader.ReadToEnd();
                    var settings = new JsonSerializerSettings {
                        NullValueHandling = NullValueHandling.Ignore
                    };
                    var documentoInstanciXbrlDto = JsonConvert.DeserializeObject <DocumentoInstanciaXbrlDto>(line, settings);

                    blockStoreHechoService.generarHechosDocumentoInstancia(documentoInstanciXbrlDto, archivoSalida);
                }
            }
        }
Exemple #5
0
        /// <summary>
        /// Crea el hint en MongoDB de empresas
        /// </summary>
        /// <param name="documentoInstanciXbrlDto">Informacion del documento Instancia</param>
        private void CrearHintEmpresas(DocumentoInstanciaXbrlDto documentoInstanciXbrlDto)
        {
            foreach (var IdEntidad in documentoInstanciXbrlDto.EntidadesPorId)
            {
                var Entidad   = IdEntidad.Value;
                var query     = Query.EQ("IdEntidad", Entidad.IdEntidad);
                var resultado = BlockStoreConsulta.consulta(CollectionEmpresas, query);

                if (resultado.Count == 0)
                {
                    BlockStoreDocumentoInstancia.insertarBlockStore(CollectionEmpresas, BlockStoreConsulta.armarBlockStoreEntidad(Entidad));
                }
            }
        }
Exemple #6
0
        /// <summary>
        /// Crea el hint en MongoDB de unidades
        /// </summary>
        /// <param name="documentoInstanciXbrlDto">Informacion del documento Instancia</param>
        private void CrearHintUnidades(DocumentoInstanciaXbrlDto documentoInstanciXbrlDto)
        {
            foreach (var IdUnidad in documentoInstanciXbrlDto.UnidadesPorId)
            {
                var Unidad = IdUnidad.Value;

                if (Unidad.Medidas != null)
                {
                    foreach (var medida in Unidad.Medidas)
                    {
                        var query     = Query.EQ("Nombre", medida.Nombre);
                        var resultado = BlockStoreConsulta.consulta(CollectionUnidades, query);

                        if (resultado.Count == 0)
                        {
                            BlockStoreDocumentoInstancia.insertarBlockStore(CollectionUnidades, BlockStoreConsulta.armarBlockStoreUnidad(medida));
                        }
                    }
                }

                if (Unidad.MedidasDenominador != null)
                {
                    foreach (var medida in Unidad.MedidasDenominador)
                    {
                        var query     = Query.EQ("Nombre", medida.Nombre);
                        var resultado = BlockStoreConsulta.consulta(CollectionUnidades, query);

                        if (resultado.Count == 0)
                        {
                            BlockStoreDocumentoInstancia.insertarBlockStore(CollectionUnidades, BlockStoreConsulta.armarBlockStoreUnidad(medida));
                        }
                    }
                }
                if (Unidad.MedidasNumerador != null)
                {
                    foreach (var medida in Unidad.MedidasNumerador)
                    {
                        var query     = Query.EQ("Nombre", medida.Nombre);
                        var resultado = BlockStoreConsulta.consulta(CollectionUnidades, query);

                        if (resultado.Count == 0)
                        {
                            BlockStoreDocumentoInstancia.insertarBlockStore(CollectionUnidades, BlockStoreConsulta.armarBlockStoreUnidad(medida));
                        }
                    }
                }
            }
        }
Exemple #7
0
        public void CargarInformacionFinancieraComprimidaEnMongoDB()
        {
            var conectionServer = new ConnectionServer
            {
                //connectionString = "mongodb://*****:*****@ds048878.mongolab.com:48878/abaxxbrl",
                miBaseDatos = "abaxxbrl"
            };

            conectionServer.init();

            var conexion   = new Conexion(conectionServer);
            var blockStore = new BlockStoreDocumentoInstancia(conexion);

            var BlockStoreHechoService = new BlockStoreHechoService
            {
                BlockStoreDocumentoInstancia = blockStore,
                Collection = "InfFinanXbrl"
            };

            var streamReader = new StreamReader("d:/InformacionFinancieraJSON1.zip");

            var stream = streamReader.BaseStream;

            using (var zipFile = ZipFile.Read(stream))
            {
                var tmpDir = UtilAbax.ObtenerDirectorioTemporal();
                zipFile.ExtractAll("d:/TemporalesJson1", ExtractExistingFileAction.OverwriteSilently);

                foreach (var archivoInterno in zipFile)
                {
                    if (!archivoInterno.IsDirectory)
                    {
                        var json = "";
                        using (var streamReaderFile = new StreamReader("d:/TemporalesJson1" + Path.DirectorySeparatorChar + archivoInterno.FileName))
                            json = streamReaderFile.ReadToEnd();

                        var settings = new JsonSerializerSettings {
                            NullValueHandling = NullValueHandling.Ignore
                        };
                        var documentoInstanciXbrlDto = JsonConvert.DeserializeObject <DocumentoInstanciaXbrlDto>(json, settings);

                        var resultadoOperacion = BlockStoreHechoService.registrarHechosDocumentoInstancia(documentoInstanciXbrlDto, 1, 1);
                    }
                }
            }
        }
Exemple #8
0
        public void CargarInformacionFinancieraDirectorioEnMongoDB()
        {
            var conectionServer = new ConnectionServer
            {
                //connectionString = "mongodb://*****:*****@ds027325-a0.mongolab.com:27325,ds027325-a1.mongolab.com:27325/abaxxbrl?replicaSet=rs-ds027325",
                miBaseDatos = "abaxxbrl"
            };

            conectionServer.init();

            var conexion   = new Conexion(conectionServer);
            var blockStore = new BlockStoreDocumentoInstancia(conexion);

            var BlockStoreHechoService = new BlockStoreHechoService
            {
                BlockStoreDocumentoInstancia = blockStore,
                Collection = "InfFinanXbrl"
            };

            string[] fileEntries     = Directory.GetFiles("D:/TemporalesJson/resultado");
            var      numeroRegistros = 0;

            foreach (var file in fileEntries)
            {
                var json = "";
                using (var streamReaderFile = new StreamReader(file))
                    json = streamReaderFile.ReadToEnd();
                var settings = new JsonSerializerSettings {
                    NullValueHandling = NullValueHandling.Ignore
                };
                var documentoInstanciXbrlDto = JsonConvert.DeserializeObject <DocumentoInstanciaXbrlDto>(json, settings);
                var resultadoOperacion       = BlockStoreHechoService.registrarHechosDocumentoInstancia(documentoInstanciXbrlDto, 1, 1);
                Debug.WriteLine("Registro del archivo: " + file + ": Numero de registro: " + numeroRegistros);

                numeroRegistros++;
            }
        }
Exemple #9
0
        /// <summary>
        /// Crea el hint en MongoDB de Conceptos
        /// </summary>
        /// <param name="documentoInstanciXbrlDto">Informacion del documento Instancia</param>
        private void CrearHintConceptos(DocumentoInstanciaXbrlDto documentoInstanciXbrlDto)
        {
            var bsonDocuments = new List <BsonDocument>();

            foreach (var IdConcepto in documentoInstanciXbrlDto.Taxonomia.ConceptosPorId)
            {
                BsonDocument bsonDocument = null;

                var Concepto  = IdConcepto.Value;
                var query     = Query.And(Query.EQ("Id", Concepto.Id), Query.EQ("EspacioNombresPrincipal", documentoInstanciXbrlDto.EspacioNombresPrincipal));
                var resultado = BlockStoreConsulta.consulta(CollectionConcepto, query);

                if (resultado.Count == 0)
                {
                    bsonDocument = BlockStoreConsulta.armarBlockStoreConcepto(Concepto, documentoInstanciXbrlDto.EspacioNombresPrincipal);
                    bsonDocuments.Add(bsonDocument);
                }
            }

            if (bsonDocuments.Count > 0)
            {
                BlockStoreDocumentoInstancia.insertarBlockStore(CollectionConcepto, bsonDocuments);
            }
        }
Exemple #10
0
        /// <summary>
        /// Crea el hint de las dimensiones definidas en el archivo
        /// </summary>
        /// <param name="documentoInstanciXbrlDto">Informacion del documento Instancia</param>
        private void CrearHintDimension(DocumentoInstanciaXbrlDto documentoInstanciXbrlDto)
        {
            foreach (var IdHecho in documentoInstanciXbrlDto.HechosPorId)
            {
                var Hecho           = IdHecho.Value;
                var Concepto        = documentoInstanciXbrlDto.Taxonomia.ConceptosPorId[Hecho.IdConcepto];
                var Contexto        = documentoInstanciXbrlDto.ContextosPorId[Hecho.IdContexto];
                var hintDimensional = new HintDimensional();
                hintDimensional.DimensionInfoDto = new List <DimensionInfoDto>();
                hintDimensional.idConcepto       = Concepto.Id;

                if (Contexto.ContieneInformacionDimensional)
                {
                    hintDimensional.idConcepto = Concepto.Id;
                    foreach (var dimencionInfoDto in Contexto.ValoresDimension)
                    {
                        hintDimensional.DimensionInfoDto.Add(dimencionInfoDto);
                    }
                }
                else
                {
                    var hiperCubosHecho = new List <HipercuboDto>();

                    foreach (var listaHipercubo in documentoInstanciXbrlDto.Taxonomia.ListaHipercubos.Values)
                    {
                        foreach (var hipercubo in listaHipercubo)
                        {
                            if (hipercubo.ElementosPrimarios.Contains(Hecho.IdConcepto))
                            {
                                hiperCubosHecho.Add(hipercubo);
                            }
                        }
                    }

                    if (hiperCubosHecho.Count > 0)
                    {
                        foreach (var hiperCubo in hiperCubosHecho)
                        {
                            if (hiperCubo.ElementosPrimarios.Contains(Hecho.IdConcepto))
                            {
                                foreach (var dimension in hiperCubo.Dimensiones)
                                {
                                    if (documentoInstanciXbrlDto.Taxonomia.DimensionDefaults.ContainsKey(dimension))
                                    {
                                        var dimencionInfoDto = new DimensionInfoDto();
                                        dimencionInfoDto.IdDimension   = dimension;
                                        dimencionInfoDto.IdItemMiembro = documentoInstanciXbrlDto.Taxonomia.DimensionDefaults[dimension];
                                        dimencionInfoDto.Explicita     = true;

                                        hintDimensional.DimensionInfoDto.Add(dimencionInfoDto);
                                    }
                                }
                            }
                        }
                    }
                }

                if (hintDimensional.DimensionInfoDto.Count > 0)
                {
                    var jsonDimension = JsonConvert.SerializeObject(hintDimensional);
                    var andList       = new BindingList <IMongoQuery>();
                    andList.Add(Query.EQ("idConcepto", hintDimensional.idConcepto));

                    foreach (var detalleDimensional in hintDimensional.DimensionInfoDto)
                    {
                        andList.Add(Query.EQ("DimensionInfoDto.Explicita", detalleDimensional.Explicita));

                        if (detalleDimensional.Explicita)
                        {
                            andList.Add(Query.EQ("DimensionInfoDto.IdDimension", detalleDimensional.IdDimension));
                            andList.Add(Query.EQ("DimensionInfoDto.IdItemMiembro", detalleDimensional.IdItemMiembro));
                        }
                        else
                        {
                            andList.Add(Query.EQ("DimensionInfoDto.IdDimension", detalleDimensional.IdDimension));
                        }
                    }
                    var query = Query.And(Query.EQ("Id", Concepto.Id), Query.EQ("EspacioNombresPrincipal", documentoInstanciXbrlDto.EspacioNombresPrincipal));

                    var resultado = BlockStoreConsulta.consulta(CollectionDimension, Query.And(andList));

                    if (resultado.Count == 0)
                    {
                        var bsonDocuments = BsonDocument.Parse(jsonDimension);

                        BlockStoreDocumentoInstancia.insertarBlockStore(CollectionDimension, bsonDocuments);
                    }
                }
            }
        }
        public void registrarActualizarHechosBlockStoreDocumentoInstancia()
        {
            LogUtil.LogDirPath = @"..\..\TestOutput\";
            LogUtil.Inicializa();

            var conectionServer = new ConnectionServer
            {
                //miConnectionString = "mongodb://*****:*****@ds035185-a0.mongolab.com:35185,ds035185-a1.mongolab.com:35185/repositorioabaxxbrl?replicaSet=rs-ds035185",
                //miConnectionString = "mongodb://*****:*****@172.16.235.123:27017/repositorioAbaxXbrl",
                //miConnectionString = "mongodb://*****:*****@ds054298.mlab.com:54298/abaxxbrl",
                miConnectionString = "mongodb://localhost/abaxxbrl",

                miBaseDatos = "abaxxbrl"
                              //miBaseDatos = "repositorioabaxxbrl"
            };

            conectionServer.init();

            var conexion                     = new Conexion(conectionServer);
            var blockStore                   = new BlockStoreDocumentoInstancia(conexion);
            var blockStoreConsulta           = new BlockStoreConsulta(conexion);
            var ConsumerFactoryTaskHechoImpl = new ConsumerFactoryTaskHechoImpl {
                numeroMaximoConsumidores = 25, con = conexion
            };

            var blockStoreHechoService = new BlockStoreHechoService
            {
                BlockStoreDocumentoInstancia = blockStore,
                BlockStoreConsulta           = blockStoreConsulta,
                Collection               = "BlockStoreHecho",
                CollectionDimension      = "BlockStoreDimension",
                CollectionEmpresas       = "BlockStoreEmpresa",
                CollectionUnidades       = "BlockStoreUnidad",
                CollectionConcepto       = "BlockStoreConcepto",
                ConsumerFactoryTaskHecho = ConsumerFactoryTaskHechoImpl
            };



            string line;

            LogUtil.LogDirPath = ".\\";
            LogUtil.Inicializa();

            var procesarList = Directory.GetFiles("C:/TemporalesJson/jsons");

            //var procesarList = new List<string> {


            //"C:/Users/Luis Angel/Documents/Workspace/DocumentosPrueba/DocumentosErroneos/ifrsxbrl_ASUR_2015-2.json"
            //"C:/Users/Luis Angel/Documents/Workspace/DocumentosPrueba/DocumentosErroneos/ifrsxbrl_GICSA_2015-3.json"
            //"C:/Users/Luis Angel/Documents/Workspace/DocumentosPrueba/DocumentosErroneos/ifrsxbrl_HCITY_2015-2.json"
            //"C:/Users/Luis Angel/Documents/Workspace/DocumentosPrueba/DocumentosErroneos/ifrsxbrl_LAB_2015-2.json"
            //"C:/Users/Luis Angel/Documents/Workspace/DocumentosPrueba/DocumentosErroneos/ifrsxbrl_OMA_2015-1.json"
            //"C:/Users/Luis Angel/Documents/Workspace/DocumentosPrueba/DocumentosErroneos/ifrsxbrl_SIGMA_2015-1.json"
            //"C:/Users/Luis Angel/Documents/Workspace/DocumentosPrueba/DocumentosErroneos/ifrsxbrl_VWLEASE_2015-3.json"


            //};


            //var targetDirectory = "C:/Users/Luis Angel/Documents/Workspace/DocumentosPrueba/resultado";
            //string[] fileEntries = Directory.GetFiles(targetDirectory);


            //foreach (var itemArchivo in fileEntries)
            var indexName = "C:/TemporalesJson/jsons/".Length;
            var index     = 0;

            foreach (var itemArchivo in procesarList)
            {
                using (var streamReader = new StreamReader(itemArchivo))
                {
                    try
                    {
                        line = streamReader.ReadToEnd();
                        var settings = new JsonSerializerSettings {
                            NullValueHandling = NullValueHandling.Ignore
                        };
                        var documentoInstanciXbrlDto = JsonConvert.DeserializeObject <DocumentoInstanciaXbrlDto>(line, settings);

                        blockStoreHechoService.registrarHechosDocumentoInstancia(documentoInstanciXbrlDto, 1, 1);
                        Debug.WriteLine("Registro del archivo: " + itemArchivo);
                        var nombre = itemArchivo.Substring(indexName);
                        //File.Move(itemArchivo, "C:/TemporalesJson/procesados/" + nombre);
                    }
                    catch (System.Exception ex)
                    {
                        System.Console.Out.Write(ex);
                        LogUtil.Error(ex);
                    }
                }
            }
            while (true)
            {
                Debug.WriteLine("Registro");
                Thread.Sleep(1000);
            }
        }
        public void ConsultarRepositorioInformacion()
        {
            var conectionServer = new ConnectionServer
            {
                miConnectionString = "mongodb://*****:*****@ds035185-a0.mongolab.com:35185,ds035185-a1.mongolab.com:35185/repositorioabaxxbrl?replicaSet=rs-ds035185",
                //miConnectionString = "mongodb://*****:*****@172.16.235.123:27017/repositorioAbaxXbrl",
                //miBaseDatos = "repositorioAbaxXbrl"
                miBaseDatos = "repositorioabaxxbrl"
            };

            conectionServer.init();

            var conexion            = new Conexion(conectionServer);
            var blockStoreDocIns    = new BlockStoreDocumentoInstancia(conexion);
            var blockStoreConsulta  = new BlockStoreConsulta(conexion);
            var GrupoEmpresaService = new GrupoEmpresaService
            {
                EmpresaRepository           = new EmpresaRepository(),
                GrupoEmpresaRepository      = new GrupoEmpresaRepository(),
                RegistroAuditoriaRepository = new RegistroAuditoriaRepository()
            };

            var BlockStoreHechoService = new BlockStoreHechoService
            {
                BlockStoreDocumentoInstancia = blockStoreDocIns,
                BlockStoreConsulta           = blockStoreConsulta,
                Collection          = "BlockStoreHecho",
                CollectionDimension = "BlockStoreDimension",
                CollectionEmpresas  = "BlockStoreEmpresa",
                CollectionUnidades  = "BlockStoreUnidad",
                CollectionConcepto  = "BlockStoreConcepto",
                GrupoEmpresaService = GrupoEmpresaService
            };

            var filtroConsulta = new EntFiltroConsultaHecho();

            filtroConsulta.filtros = new EntFiltrosAdicionales();

            filtroConsulta.filtros.entidadesId    = new string[2];
            filtroConsulta.filtros.entidadesId[0] = "DAIMLER";
            filtroConsulta.filtros.entidadesId[1] = "AEROMEX";

            filtroConsulta.filtros.unidades    = new string[2];
            filtroConsulta.filtros.unidades[0] = "MXN";
            filtroConsulta.filtros.unidades[1] = "USD";

            filtroConsulta.filtros.periodos = new EntPeriodo[3];

            filtroConsulta.filtros.periodos[0] = new EntPeriodo();
            filtroConsulta.filtros.periodos[1] = new EntPeriodo();
            filtroConsulta.filtros.periodos[2] = new EntPeriodo();

            filtroConsulta.filtros.periodos[0].FechaInicio = new DateTime(2015, 1, 1);
            filtroConsulta.filtros.periodos[0].FechaFin    = new DateTime(2015, 6, 30);

            filtroConsulta.filtros.periodos[1].FechaInicio = new DateTime(2015, 4, 1);
            filtroConsulta.filtros.periodos[1].FechaFin    = new DateTime(2015, 6, 30);

            filtroConsulta.filtros.periodos[2].FechaInicio = new DateTime(2014, 4, 1);
            filtroConsulta.filtros.periodos[2].FechaFin    = new DateTime(2014, 12, 31);


            filtroConsulta.idioma       = "es";
            filtroConsulta.conceptos    = new EntConcepto[6];
            filtroConsulta.conceptos[0] = new EntConcepto();
            filtroConsulta.conceptos[1] = new EntConcepto();
            filtroConsulta.conceptos[2] = new EntConcepto();
            filtroConsulta.conceptos[3] = new EntConcepto();
            filtroConsulta.conceptos[4] = new EntConcepto();
            filtroConsulta.conceptos[5] = new EntConcepto();


            filtroConsulta.conceptos[0].Id                      = "ifrs-full_AdministrativeExpense";
            filtroConsulta.conceptos[0].EsAbstracto             = false;
            filtroConsulta.conceptos[0].EspacioNombresTaxonomia = "http://www.bmv.com.mx/taxonomy/ifrs_mx/full_ifrs_mc_mx_ics_entry_point_2014-12-05";
            filtroConsulta.conceptos[0].Indentacion             = 1;
            filtroConsulta.conceptos[0].orden                   = 1;



            filtroConsulta.conceptos[1].Id                      = "ifrs-full_DistributionCosts";
            filtroConsulta.conceptos[1].EsAbstracto             = false;
            filtroConsulta.conceptos[1].EspacioNombresTaxonomia = "http://www.bmv.com.mx/taxonomy/ifrs_mx/full_ifrs_mc_mx_ics_entry_point_2014-12-05";
            filtroConsulta.conceptos[1].Indentacion             = 1;
            filtroConsulta.conceptos[1].orden                   = 2;

            filtroConsulta.conceptos[2].Id                      = "ifrs-full_Inventories";
            filtroConsulta.conceptos[2].EsAbstracto             = false;
            filtroConsulta.conceptos[2].EspacioNombresTaxonomia = "http://www.bmv.com.mx/taxonomy/ifrs_mx/full_ifrs_mc_mx_ics_entry_point_2014-12-05";
            filtroConsulta.conceptos[2].Indentacion             = 1;
            filtroConsulta.conceptos[2].orden                   = 2;

            filtroConsulta.conceptos[3].Id                                         = "ifrs-full_Equity";
            filtroConsulta.conceptos[3].EsAbstracto                                = false;
            filtroConsulta.conceptos[3].EspacioNombresTaxonomia                    = "http://www.bmv.com.mx/taxonomy/ifrs_mx/full_ifrs_mc_mx_ics_entry_point_2014-12-05";
            filtroConsulta.conceptos[3].Indentacion                                = 2;
            filtroConsulta.conceptos[3].orden                                      = 2;
            filtroConsulta.conceptos[3].InformacionDimensional                     = new EntInformacionDimensional[1];
            filtroConsulta.conceptos[3].InformacionDimensional[0]                  = new EntInformacionDimensional();
            filtroConsulta.conceptos[3].InformacionDimensional[0].Explicita        = true;
            filtroConsulta.conceptos[3].InformacionDimensional[0].IdDimension      = "ifrs-full_ComponentsOfEquityAxis";
            filtroConsulta.conceptos[3].InformacionDimensional[0].IdItemMiembro    = "ifrs-full_OtherReservesMember";
            filtroConsulta.conceptos[3].InformacionDimensional[0].QNameDimension   = "http://xbrl.ifrs.org/taxonomy/2014-03-05/ifrs-full:ComponentsOfEquityAxis";
            filtroConsulta.conceptos[3].InformacionDimensional[0].QNameItemMiembro = "http://xbrl.ifrs.org/taxonomy/2014-03-05/ifrs-full:OtherReservesMember";



            filtroConsulta.conceptos[4].Id                                       = "ifrs_mx-cor_20141205_ComercioExteriorBancarios";
            filtroConsulta.conceptos[4].EsAbstracto                              = false;
            filtroConsulta.conceptos[4].EspacioNombresTaxonomia                  = "http://www.bmv.com.mx/taxonomy/ifrs_mx/full_ifrs_mc_mx_ics_entry_point_2014-12-05";
            filtroConsulta.conceptos[4].Indentacion                              = 2;
            filtroConsulta.conceptos[4].orden                                    = 5;
            filtroConsulta.conceptos[4].InformacionDimensional                   = new EntInformacionDimensional[1];
            filtroConsulta.conceptos[4].InformacionDimensional[0]                = new EntInformacionDimensional();
            filtroConsulta.conceptos[4].InformacionDimensional[0].Explicita      = false;
            filtroConsulta.conceptos[4].InformacionDimensional[0].IdDimension    = "ifrs_mx-cor_20141205_InstitucionEje";
            filtroConsulta.conceptos[4].InformacionDimensional[0].QNameDimension = "http://bmv.com.mx/ifrs_mx-cor_20141205/full_ifrs_mx-cor_2014-12-05:InstitucionEje";
            filtroConsulta.conceptos[4].InformacionDimensional[0].Filtro         = "TOTAL";


            filtroConsulta.conceptos[5].Id                      = "ifrs-mc_DisclosureOfResultsOfOperationsAndProspectsExplanatory";
            filtroConsulta.conceptos[5].EsAbstracto             = false;
            filtroConsulta.conceptos[5].EspacioNombresTaxonomia = "http://www.bmv.com.mx/taxonomy/ifrs_mx/full_ifrs_mc_mx_ics_entry_point_2014-12-05";
            filtroConsulta.conceptos[5].Indentacion             = 3;
            filtroConsulta.conceptos[5].orden                   = 6;



            var filtroJson = JsonConvert.SerializeObject(filtroConsulta);



            var resultado = BlockStoreHechoService.ConsultarRepositorio(filtroConsulta, 1, 100);

            Debug.WriteLine(resultado.ToString());
        }