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 TestFiltroBasico004()
        {
            var creaFiltros     = new BlockStoreCrearFiltro();
            var entFiltroHechos = new EntFiltroBlockStoreHechos {
                EspacioNombresPrincipal = "http://www.bmv.com.mx/taxonomy/ifrs_mx/full_ifrs_mc_mx_ics_entry_point_2014-12-05", IdEntidad = "MTROCB", ConceptoId = "ifrs-full_LevelOfRoundingUsedInFinancialStatements", PeriodoFechaInicial = "ISODate(\"2014-07-01T00:00:00Z\")", PeriodoFechaFinal = "ISODate(\"2014-09-30T00:00:00Z\")"
            };
            var cadena = creaFiltros.crearCadenaFiltro(entFiltroHechos);

            Debug.Write(cadena);
        }
        public void TestFiltroBasico003()
        {
            var creaFiltros     = new BlockStoreCrearFiltro();
            var entFiltroHechos = new EntFiltroBlockStoreHechos {
                EspacioNombresPrincipal = "http://www.bmv.com.mx/taxonomy/ifrs_mx/full_ifrs_mc_mx_ics_entry_point_2014-12-05", IdEntidad = "MTROCB", ConceptoId = "ifrs_mx-cor_20141205_ColocacionesPrivadasQuirografarios", PeriodoFechaFinal = "ISODate(\"2014-09-30T00:00:00Z\")", MedidaTipoMedidaNombre = "'MXN'", DimensionEspaciodeNombre = "'http://bmv.com.mx/ifrs_mx-cor_20141205/full_ifrs_mx-cor_2014-12-05:DenominacionEje','http://bmv.com.mx/ifrs_mx-cor_20141205/full_ifrs_mx-cor_2014-12-05:IntervaloDeTiempoEje', 'http://bmv.com.mx/ifrs_mx-cor_20141205/full_ifrs_mx-cor_2014-12-05:InstitucionEje'", DimensionNombre = "'ifrs_mx-cor_20141205_DenominacionEje', 'ifrs_mx-cor_20141205_IntervaloDeTiempoEje', 'ifrs_mx-cor_20141205_InstitucionEje'", DimensionNombreElementoMiembro = "'ifrs_mx-cor_20141205_MonedaExtranjeraMiembro', 'ifrs_mx-cor_20141205_Hasta2AnosMiembro'", DimensionElementoMiembroTipificado = "'TOTAL'"
            };
            var cadena = creaFiltros.crearCadenaFiltro(entFiltroHechos);

            Debug.Write(cadena);
        }
        public void TestFiltroBasico002()
        {
            var creaFiltros     = new BlockStoreCrearFiltro();
            var entFiltroHechos = new EntFiltroBlockStoreHechos {
                EspacioNombresPrincipal = "http://www.bmv.com.mx/taxonomy/ifrs_mx/full_ifrs_mc_mx_ics_entry_point_2014-12-05", IdEntidad = "MTROCB", ConceptoId = "ifrs_mx-cor_20141205_NumeroDeEmpleados", PeriodoFechaFinal = "ISODate(\"2012-12-31T00:00:00Z\")", MedidaTipoMedidaNombre = "'MXN'", MedidaTipoMedidaNumeradorNombre = "'shares'"
            };
            var cadena = creaFiltros.crearCadenaFiltro(entFiltroHechos);

            Debug.Write(cadena);
        }
        public void TestFiltroBasico001()
        {
            var creaFiltros     = new BlockStoreCrearFiltro();
            var entFiltroHechos = new EntFiltroBlockStoreHechos {
                EspacioNombresPrincipal = "http://www.bmv.com.mx/taxonomy/ifrs_mx/full_ifrs_mc_mx_ics_entry_point_2014-12-05", IdEntidad = "MTROCB", ConceptoId = "ifrs-full_AmountRemovedFromReserveOfCashFlowHedgesAndIncludedInInitialCostOrOtherCarryingAmountOfNonfinancialAssetLiabilityOrFirmCommitmentForWhichFairValueHedgeAccountingIsApplied", PeriodoFechaInicial = "ISODate(\"2013-01-01T00:00:00Z\")", PeriodoFechaFinal = "ISODate(\"2013-09-30T00:00:00Z\")", MedidaTipoMedidaNombre = "'MXN'", DimensionEspaciodeNombre = "'http://xbrl.ifrs.org/taxonomy/2014-03-05/ifrs-full:ComponentsOfEquityAxis'", DimensionNombre = "'ifrs-full_ComponentsOfEquityAxis'", DimensionNombreElementoMiembro = "'ifrs-full_EquityAttributableToOwnersOfParentMember'"
            };
            var cadena = creaFiltros.crearCadenaFiltro(entFiltroHechos);

            Debug.Write(cadena);
        }
        public void TestFiltroBasico000()
        {
            var creaFiltros     = new BlockStoreCrearFiltro();
            var entFiltroHechos = new EntFiltroBlockStoreHechos {
                EspacioNombresPrincipal = "http://www.bmv.com.mx/taxonomy/ifrs_mx/full_ifrs_mc_mx_ics_entry_point_2014-12-05", IdEntidad = "MTROCB", ConceptoId = "ifrs-full_CurrentTradeReceivables", PeriodoFechaInicial = "null", PeriodoFechaFinal = "ISODate(\"2013-12-31T00:00:00Z\")", MedidaTipoMedidaNombre = "'MXN'"
            };
            var cadena = creaFiltros.crearCadenaFiltro(entFiltroHechos);

            Debug.Write(cadena);
        }
        public string crearCadenaFiltro(EnumMongoArmadoFiltro enumMongoArmadoFiltro, EntFiltroBlockStoreHechos filtroBlockStoreHechos)
        {
            var filtro = string.Format(ConstBlockStoreHechos.FiltroConsultaRepetidos, filtroBlockStoreHechos.EspacioNombresPrincipal, filtroBlockStoreHechos.IdEntidad, filtroBlockStoreHechos.ConceptoId);

            var valoresExtras = "";

            if (filtroBlockStoreHechos.PeriodoFechaInstante != null)
            {
                valoresExtras = string.Format(",'periodo.FechaInstante' : {0}", filtroBlockStoreHechos.PeriodoFechaInstante);
            }
            else
            {
                valoresExtras = string.Format(",'periodo.FechaInicio' : {0} , 'periodo.FechaFin' : {1} ", filtroBlockStoreHechos.PeriodoFechaInicial, filtroBlockStoreHechos.PeriodoFechaFinal);
            }

            if (filtroBlockStoreHechos.MedidaTipoMedidaNumeradorNombre != null)
            {
                valoresExtras += string.Format(",'unidades.MedidasNumerador.Nombre' : {{ '$all' : [{0}] }} ", filtroBlockStoreHechos.MedidaTipoMedidaNumeradorNombre);
            }


            if (filtroBlockStoreHechos.MedidaTipoMedidaNombre != null)
            {
                valoresExtras += string.Format(",'unidades.Medidas.Nombre' : {{ '$all' : [{0}] }} ", filtroBlockStoreHechos.MedidaTipoMedidaNombre);
            }

            if (filtroBlockStoreHechos.DimensionNombre != null)
            {
                valoresExtras += string.Format(",'dimension.IdDimension': {{ '$all' : [{0}] }}", filtroBlockStoreHechos.DimensionNombre);
            }

            if (filtroBlockStoreHechos.DimensionEspaciodeNombre != null)
            {
                valoresExtras += string.Format(",'dimension.QNameDimension': {{ '$all' : [{0}] }}", filtroBlockStoreHechos.DimensionEspaciodeNombre);
            }

            if (filtroBlockStoreHechos.DimensionNombreElementoMiembro != null)
            {
                valoresExtras += string.Format(",'dimension.IdItemMiembro': {{ '$all' : [{0}] }}", filtroBlockStoreHechos.DimensionNombreElementoMiembro);
            }

            if (filtroBlockStoreHechos.DimensionElementoMiembroTipificado != null)
            {
                valoresExtras += string.Format(",'dimension.ElementoMiembroTipificado': {{ '$all' : [{0}] }}", filtroBlockStoreHechos.DimensionElementoMiembroTipificado);
            }


            filtro = filtro.Replace("valoresExtras", valoresExtras);
            return(filtro);
        }
        public string crearCadenaFiltro(EntFiltroBlockStoreHechos filtroBlockStoreHechos)
        {
            var enumArmadoFiltro = EnumMongoArmadoFiltro.todo;

            if (string.IsNullOrEmpty(filtroBlockStoreHechos.MedidaTipoMedidaNombre))
            {
                enumArmadoFiltro += 1;
            }
            if (string.IsNullOrEmpty(filtroBlockStoreHechos.DimensionNombre))
            {
                enumArmadoFiltro += 2;
            }
            return(crearCadenaFiltro(enumArmadoFiltro, filtroBlockStoreHechos));
        }