public long[] ObtenerListadoContextosPorPeriodoConsulta(AbaxXBRLCore.Viewer.Application.Dto.Angular.ConsultaAnalisisDto consultaAnalisis)
        {
            string queryContextos = @"SELECT ctx.IdContexto FROM Contexto AS ctx LEFT JOIN DocumentoInstancia docIns on ctx.IdDocumentoInstancia=docIns.IdDocumentoInstancia ";

            queryContextos = queryContextos + " where  docIns.ClaveEmisora in (";
            foreach (var entidad in consultaAnalisis.ConsultaAnalisisEntidad)
            {
                queryContextos = queryContextos + "'" + entidad.NombreEntidad + "',";
            }
            queryContextos = queryContextos.Substring(0, queryContextos.Length - 1);
            queryContextos = queryContextos + ") and ctx.Segmento is null and ctx.Escenario is null and ( ";

            List <SqlParameter> parameters = new List <SqlParameter>();


            var indicePeriodo = 0;

            foreach (var periodo in consultaAnalisis.ConsultaAnalisisPeriodo)
            {
                if (indicePeriodo > 0)
                {
                    queryContextos = queryContextos + " or ";
                }

                if (periodo.TipoPeriodo == 1)
                {
                    queryContextos = queryContextos + " ctx.Fecha=@fecha" + indicePeriodo;
                    parameters.Add(new SqlParameter("fecha" + indicePeriodo, periodo.Fecha.Value));
                }
                else
                {
                    queryContextos = queryContextos + " ( ctx.FechaInicio=@fechaInicio" + indicePeriodo;
                    queryContextos = queryContextos + " and ctx.FechaFin=@fechaFinal" + indicePeriodo;
                    queryContextos = queryContextos + " ) ";

                    parameters.Add(new SqlParameter("fechaInicio" + indicePeriodo, periodo.FechaInicio.Value));
                    parameters.Add(new SqlParameter("fechaFinal" + indicePeriodo, periodo.FechaFinal.Value));
                }

                indicePeriodo++;
            }

            queryContextos = queryContextos + " ) ";

            var contextosID = DbContext.Database.SqlQuery <long>(queryContextos, parameters.ToArray()).Distinct().ToArray();

            return(contextosID);
        }
        public List <String> ConsultarConceptosConsultaAnalisis(AbaxXBRLCore.Viewer.Application.Dto.Angular.ConsultaAnalisisDto consultaAnalisis)
        {
            List <long> entidadesId    = new List <long>();
            string      queryConceptos = @"SELECT DISTINCT hec.IdConcepto FROM Hecho  AS hec LEFT JOIN DocumentoInstancia AS docIns on docIns.IdDocumentoInstancia=hec.IdDocumentoInstancia WHERE docIns.ClaveEmisora in (";

            foreach (var entidad in consultaAnalisis.ConsultaAnalisisEntidad)
            {
                queryConceptos = queryConceptos + "'" + entidad.NombreEntidad + "',";
            }

            queryConceptos = queryConceptos.Substring(0, queryConceptos.Length - 1);
            queryConceptos = queryConceptos + ")";

            var queryResult = DbContext.Database.SqlQuery <string>(queryConceptos).ToList();

            return(queryResult);
        }