public List <string> crearCadenaFiltro(EntFiltroBlockStoreMultiHechos filtroBlockStoreMultiHechos)
        {
            var filtros = new List <string>();
            var filtroBlockStoreHechos = new EntFiltroBlockStoreHechos {
                EspacioNombresPrincipal = filtroBlockStoreMultiHechos.EspacioNombresPrincipal
            };

            foreach (var itemIdEntidad in filtroBlockStoreMultiHechos.ListaIdEntidad)
            {
                filtroBlockStoreHechos.IdEntidad = itemIdEntidad;
                foreach (var itemPeriodo in filtroBlockStoreMultiHechos.ListaPeriodo)
                {
                    filtroBlockStoreHechos.PeriodoFechaInicial = itemPeriodo.PeriodoFechaInicial;
                    filtroBlockStoreHechos.PeriodoFechaFinal   = itemPeriodo.PeriodoFecha;
                    foreach (var itemMedida in filtroBlockStoreMultiHechos.ListaMedida)
                    {
                        filtroBlockStoreHechos.MedidaTipoMedidaNombre          = itemMedida.MedidaTipoMedidaNombre;
                        filtroBlockStoreHechos.MedidaTipoMedidaNumeradorNombre = itemMedida.MedidaTipoMedidaDenominadorNombre;
                        foreach (var itemConceptoDimension in filtroBlockStoreMultiHechos.ListaConceptoDimension)
                        {
                            filtroBlockStoreHechos.ConceptoId = itemConceptoDimension.ConceptoId;
                            filtroBlockStoreHechos.DimensionEspaciodeNombre           = itemConceptoDimension.DimensionEspaciodeNombre;
                            filtroBlockStoreHechos.DimensionNombre                    = itemConceptoDimension.DimensionNombre;
                            filtroBlockStoreHechos.DimensionNombreElementoMiembro     = itemConceptoDimension.DimensionNombreElementoMiembro;
                            filtroBlockStoreHechos.DimensionElementoMiembroTipificado = itemConceptoDimension.DimensionElementoMiembroTipificado;
                            filtros.Add(crearCadenaFiltro(filtroBlockStoreHechos));
                        }
                    }
                }
            }
            return(filtros);
        }
        public void TestFiltroCompuestoReporte()
        {
            var creaFiltros          = new BlockStoreCrearFiltro();
            var entFiltroMultiHechos = new EntFiltroBlockStoreMultiHechos
            {
                EspacioNombresPrincipal = "http://www.bmv.com.mx/fr/ics/2012-04-01/ifrs-mx-ics-entryPoint-all",
                ListaIdEntidad          = new List <string> {
                    "ABNGOA", "ABCCB", "ABREGIO", "AC"
                },
                ListaPeriodo = new List <EntFiltroBlockStoreMultiHechos.EntFiltroPeriodos> {
                    new EntFiltroBlockStoreMultiHechos.EntFiltroPeriodos {
                        PeriodoFechaInicial = "ISODate(\"2014-01-01T00:00:00Z\")", PeriodoFecha = "ISODate(\"2014-06-01T00:00:00Z\")"
                    }
                },
                ListaMedida = new List <EntFiltroBlockStoreMultiHechos.EntFiltroBlockStoreMedida> {
                    new EntFiltroBlockStoreMultiHechos.EntFiltroBlockStoreMedida(), new EntFiltroBlockStoreMultiHechos.EntFiltroBlockStoreMedida {
                        MedidaTipoMedidaNombre = "'MXN'"
                    }, new EntFiltroBlockStoreMultiHechos.EntFiltroBlockStoreMedida {
                        MedidaTipoMedidaNombre = "'USD'"
                    }
                },
                ListaConceptoDimension = new List <EntFiltroBlockStoreMultiHechos.EntFiltroConceptoDimension>
                {
                    new EntFiltroBlockStoreMultiHechos.EntFiltroConceptoDimension {
                        ConceptoId = "mx-ifrs-ics_UtilidadporFluctuacionCambiariaNeto"
                    },
                    new EntFiltroBlockStoreMultiHechos.EntFiltroConceptoDimension {
                        ConceptoId = "mx-ifrs-ics_UtilidadporCambiosValorRazonableInstrumentosFinancieros"
                    }
                }
            };
            var cadena = creaFiltros.crearCadenaFiltro(entFiltroMultiHechos);

            Debug.Write(cadena.Count);
        }