private void CargaConsulta() { try { ArbolAcceso consulta = _servicioArbolAcceso.ObtenerArbolAcceso(IdArbol); if (consulta != null) { ddlTipoUsuario.SelectedValue = consulta.IdTipoUsuario.ToString(); ddlTipoUsuario_OnSelectedIndexChanged(ddlTipoUsuario, null); txtTitulo.Text = consulta.InventarioArbolAcceso.First().Descripcion; txtDescripcionOpcion.Text = consulta.Descripcion; chkPublico.Checked = consulta.Publico; ddlArticulo.SelectedValue = consulta.InventarioArbolAcceso.First().InventarioInfConsulta.First().IdInfConsulta.ToString(); chkEvaluacion.Checked = consulta.Evaluacion; chkNivelHabilitado.Checked = consulta.Habilitado; ddlCategoria.SelectedValue = consulta.IdArea.ToString(); ddlCategoria_OnSelectedIndexChanged(ddlCategoria, null); if (consulta.Nivel1 != null) { ddlNivel1.SelectedValue = consulta.IdNivel1.ToString(); ddlNivel1_OnSelectedIndexChanged(ddlNivel1, null); } if (consulta.Nivel2 != null) { ddlNivel2.SelectedValue = consulta.IdNivel2.ToString(); ddlNivel2_OnSelectedIndexChanged(ddlNivel2, null); } if (consulta.Nivel3 != null) { ddlNivel3.SelectedValue = consulta.IdNivel3.ToString(); ddlNivel3_OnSelectedIndexChanged(ddlNivel3, null); } if (consulta.Nivel4 != null) { ddlNivel4.SelectedValue = consulta.IdNivel4.ToString(); ddlNivel4_OnSelectedIndexChanged(ddlNivel4, null); } if (consulta.Nivel5 != null) { ddlNivel5.SelectedValue = consulta.IdNivel5.ToString(); ddlNivel5_OnSelectedIndexChanged(ddlNivel5, null); } if (consulta.Nivel6 != null) { ddlNivel6.SelectedValue = consulta.IdNivel6.ToString(); ddlNivel6_OnSelectedIndexChanged(ddlNivel6, null); } ddlGrupoAccesoCentroSoporte.SelectedValue = consulta.InventarioArbolAcceso.First() .GrupoUsuarioInventarioArbol.Single(s => s.GrupoUsuario.IdTipoGrupo == (int)BusinessVariables.EnumTiposGrupos.AccesoCentroSoporte).IdGrupoUsuario.ToString(); ddlTipoUsuario.Enabled = false; } } catch (Exception e) { throw new Exception(e.Message); } }
protected void Page_Load(object sender, EventArgs e) { try { if (!IsPostBack) { int idArbol = Convert.ToInt32(Request.QueryString["IdArbol"]); ArbolAcceso arbol = _servicoArbol.ObtenerArbolAcceso(idArbol); if (arbol != null) { ucVisorConsultainformacion.MuestraEvaluacion = arbol.Evaluacion; ucVisorConsultainformacion.IdArbol = idArbol; } else if (Request.UrlReferrer != null) { Response.Redirect(Request.UrlReferrer.ToString()); } else { Response.Redirect("~/Users/FrmDashboardUser.aspx"); } } } catch (Exception ex) { UsuariosMaster master = (UsuariosMaster)Parent; if (master != null) { master.AlertaSucces(ex.Message); } } }
protected void Page_PreInit(object sender, EventArgs e) { try { if (Request.QueryString["IdArbol"] != null && Request.QueryString["Canal"] != null) { ArbolAcceso arbol = _servicioArbolAcceso.ObtenerArbolAcceso(Convert.ToInt32(Request.QueryString["IdArbol"])); if (arbol != null) { Session["ArbolAcceso"] = arbol; IdMascara = arbol.InventarioArbolAcceso.First().IdMascara ?? 0; IdEncuesta = arbol.InventarioArbolAcceso.First().IdEncuesta ?? 0; IdCanal = int.Parse(Request.QueryString["Canal"]); } } else if (Request.QueryString["IdArbol"] != null && Request.QueryString["Canal"] == null) { ArbolAcceso arbol = _servicioArbolAcceso.ObtenerArbolAcceso(Convert.ToInt32(Request.QueryString["IdArbol"])); if (arbol != null) { Session["ArbolAcceso"] = arbol; IdMascara = arbol.InventarioArbolAcceso.First().IdMascara ?? 0; IdEncuesta = arbol.InventarioArbolAcceso.First().IdEncuesta ?? 0; IdCanal = (int)BusinessVariables.EnumeradoresKiiniNet.EnumCanal.Portal; } } } catch (Exception ex) { throw new Exception(ex.Message); } }
protected void lnkBtnResult_OnClick(object sender, EventArgs e) { try { LinkButton btn = (LinkButton)sender; if (btn != null) { ArbolAcceso opcion = _servicioArbol.ObtenerArbolAcceso(int.Parse(btn.CommandArgument)); if (opcion != null) { if (Session["UserData"] == null) { switch (opcion.IdTipoArbolAcceso) { case (int)BusinessVariables.EnumTipoArbol.ConsultarInformacion: Response.Redirect("~/Publico/FrmConsulta.aspx?IdArbol=" + Convert.ToInt32(((LinkButton)sender).CommandArgument)); break; case (int)BusinessVariables.EnumTipoArbol.SolicitarServicio: Response.Redirect("~/Publico/FrmTicketPublico.aspx?Canal=" + (int)BusinessVariables.EnumeradoresKiiniNet.EnumCanal.Portal + "&IdArbol=" + opcion.Id); break; case (int)BusinessVariables.EnumTipoArbol.ReportarProblemas: Response.Redirect("~/Publico/FrmTicketPublico.aspx?Canal=" + (int)BusinessVariables.EnumeradoresKiiniNet.EnumCanal.Portal + "&IdArbol=" + opcion.Id); break; } } else { switch (opcion.IdTipoArbolAcceso) { case (int)BusinessVariables.EnumTipoArbol.ConsultarInformacion: Response.Redirect("~/Users/General/FrmNodoConsultas.aspx?IdArbol=" + Convert.ToInt32(((LinkButton)sender).CommandArgument)); break; case (int)BusinessVariables.EnumTipoArbol.SolicitarServicio: Response.Redirect("~/Users/Ticket/FrmTicket.aspx?Canal=" + (int)BusinessVariables.EnumeradoresKiiniNet.EnumCanal.Portal + "&IdArbol=" + opcion.Id); break; case (int)BusinessVariables.EnumTipoArbol.ReportarProblemas: Response.Redirect("~/Users/Ticket/FrmTicket.aspx?Canal=" + (int)BusinessVariables.EnumeradoresKiiniNet.EnumCanal.Portal + "&IdArbol=" + opcion.Id); break; } } } } } catch (Exception ex) { if (_lstError == null) { _lstError = new List <string>(); } _lstError.Add(ex.Message); Alerta = _lstError; } }
protected void Page_PreInit(object sender, EventArgs e) { int idArbol = Convert.ToInt32(Request.QueryString["IdArbol"]); ArbolAcceso arbol = _servicioArbolAcceso.ObtenerArbolAcceso(idArbol); Session["ArbolAcceso"] = arbol; IdMascara = arbol.InventarioArbolAcceso.First().IdMascara ?? 0; IdEncuesta = arbol.InventarioArbolAcceso.First().IdEncuesta ?? 0; }
protected void Page_Load(object sender, EventArgs e) { try { AlertaGeneral = new List <string>(); if (!IsPostBack) { ArbolAcceso arbol = ((ArbolAcceso)Session["ArbolAcceso"]); UcInformacionConsulta.IdArbol = arbol.Id; lblTicketDescripcion.Text = "TICKET"; if (arbol.Nivel1 != null) { lblTicketDescripcion.Text += arbol.Nivel1.Descripcion; } if (arbol.Nivel2 != null) { lblTicketDescripcion.Text += " > " + arbol.Nivel2.Descripcion; } if (arbol.Nivel3 != null) { lblTicketDescripcion.Text += " > " + arbol.Nivel3.Descripcion; } if (arbol.Nivel4 != null) { lblTicketDescripcion.Text += " > " + arbol.Nivel4.Descripcion; } if (arbol.Nivel5 != null) { lblTicketDescripcion.Text += " > " + arbol.Nivel5.Descripcion; } if (arbol.Nivel6 != null) { lblTicketDescripcion.Text += " > " + arbol.Nivel6.Descripcion; } if (arbol.Nivel7 != null) { lblTicketDescripcion.Text += " > " + arbol.Nivel7.Descripcion; } if (IdMascara == 0) { UcMascaraCaptura.Visible = false; btnGuardar.CommandArgument = UcMascaraCaptura.ComandoInsertar; } UcInformacionConsulta.Visible = arbol.InventarioArbolAcceso.First().InventarioInfConsulta.Any(); } } catch (Exception ex) { if (_lstError == null) { _lstError = new List <string>(); } _lstError.Add(ex.Message); AlertaGeneral = _lstError; } }
public string ObtenerTipificacion(int idArbol) { string result = string.Empty; DataBaseModelContext db = new DataBaseModelContext(); try { db.ContextOptions.LazyLoadingEnabled = true; ArbolAcceso arbol = db.ArbolAcceso.SingleOrDefault(w => w.Habilitado && w.Id == idArbol); if (arbol == null) { return(null); } if (arbol.Nivel1 != null) { result = arbol.Nivel1.Descripcion; } if (arbol.Nivel2 != null) { result = arbol.Nivel2.Descripcion; } if (arbol.Nivel3 != null) { result = arbol.Nivel3.Descripcion; } if (arbol.Nivel4 != null) { result = arbol.Nivel4.Descripcion; } if (arbol.Nivel5 != null) { result = arbol.Nivel5.Descripcion; } if (arbol.Nivel6 != null) { result = arbol.Nivel6.Descripcion; } if (arbol.Nivel7 != null) { result = arbol.Nivel7.Descripcion; } } catch (Exception ex) { throw new Exception((ex.InnerException).Message); } finally { db.Dispose(); } return(result); }
protected void Page_Load(object sender, EventArgs e) { try { _lstError = new List <string>(); if (!IsPostBack) { ArbolAcceso arbol = _servicioArbolAcceso.ObtenerArbolAcceso(IdArbol); rptInformacionConsulta.DataSource = _servicioInformacionConsulta.ObtenerInformacionConsultaArbol(IdArbol); rptInformacionConsulta.DataBind(); lbltitleArbol.Text = "CONSULTA > "; if (arbol.Nivel1 != null) { lbltitleArbol.Text += arbol.Nivel1.Descripcion; } if (arbol.Nivel2 != null) { lbltitleArbol.Text += " > " + arbol.Nivel2.Descripcion; } if (arbol.Nivel3 != null) { lbltitleArbol.Text += " > " + arbol.Nivel3.Descripcion; } if (arbol.Nivel4 != null) { lbltitleArbol.Text += " > " + arbol.Nivel4.Descripcion; } if (arbol.Nivel5 != null) { lbltitleArbol.Text += " > " + arbol.Nivel5.Descripcion; } if (arbol.Nivel6 != null) { lbltitleArbol.Text += " > " + arbol.Nivel6.Descripcion; } if (arbol.Nivel7 != null) { lbltitleArbol.Text += " > " + arbol.Nivel7.Descripcion; } } } catch (Exception ex) { if (_lstError == null) { _lstError = new List <string>(); } _lstError.Add(ex.Message); AlertaGeneral = _lstError; } }
public void ActualizardArbol(int idArbolAcceso, ArbolAcceso arbolAcceso, string descripcion) { try { using (BusinessArbolAcceso negocio = new BusinessArbolAcceso()) { negocio.ActualizardArbol(idArbolAcceso, arbolAcceso, descripcion); } } catch (Exception ex) { throw new Exception(ex.Message); } }
public void GuardarArbol(ArbolAcceso arbol) { try { using (BusinessArbolAcceso negocio = new BusinessArbolAcceso()) { negocio.GuardarArbol(arbol); } } catch (Exception ex) { throw new Exception(ex.Message); } }
private static void ObtenerFormulario(out ArbolAcceso arbol, out Mascara mascara) { try { int arbolParametro = int.Parse(ConfigurationManager.AppSettings["ServicioCorreo"]); arbol = new BusinessArbolAcceso().ObtenerArbolAcceso(arbolParametro); int?idMascara = arbol.InventarioArbolAcceso.First().IdMascara; if (idMascara != null) { mascara = new BusinessMascaras().ObtenerMascaraCaptura((int)idMascara); } else { throw new Exception("No se encontro la Mascara de captura"); } } catch (Exception ex) { throw new Exception(ex.Message); } }
public void HabilitarArbol(int idArbol, bool habilitado) { DataBaseModelContext db = new DataBaseModelContext(); try { ArbolAcceso arbol = db.ArbolAcceso.SingleOrDefault(w => w.Id == idArbol); if (arbol != null) { arbol.Habilitado = habilitado; } db.SaveChanges(); } catch (Exception ex) { throw new Exception((ex.InnerException).Message); } finally { db.Dispose(); } }
protected void Page_PreInit(object sender, EventArgs e) { try { if (Request.QueryString["IdArbol"] != null && Request.QueryString["UsuarioSolicita"] != null && Request.QueryString["Canal"] != null) { ArbolAcceso arbol = _servicioArbolAcceso.ObtenerArbolAcceso(Convert.ToInt32(Request.QueryString["IdArbol"])); Session["ArbolAcceso"] = arbol; IdMascara = arbol.InventarioArbolAcceso.First().IdMascara ?? 0; IdEncuesta = arbol.InventarioArbolAcceso.First().IdEncuesta ?? 0; IdUsuarioSolicita = int.Parse(Request.QueryString["UsuarioSolicita"]); IdCanal = int.Parse(Request.QueryString["Canal"]); } else if (Request.QueryString["IdArbol"] != null && Request.QueryString["Canal"] != null) { ArbolAcceso arbol = _servicioArbolAcceso.ObtenerArbolAcceso(Convert.ToInt32(Request.QueryString["IdArbol"])); if (arbol != null) { Session["ArbolAcceso"] = arbol; IdMascara = arbol.InventarioArbolAcceso.First().IdMascara ?? 0; IdEncuesta = arbol.InventarioArbolAcceso.First().IdEncuesta ?? 0; IdUsuarioSolicita = ((Usuario)Session["UserData"]).Id; IdCanal = (int)BusinessVariables.EnumeradoresKiiniNet.EnumCanal.Portal; } else if (Request.UrlReferrer != null) { Response.Redirect(Request.UrlReferrer.ToString()); } else { Response.Redirect("~/Users/FrmDashboardUser.aspx"); } } } catch (Exception ex) { throw new Exception(ex.Message); } }
public void GuardarArbol(ArbolAcceso arbol) { DataBaseModelContext db = new DataBaseModelContext(); try { db.ContextOptions.ProxyCreationEnabled = _proxy; //TODO: Cambiar habilitado por el embebido arbol.Habilitado = true; List <GrupoUsuario> lstGrupoUsuario = null; if (arbol.Nivel1 != null) { arbol.Nivel1.Descripcion = arbol.Nivel1.Descripcion.ToUpper(); arbol.Nivel1.Habilitado = arbol.Nivel1.Habilitado; } if (arbol.Nivel2 != null) { arbol.Nivel2.Descripcion = arbol.Nivel2.Descripcion.ToUpper(); arbol.Nivel2.Habilitado = arbol.Nivel2.Habilitado; } if (arbol.Nivel3 != null) { arbol.Nivel3.Descripcion = arbol.Nivel3.Descripcion.ToUpper(); arbol.Nivel3.Habilitado = arbol.Nivel3.Habilitado; } if (arbol.Nivel4 != null) { arbol.Nivel4.Descripcion = arbol.Nivel4.Descripcion.ToUpper(); arbol.Nivel4.Habilitado = arbol.Nivel4.Habilitado; } if (arbol.Nivel5 != null) { arbol.Nivel5.Descripcion = arbol.Nivel5.Descripcion.ToUpper(); arbol.Nivel5.Habilitado = arbol.Nivel5.Habilitado; } if (arbol.Nivel6 != null) { arbol.Nivel6.Descripcion = arbol.Nivel6.Descripcion.ToUpper(); arbol.Nivel6.Habilitado = arbol.Nivel6.Habilitado; } if (arbol.Nivel7 != null) { arbol.Nivel7.Descripcion = arbol.Nivel7.Descripcion.ToUpper(); arbol.Nivel7.Habilitado = arbol.Nivel7.Habilitado; } if (arbol.EsTerminal && arbol.IdTipoArbolAcceso != (int)BusinessVariables.EnumTipoArbol.Consultas) { arbol.InventarioArbolAcceso.First().Sla.TiempoHoraProceso = arbol.InventarioArbolAcceso.First().Sla.Dias + (arbol.InventarioArbolAcceso.First().Sla.Horas / 8) + ((arbol.InventarioArbolAcceso.First().Sla.Minutos / 24) / 8) + (((arbol.InventarioArbolAcceso.First().Sla.Segundos / 60) / 24) / 8); } if (arbol.Id == 0) { db.ArbolAcceso.AddObject(arbol); } db.SaveChanges(); } catch (Exception ex) { throw new Exception((ex.InnerException).Message); } finally { db.Dispose(); } }
protected void btnGuardarNivel_OnClick(object sender, EventArgs e) { try { if (Metodos.ValidaCapturaCatalogo(txtDescripcionNivel.Text)) { int idTipoUsuario = TipoUsuario; int idTipoArbolAcceso = TipoArbol; ArbolAcceso arbol = new ArbolAcceso { IdTipoUsuario = idTipoUsuario, IdTipoArbolAcceso = idTipoArbolAcceso, EsTerminal = chkNivelTerminal.Checked, Habilitado = chkNivelHabilitado.Checked }; switch (int.Parse(hfCatalogo.Value)) { case 1: arbol.Nivel1 = new Nivel1 { IdTipoUsuario = idTipoUsuario, Descripcion = txtDescripcionNivel.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; _servicioArbolAcceso.GuardarArbol(arbol); break; case 2: arbol.IdNivel1 = Nivel1; arbol.Nivel2 = new Nivel2 { IdTipoUsuario = idTipoUsuario, Descripcion = txtDescripcionNivel.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; _servicioArbolAcceso.GuardarArbol(arbol); //ddlNivel1_OnSelectedIndexChanged(ddlNivel1, null); break; case 3: arbol.IdNivel1 = Nivel1; arbol.IdNivel2 = Nivel2; arbol.Nivel3 = new Nivel3 { IdTipoUsuario = idTipoUsuario, Descripcion = txtDescripcionNivel.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; _servicioArbolAcceso.GuardarArbol(arbol); //ddlNivel2_OnSelectedIndexChanged(ddlNivel2, null); break; case 4: arbol.IdNivel1 = Nivel1; arbol.IdNivel2 = Nivel2; arbol.IdNivel3 = Nivel3; arbol.Nivel4 = new Nivel4 { IdTipoUsuario = idTipoUsuario, Descripcion = txtDescripcionNivel.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; _servicioArbolAcceso.GuardarArbol(arbol); //ddlNivel3_OnSelectedIndexChanged(ddlNivel3, null); break; case 5: arbol.IdNivel1 = Nivel1; arbol.IdNivel2 = Nivel2; arbol.IdNivel3 = Nivel3; arbol.IdNivel4 = Nivel4; arbol.Nivel5 = new Nivel5 { IdTipoUsuario = idTipoUsuario, Descripcion = txtDescripcionNivel.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; _servicioArbolAcceso.GuardarArbol(arbol); //ddlNivel4_OnSelectedIndexChanged(ddlNivel4, null); break; case 6: arbol.IdNivel1 = Nivel1; arbol.IdNivel2 = Nivel2; arbol.IdNivel3 = Nivel3; arbol.IdNivel4 = Nivel4; arbol.IdNivel5 = Nivel5; arbol.Nivel6 = new Nivel6 { IdTipoUsuario = idTipoUsuario, Descripcion = txtDescripcionNivel.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; _servicioArbolAcceso.GuardarArbol(arbol); //ddlNivel5_OnSelectedIndexChanged(ddlNivel5, null); break; case 7: arbol.IdNivel1 = Nivel1; arbol.IdNivel2 = Nivel2; arbol.IdNivel3 = Nivel3; arbol.IdNivel4 = Nivel4; arbol.IdNivel5 = Nivel5; arbol.IdNivel6 = Nivel6; arbol.Nivel7 = new Nivel7 { IdTipoUsuario = idTipoUsuario, Descripcion = txtDescripcionNivel.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; _servicioArbolAcceso.GuardarArbol(arbol); //ddlNivel6_OnSelectedIndexChanged(ddlNivel6, null); break; } LimpiarNivel(); UpPadre.Update(); ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "Script", "CierraPupup(\"#editNivel\");", true); } } catch (Exception ex) { if (_lstError == null) { _lstError = new List <string>(); } _lstError.Add(ex.Message); AlertaNivel = _lstError; } }
public void ActualizardArbol(int idArbolAcceso, ArbolAcceso arbolAccesoActualizar, string descripcion) { DataBaseModelContext db = new DataBaseModelContext(); try { db.ContextOptions.LazyLoadingEnabled = true; ArbolAcceso arbol = db.ArbolAcceso.SingleOrDefault(s => s.Id == idArbolAcceso); if (arbol != null) { List <GrupoUsuarioInventarioArbol> gpoToRemove = arbol.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol.Where(gpo => !arbolAccesoActualizar.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol.Any(a => a.IdGrupoUsuario == gpo.IdGrupoUsuario && a.IdRol == gpo.IdRol && a.IdSubGrupoUsuario == gpo.IdSubGrupoUsuario)).ToList(); foreach (GrupoUsuarioInventarioArbol gpo in gpoToRemove) { db.GrupoUsuarioInventarioArbol.DeleteObject(gpo); } foreach (GrupoUsuarioInventarioArbol gpo in arbolAccesoActualizar.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol.Where(gpo => !arbol.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol.Any(a => a.IdGrupoUsuario == gpo.IdGrupoUsuario && a.IdRol == gpo.IdRol && a.IdSubGrupoUsuario == gpo.IdSubGrupoUsuario))) { arbol.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol.Add(gpo); } foreach (InventarioInfConsulta infConsulta in arbolAccesoActualizar.InventarioArbolAcceso.First().InventarioInfConsulta) { InformacionConsulta info = db.InformacionConsulta.Single(s => s.Id == infConsulta.IdInfConsulta); arbol.InventarioArbolAcceso.First().InventarioInfConsulta.Single(w => w.InformacionConsulta.IdTipoInfConsulta == info.IdTipoInfConsulta).IdInfConsulta = infConsulta.IdInfConsulta; } if (arbol.IdTipoUsuario != (int)BusinessVariables.EnumTipoArbol.Consultas) { arbol.InventarioArbolAcceso.First().Sla.Dias = arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.Dias; arbol.InventarioArbolAcceso.First().Sla.Horas = arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.Horas; arbol.InventarioArbolAcceso.First().Sla.Minutos = arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.Minutos; arbol.InventarioArbolAcceso.First().Sla.Segundos = arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.Segundos; arbol.InventarioArbolAcceso.First().Sla.TiempoHoraProceso = arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.TiempoHoraProceso; arbol.InventarioArbolAcceso.First().Sla.Detallado = arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.Detallado; List <SlaDetalle> slaDetalleRemove = new List <SlaDetalle>(); foreach (SlaDetalle detRemove in arbol.InventarioArbolAcceso.First().Sla.SlaDetalle) { } if (arbolAccesoActualizar.InventarioArbolAcceso.First().Sla.Detallado) { if (arbol.InventarioArbolAcceso.First().Sla.SlaDetalle == null) { arbol.InventarioArbolAcceso.First().Sla.SlaDetalle = new List <SlaDetalle>(); } } if (arbol.TiempoInformeArbol.Count > 0) { foreach (TiempoInformeArbol informeArbol in arbolAccesoActualizar.TiempoInformeArbol.Distinct()) { switch (informeArbol.IdTipoGrupo) { case (int)BusinessVariables.EnumTiposGrupos.ResponsableDeInformaciónPublicada: TiempoInformeArbol tInformeMto = db.TiempoInformeArbol.SingleOrDefault(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo); tInformeMto = arbol.TiempoInformeArbol.SingleOrDefault(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo); if (tInformeMto != null) { arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Dias = informeArbol.Dias; arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Horas = informeArbol.Horas; arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Minutos = informeArbol.Minutos; arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Segundos = informeArbol.Segundos; arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).IdTipoNotificacion = informeArbol.IdTipoNotificacion; } break; case (int)BusinessVariables.EnumTiposGrupos.ResponsableDeDesarrollo: TiempoInformeArbol tInformeDev = db.TiempoInformeArbol.SingleOrDefault(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo); tInformeDev = arbol.TiempoInformeArbol.SingleOrDefault(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo); if (tInformeDev != null) { arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Dias = informeArbol.Dias; arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Horas = informeArbol.Horas; arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Minutos = informeArbol.Minutos; arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Segundos = informeArbol.Segundos; arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).IdTipoNotificacion = informeArbol.IdTipoNotificacion; } break; case (int)BusinessVariables.EnumTiposGrupos.EspecialDeConsulta: TiempoInformeArbol tInformeCons = db.TiempoInformeArbol.SingleOrDefault(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo); tInformeCons = arbol.TiempoInformeArbol.SingleOrDefault(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo); if (tInformeCons != null) { arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Dias = informeArbol.Dias; arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Horas = informeArbol.Horas; arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Minutos = informeArbol.Minutos; arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).Segundos = informeArbol.Segundos; arbol.TiempoInformeArbol.Single(s => s.IdArbol == arbol.Id && s.IdGrupoUsuario == informeArbol.IdGrupoUsuario && s.IdTipoGrupo == informeArbol.IdTipoGrupo).IdTipoNotificacion = informeArbol.IdTipoNotificacion; } break; } } } } arbol.IdImpacto = arbolAccesoActualizar.IdImpacto; arbol.InventarioArbolAcceso.First().IdMascara = arbolAccesoActualizar.InventarioArbolAcceso.First().IdMascara; arbol.InventarioArbolAcceso.First().IdEncuesta = arbolAccesoActualizar.InventarioArbolAcceso.First().IdEncuesta; if (arbol.Nivel7 != null) { arbol.Nivel7.Descripcion = descripcion.Trim().ToUpper(); } else if (arbol.Nivel6 != null) { arbol.Nivel6.Descripcion = descripcion.Trim().ToUpper(); } else if (arbol.Nivel5 != null) { arbol.Nivel5.Descripcion = descripcion.Trim().ToUpper(); } else if (arbol.Nivel4 != null) { arbol.Nivel4.Descripcion = descripcion.Trim().ToUpper(); } else if (arbol.Nivel3 != null) { arbol.Nivel3.Descripcion = descripcion.Trim().ToUpper(); } else if (arbol.Nivel2 != null) { arbol.Nivel2.Descripcion = descripcion.Trim().ToUpper(); } else if (arbol.Nivel1 != null) { arbol.Nivel1.Descripcion = descripcion.Trim().ToUpper(); } db.SaveChanges(); } } catch (Exception ex) { throw new Exception((ex.InnerException).Message); } finally { db.Dispose(); } }
protected void btnGuardar_OnClick(object sender, EventArgs e) { try { ValidaCaptura(); ArbolAcceso arbol = new ArbolAcceso { IdArea = IdArea, IdTipoUsuario = IdTipoUsuario, IdTipoArbolAcceso = TipoArbol, Descripcion = txtDescripcionOpcion.Text, Evaluacion = chkEvaluacion.Checked, EsTerminal = true, Publico = chkPublico.Checked, Habilitado = chkNivelHabilitado.Checked, Sistema = false, IdUsuarioAlta = ((Usuario)Session["UserData"]).Id }; arbol.InventarioArbolAcceso = new List <InventarioArbolAcceso> { new InventarioArbolAcceso() }; arbol.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol = new List <GrupoUsuarioInventarioArbol>(); var gpo = _servicioGrupoUsuario.ObtenerGrupoUsuarioById(int.Parse(ddlGrupoAccesoCentroSoporte.SelectedValue)); arbol.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol.Add(new GrupoUsuarioInventarioArbol { IdGrupoUsuario = gpo.Id, IdRol = (int)BusinessVariables.EnumRoles.AccesoCentroSoporte, IdSubGrupoUsuario = null }); if (RolesActivos.Any(a => a.IdRol == (int)BusinessVariables.EnumRoles.ResponsableDeCategoría)) { gpo = _servicioGrupoUsuario.ObtenerGrupoUsuarioById(int.Parse(ddlGrupoResponsableCategoria.SelectedValue)); arbol.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol.Add(new GrupoUsuarioInventarioArbol { IdGrupoUsuario = gpo.Id, IdRol = (int)BusinessVariables.EnumRoles.ResponsableDeCategoría, IdSubGrupoUsuario = null }); } if (RolesActivos.Any(a => a.IdRol == (int)BusinessVariables.EnumRoles.ResponsableDeContenido)) { gpo = _servicioGrupoUsuario.ObtenerGrupoUsuarioById(int.Parse(ddlGrupoResponsableContenido.SelectedValue)); foreach (SubGrupoUsuario subGrupoUsuario in gpo.SubGrupoUsuario) { arbol.InventarioArbolAcceso.First().GrupoUsuarioInventarioArbol.Add(new GrupoUsuarioInventarioArbol { IdGrupoUsuario = subGrupoUsuario.IdGrupoUsuario, IdRol = (int)BusinessVariables.EnumRoles.ResponsableDeContenido, IdSubGrupoUsuario = subGrupoUsuario.Id }); } } arbol.InventarioArbolAcceso.First().Descripcion = txtTitulo.Text.Trim(); arbol.InventarioArbolAcceso.First().InventarioInfConsulta = new List <InventarioInfConsulta>(); arbol.InventarioArbolAcceso.First().InventarioInfConsulta.Add(new InventarioInfConsulta { IdInfConsulta = Convert.ToInt32(ddlArticulo.SelectedValue) }); switch (int.Parse(Catalogo)) { case 1: arbol.Nivel1 = new Nivel1 { IdTipoUsuario = IdTipoUsuario, Descripcion = txtTitulo.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; if (EsAlta) { _servicioArbolAcceso.GuardarArbol(arbol); } else { arbol.Id = IdArbol; _servicioArbolAcceso.ActualizardArbol(IdArbol, arbol, txtTitulo.Text); } break; case 2: arbol.IdNivel1 = IdNivel1; arbol.Nivel2 = new Nivel2 { IdTipoUsuario = IdTipoUsuario, Descripcion = txtTitulo.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; if (EsAlta) { _servicioArbolAcceso.GuardarArbol(arbol); } else { arbol.Id = IdArbol; _servicioArbolAcceso.ActualizardArbol(IdArbol, arbol, txtTitulo.Text); } break; case 3: arbol.IdNivel1 = IdNivel1; arbol.IdNivel2 = IdNivel2; arbol.Nivel3 = new Nivel3 { IdTipoUsuario = IdTipoUsuario, Descripcion = txtTitulo.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; if (EsAlta) { _servicioArbolAcceso.GuardarArbol(arbol); } else { arbol.Id = IdArbol; _servicioArbolAcceso.ActualizardArbol(IdArbol, arbol, txtTitulo.Text); } break; case 4: arbol.IdNivel1 = IdNivel1; arbol.IdNivel2 = IdNivel2; arbol.IdNivel3 = IdNivel3; arbol.Nivel4 = new Nivel4 { IdTipoUsuario = IdTipoUsuario, Descripcion = txtTitulo.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; if (EsAlta) { _servicioArbolAcceso.GuardarArbol(arbol); } else { arbol.Id = IdArbol; _servicioArbolAcceso.ActualizardArbol(IdArbol, arbol, txtTitulo.Text); } break; case 5: arbol.IdNivel1 = IdNivel1; arbol.IdNivel2 = IdNivel2; arbol.IdNivel3 = IdNivel3; arbol.IdNivel4 = IdNivel4; arbol.Nivel5 = new Nivel5 { IdTipoUsuario = IdTipoUsuario, Descripcion = txtTitulo.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; if (EsAlta) { _servicioArbolAcceso.GuardarArbol(arbol); } else { arbol.Id = IdArbol; _servicioArbolAcceso.ActualizardArbol(IdArbol, arbol, txtTitulo.Text); } break; case 6: arbol.IdNivel1 = IdNivel1; arbol.IdNivel2 = IdNivel2; arbol.IdNivel3 = IdNivel3; arbol.IdNivel4 = IdNivel4; arbol.IdNivel5 = IdNivel5; arbol.Nivel6 = new Nivel6 { IdTipoUsuario = IdTipoUsuario, Descripcion = txtTitulo.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; if (EsAlta) { _servicioArbolAcceso.GuardarArbol(arbol); } else { arbol.Id = IdArbol; _servicioArbolAcceso.ActualizardArbol(IdArbol, arbol, txtTitulo.Text); } break; case 7: arbol.IdNivel1 = IdNivel1; arbol.IdNivel2 = IdNivel2; arbol.IdNivel3 = IdNivel3; arbol.IdNivel4 = IdNivel4; arbol.IdNivel5 = IdNivel5; arbol.IdNivel6 = IdNivel6; arbol.Nivel7 = new Nivel7 { IdTipoUsuario = IdTipoUsuario, Descripcion = txtTitulo.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; if (EsAlta) { _servicioArbolAcceso.GuardarArbol(arbol); } else { arbol.Id = IdArbol; _servicioArbolAcceso.ActualizardArbol(IdArbol, arbol, txtTitulo.Text); } break; } LimpiarPantalla(); Response.Redirect("~/Users/Administracion/ArbolesAcceso/FrmConsultaArbolAcceso.aspx"); } catch (Exception ex) { if (_lstError == null || !_lstError.Any()) { _lstError = new List <string> { ex.Message }; } Alerta = _lstError; } }
protected void btnAgregarNivel_OnClick(object sender, EventArgs e) { try { LinkButton lbtn = (LinkButton)sender; ValidaCapturaNivel(int.Parse(lbtn.CommandArgument)); ArbolAcceso arbol = new ArbolAcceso { IdArea = IdArea, IdTipoUsuario = IdTipoUsuario, IdTipoArbolAcceso = TipoArbol, Evaluacion = chkEvaluacion.Checked, EsTerminal = false, Habilitado = chkNivelHabilitado.Checked, Sistema = false, IdUsuarioAlta = ((Usuario)Session["UserData"]).Id }; switch (int.Parse(lbtn.CommandArgument)) { case 1: arbol.Nivel1 = new Nivel1 { IdTipoUsuario = IdTipoUsuario, Descripcion = txtDescripcionN1.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; _servicioArbolAcceso.GuardarArbol(arbol); txtDescripcionN1.Text = string.Empty; Metodos.LlenaComboCatalogo(ddlNivel1, _servicioArbolAcceso.ObtenerNivel1(IdArea, TipoArbol, IdTipoUsuario, true)); break; case 2: arbol.IdNivel1 = IdNivel1; arbol.Nivel2 = new Nivel2 { IdTipoUsuario = IdTipoUsuario, Descripcion = txtDescripcionN2.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; _servicioArbolAcceso.GuardarArbol(arbol); txtDescripcionN2.Text = string.Empty; ddlNivel1_OnSelectedIndexChanged(ddlNivel1, null); break; case 3: arbol.IdNivel1 = IdNivel1; arbol.IdNivel2 = IdNivel2; arbol.Nivel3 = new Nivel3 { IdTipoUsuario = IdTipoUsuario, Descripcion = txtDescripcionN3.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; _servicioArbolAcceso.GuardarArbol(arbol); txtDescripcionN3.Text = string.Empty; ddlNivel2_OnSelectedIndexChanged(ddlNivel2, null); break; case 4: arbol.IdNivel1 = IdNivel1; arbol.IdNivel2 = IdNivel2; arbol.IdNivel3 = IdNivel3; arbol.Nivel4 = new Nivel4 { IdTipoUsuario = IdTipoUsuario, Descripcion = txtDescripcionN4.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; _servicioArbolAcceso.GuardarArbol(arbol); txtDescripcionN4.Text = string.Empty; ddlNivel3_OnSelectedIndexChanged(ddlNivel3, null); break; case 5: arbol.IdNivel1 = IdNivel1; arbol.IdNivel2 = IdNivel2; arbol.IdNivel3 = IdNivel3; arbol.IdNivel4 = IdNivel4; arbol.Nivel5 = new Nivel5 { IdTipoUsuario = IdTipoUsuario, Descripcion = txtDescripcionN5.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; _servicioArbolAcceso.GuardarArbol(arbol); txtDescripcionN5.Text = string.Empty; ddlNivel4_OnSelectedIndexChanged(ddlNivel4, null); break; case 6: arbol.IdNivel1 = IdNivel1; arbol.IdNivel2 = IdNivel2; arbol.IdNivel3 = IdNivel3; arbol.IdNivel4 = IdNivel4; arbol.IdNivel5 = IdNivel5; arbol.Nivel6 = new Nivel6 { IdTipoUsuario = IdTipoUsuario, Descripcion = txtDescripcionN6.Text.Trim(), Habilitado = chkNivelHabilitado.Checked }; _servicioArbolAcceso.GuardarArbol(arbol); txtDescripcionN6.Text = string.Empty; ddlNivel5_OnSelectedIndexChanged(ddlNivel5, null); break; } } catch (Exception ex) { if (_lstError == null || !_lstError.Any()) { _lstError = new List <string> { ex.Message }; } Alerta = _lstError; } }
public void RateConsulta(int idArbol, int idConsulta, int idUsuario, bool meGusta) { DataBaseModelContext db = new DataBaseModelContext(); try { InformacionConsultaRate rate = db.InformacionConsultaRate.SingleOrDefault(s => s.IdInformacionConsulta == idConsulta && s.IdUsuario == idUsuario); ArbolAcceso arbol = db.ArbolAcceso.SingleOrDefault(s => s.Id == idArbol); if (arbol != null) { if (rate == null) { rate = new InformacionConsultaRate { IdInformacionConsulta = idConsulta, IdUsuario = idUsuario, MeGusta = meGusta }; rate.NoMeGusta = !rate.MeGusta; rate.FechaModificacion = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture); db.InformacionConsultaRate.AddObject(rate); if (meGusta) { arbol.MeGusta++; } else { arbol.MeGusta++; } } else { if (meGusta != rate.MeGusta) { rate.MeGusta = meGusta; rate.NoMeGusta = !rate.MeGusta; rate.FechaModificacion = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture); if (meGusta) { arbol.MeGusta++; arbol.NoMeGusta--; } else { arbol.MeGusta--; arbol.NoMeGusta++; } } } } db.SaveChanges(); } catch (Exception ex) { throw new Exception(ex.Message); } finally { db.Dispose(); } }
public List <HelperFrecuencia> GeneraTopIncidentePublico(int idTipoUsuario) { List <HelperFrecuencia> result; DataBaseModelContext db = new DataBaseModelContext(); try { db.ContextOptions.ProxyCreationEnabled = _proxy; BusinessArbolAcceso bArbol = new BusinessArbolAcceso(); var frecuencias = (from f in db.Frecuencia where f.ArbolAcceso.IdTipoUsuario == idTipoUsuario && !f.ArbolAcceso.Sistema && f.ArbolAcceso.Habilitado && f.ArbolAcceso.Publico && f.IdTipoArbolAcceso == (int)BusinessVariables.EnumTipoArbol.ReportarProblemas group f by f.IdArbolAcceso into frec orderby frec.Key select new { IdArbolAcceso = frec.Key, NumeroVisitas = frec.Sum(s => s.NumeroVisitas) }).Take(10); result = new List <HelperFrecuencia>(); foreach (var type in frecuencias.Distinct()) { ArbolAcceso arbol = bArbol.ObtenerArbolAcceso(type.IdArbolAcceso); result.Add(new HelperFrecuencia { IdArbol = type.IdArbolAcceso, IdArea = bArbol.ObtenerArbolAcceso(type.IdArbolAcceso).IdArea, IdTipoArbol = arbol.IdTipoArbolAcceso, DescripcionOpcion = bArbol.ObtenerTipificacion(type.IdArbolAcceso), DescripcionOpcionLarga = arbol.Descripcion }); } List <int> arbolesAgregados = new List <int>(); arbolesAgregados.AddRange(result.Select(s => s.IdArbol)); int take = 10 - result.Count; if (result.Count < 10) { List <ArbolAcceso> opciones = db.ArbolAcceso.Where(w => w.IdTipoArbolAcceso == (int)BusinessVariables.EnumTipoArbol.ReportarProblemas && w.EsTerminal && w.Publico && !w.Sistema && w.Habilitado && w.IdTipoUsuario == idTipoUsuario && !arbolesAgregados.Contains(w.Id)).OrderByDescending(d => d.FechaAlta).Take(take).ToList(); foreach (ArbolAcceso opcion in opciones) { ArbolAcceso arbol = bArbol.ObtenerArbolAcceso(opcion.Id); result.Add(new HelperFrecuencia { IdArbol = arbol.Id, IdArea = arbol.IdArea, IdTipoArbol = arbol.IdTipoArbolAcceso, DescripcionOpcion = bArbol.ObtenerTipificacion(arbol.Id), DescripcionOpcionLarga = arbol.Descripcion }); } } } catch (Exception ex) { throw new Exception(ex.Message); } finally { db.Dispose(); } return(result.Take(10).ToList()); }
private List <HelperFrecuencia> GeneraTopGeneralPrivado(int idTipoUsuario, int idUsuario) { List <HelperFrecuencia> result; DataBaseModelContext db = new DataBaseModelContext(); try { db.ContextOptions.ProxyCreationEnabled = _proxy; BusinessArbolAcceso bArbol = new BusinessArbolAcceso(); List <int> gpos = db.UsuarioGrupo.Where(w => w.IdUsuario == idUsuario && w.IdRol == (int)BusinessVariables.EnumRoles.AccesoCentroSoporte).Select(s => s.IdGrupoUsuario).ToList(); var frecuencias = ( from f in db.Frecuencia join aa in db.ArbolAcceso on new { idarbol = f.IdArbolAcceso, idtu = f.IdTipoUsuario } equals new { idarbol = aa.Id, idtu = aa.IdTipoUsuario } join iaa in db.InventarioArbolAcceso on aa.Id equals iaa.IdArbolAcceso join guia in db.GrupoUsuarioInventarioArbol on iaa.Id equals guia.IdInventarioArbolAcceso join ug in db.UsuarioGrupo on new { idgpo = guia.IdGrupoUsuario, idsbgpo = guia.IdSubGrupoUsuario } equals new { idgpo = ug.IdGrupoUsuario, idsbgpo = ug.IdSubGrupoUsuario } //join ug in db.UsuarioGrupo on new { idgpo = guia.IdGrupoUsuario, idsbgpo = guia.IdSubGrupoUsuario } equals new { idgpo = ug.IdGrupoUsuario, idsbgpo = ug.IdSubGrupoUsuario } where gpos.Contains(guia.IdGrupoUsuario) && //ug.IdUsuario == idUsuario aa.IdTipoUsuario == idTipoUsuario && !aa.Sistema && aa.Habilitado && aa.EsTerminal select f).Distinct().GroupBy(g => new { g.IdArbolAcceso, g.NumeroVisitas }) .Select(s => new { s.Key.IdArbolAcceso, NumeroVisitas = s.Sum(sa => sa.NumeroVisitas) }) .OrderByDescending(o => o.NumeroVisitas).Take(10).ToList(); result = new List <HelperFrecuencia>(); foreach (var type in frecuencias.Distinct()) { ArbolAcceso arbol = bArbol.ObtenerArbolAcceso(type.IdArbolAcceso); if (!result.Any(a => a.IdArbol == arbol.Id)) { result.Add(new HelperFrecuencia { IdArbol = type.IdArbolAcceso, IdArea = bArbol.ObtenerArbolAcceso(type.IdArbolAcceso).IdArea, IdTipoArbol = arbol.IdTipoArbolAcceso, DescripcionOpcion = bArbol.ObtenerTipificacion(type.IdArbolAcceso), DescripcionOpcionLarga = arbol.Descripcion }); } } List <int> arbolesAgregados = new List <int>(); arbolesAgregados.AddRange(result.Select(s => s.IdArbol)); int take = 10 - result.Count; if (result.Count < 10) { List <ArbolAcceso> opciones = (from aa in db.ArbolAcceso join iaa in db.InventarioArbolAcceso on aa.Id equals iaa.IdArbolAcceso join guia in db.GrupoUsuarioInventarioArbol on iaa.Id equals guia.IdInventarioArbolAcceso join ug in db.UsuarioGrupo on new { idgpo = guia.IdGrupoUsuario } equals new { idgpo = ug.IdGrupoUsuario } where aa.EsTerminal && !aa.Sistema && aa.Habilitado && ug.IdUsuario == idUsuario && aa.IdTipoUsuario == idTipoUsuario && !arbolesAgregados.Contains(aa.Id) && ug.GrupoUsuario.IdTipoGrupo == (int)BusinessVariables.EnumTiposGrupos.AccesoCentroSoporte select aa).Distinct().ToList(); List <int> opcionesListadas = opciones.Select(s => s.Id).Distinct().ToList(); opciones.AddRange(db.ArbolAcceso.Where( w => w.EsTerminal && !w.Sistema && w.Habilitado && w.Publico && w.IdTipoUsuario == idTipoUsuario && !arbolesAgregados.Contains(w.Id) && !opcionesListadas.Contains(w.Id)) .OrderByDescending(d => d.FechaAlta) .Take(take) .ToList()); foreach (ArbolAcceso opcion in opciones) { ArbolAcceso arbol = bArbol.ObtenerArbolAcceso(opcion.Id); result.Add(new HelperFrecuencia { IdArbol = arbol.Id, IdArea = arbol.IdArea, IdTipoArbol = arbol.IdTipoArbolAcceso, DescripcionOpcion = bArbol.ObtenerTipificacion(arbol.Id), DescripcionOpcionLarga = arbol.Descripcion }); } } } catch (Exception ex) { throw new Exception(ex.Message); } finally { db.Dispose(); } return(result.Take(10).ToList()); }