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); }