public List <EDPeligroIdentificadoApp> ObtenerPeligrosIdentificadosApp(int id_Sede, int idMetodologia) { List <EDPeligroIdentificadoApp> peligrosIdentificados = new List <EDPeligroIdentificadoApp>(); using (SG_SSTContext contex = new SG_SSTContext()) { var GrupoTipoPeligros = (from p in contex.Tbl_Peligro join cscp in contex.Tbl_Consecuencia_Por_Peligro on p.PK_Peligro equals cscp.FK_Peligro join csc in contex.Tbl_Consecuencias on cscp.FK_Consecuencia equals csc.PK_Consecuencia join gp in contex.Tbl_Grupos on csc.FK_Grupo equals gp.PK_Grupo join m in contex.Tbl_Metodologia on gp.FK_Metodologia equals m.PK_Metodologia where (p.FK_Sede == id_Sede && m.PK_Metodologia == idMetodologia) group p by new { p.ClasificacionDePeligro.TipoDePeligro.PK_Tipo_De_Peligro, p.ClasificacionDePeligro.TipoDePeligro.Descripcion_Del_Peligro } into clasesPeligros select clasesPeligros ).ToList(); foreach (var tipopeligro in GrupoTipoPeligros) { EDPeligroIdentificadoApp peligroIdentificado = new EDPeligroIdentificadoApp(); peligroIdentificado.idClasificacionPeligro = tipopeligro.Key.PK_Tipo_De_Peligro; peligroIdentificado.descripcionClasificacion = tipopeligro.Key.Descripcion_Del_Peligro; peligroIdentificado.cantidadDeClasifiacion = tipopeligro.Count(); peligrosIdentificados.Add(peligroIdentificado); } } return(peligrosIdentificados); }
public List <EDPeligroIdentificadoApp> ObtenerPeligrosIdentificadosFiltroApp(int id_Sede, int idMetodologia, int id_Proceso, string zonaLugar, string actividad) { if (zonaLugar == null) { zonaLugar = ""; } if (actividad == null) { actividad = ""; } List <EDPeligroIdentificadoApp> peligrosIdentificados = new List <EDPeligroIdentificadoApp>(); using (SG_SSTContext contex = new SG_SSTContext()) { var GrupoTipoPeligros = (from p in contex.Tbl_Peligro join cscp in contex.Tbl_Consecuencia_Por_Peligro on p.PK_Peligro equals cscp.FK_Peligro join csc in contex.Tbl_Consecuencias on cscp.FK_Consecuencia equals csc.PK_Consecuencia join gp in contex.Tbl_Grupos on csc.FK_Grupo equals gp.PK_Grupo join m in contex.Tbl_Metodologia on gp.FK_Metodologia equals m.PK_Metodologia where (p.FK_Sede == id_Sede && m.PK_Metodologia == idMetodologia) //&& p.FK_Proceso == id_Proceso && p.Lugar == zonaLugar && p.Actividad == Actividad) // group p by new { p.ClasificacionDePeligro.TipoDePeligro.PK_Tipo_De_Peligro, p.ClasificacionDePeligro.TipoDePeligro.Descripcion_Del_Peligro } into clasesPeligros // select clasesPeligros select p); if (id_Proceso > 0) { GrupoTipoPeligros = GrupoTipoPeligros.Where(p => p.FK_Proceso == id_Proceso); } if (zonaLugar != "") { GrupoTipoPeligros = GrupoTipoPeligros.Where(p => p.Lugar == zonaLugar); } if (actividad != "") { GrupoTipoPeligros = GrupoTipoPeligros.Where(p => p.Actividad == actividad); } var query = (from p in GrupoTipoPeligros group p by new { p.ClasificacionDePeligro.TipoDePeligro.PK_Tipo_De_Peligro, p.ClasificacionDePeligro.TipoDePeligro.Descripcion_Del_Peligro } into clasesPeligros select clasesPeligros).ToList(); foreach (var tipopeligro in query) { EDPeligroIdentificadoApp peligroIdentificado = new EDPeligroIdentificadoApp(); peligroIdentificado.idClasificacionPeligro = tipopeligro.Key.PK_Tipo_De_Peligro; peligroIdentificado.descripcionClasificacion = tipopeligro.Key.Descripcion_Del_Peligro; peligroIdentificado.cantidadDeClasifiacion = tipopeligro.Count(); peligrosIdentificados.Add(peligroIdentificado); } } return(peligrosIdentificados); }