protected void LoginButton_Click(object sender, EventArgs e) { // HttpContext.Current.Response.Redirect("AdminIndex.aspx", true); PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); try { string encriptado = getMd5Hash(Password.Text); Usuario usuario = context.Usuario.Where(r => r.Nombre == UserName.Text && r.Contrasenia == encriptado && r.Admin == true).First(); if (usuario != null) { string roles = "Admin,Member"; FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket( 1, usuario.IdUsuario.ToString() + "-" + usuario.Nombre.ToString(), //user id DateTime.Now, DateTime.Now.AddMinutes(20), // expiry false, //do not remember roles, "/"); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(authTicket)); Response.Cookies.Add(cookie); HttpContext.Current.Response.Redirect("AdminIndex.aspx", true); } else { lblIncorrecto.Text = "Contraseña o Usuario Incorrecto"; } } catch (Exception ex) { lblIncorrecto.Text = "Contraseña o Usuario Incorrecto "; } }
protected void Page_Load(object sender, EventArgs e) { /*Esta pantalla deberá contener el listado de todos los maratones realizados por un usuario logueado. Además, indicar la posición en la que llegó en ese maratón, el tiempo que tardó en finalizar la carrera y, en caso de haber ganado un premio, mostrar la cantidad de dinero. */ PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); Usuario usuario = GetIdUsuario(context); //if (usuario != null) //{ // int id_usuario = usuario.IdUsuario; // var qh = (from mr in context.ResultadoMaratonParticipante // join m in context.Maraton // on mr.IdMaraton equals m.IdMaraton // where (mr.IdUsuario == id_usuario) && (mr.PosicionFinal != null) // orderby m.FechaHorarioComienzo descending // select new { // Maraton = m.Nombre, // Posicion = mr.PosicionFinal, // Tiempo = mr.TiempoLlegada, // Premio = mr.PosicionFinal==3 ? m.TercerPremio : (mr.PosicionFinal == 2 ? m.SegundoPremio : (mr.PosicionFinal == 1 ? m.PrimerPremio : 0)) // }).ToList(); // GVHistorial.DataSource = qh; // GVHistorial.DataBind(); //}
public List<ResultadoMaratonUsuario> ObtenerMaratonesRealizados() { var dataContext = new PW3_20152C_TP2_MaratonesEntities3(); Usuario usuario = GetIdUsuario(dataContext); var q = from a in dataContext.Usuario join r in dataContext.ResultadoMaratonParticipante on a.IdUsuario equals r.IdUsuario join m in dataContext.Maraton on r.IdMaraton equals m.IdMaraton where a.IdUsuario == usuario.IdUsuario select new ResultadoMaratonUsuario { Maraton = m.Nombre }; var qh = (from mr in dataContext.ResultadoMaratonParticipante join m in dataContext.Maraton on mr.IdMaraton equals m.IdMaraton where (mr.IdUsuario == usuario.IdUsuario) && (mr.PosicionFinal != null) orderby m.FechaHorarioComienzo descending select new ResultadoMaratonUsuario { Maraton = m.Nombre, Posicion = mr.PosicionFinal, Tiempo = mr.TiempoLlegada, Premio = mr.PosicionFinal == 3 ? m.TercerPremio : (mr.PosicionFinal == 2 ? m.SegundoPremio : (mr.PosicionFinal == 1 ? m.PrimerPremio : 0)) }).ToList(); return qh; }
protected void btnEditarUser_Click(object sender, EventArgs e) { PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); DateTime fecha; bool dateConvert = DateTime.TryParse(txtFechaNacimiento.Text, out fecha); try { Usuario usuario = GetIdUsuario(context); if (usuario != null) { usuario.Nombre = txtNombre.Text; usuario.Apellido = txtApellido.Text; usuario.LugarResidencia = txtResidencia.Text; usuario.FechaNac = fecha; context.SaveChanges(); SuccessMessage.Visible = true; } } catch (Exception ex) { SuccessMessage.Visible = false; } }
public List <ResultadoMaratonUsuario> ObtenerMaratonesRealizados() { var dataContext = new PW3_20152C_TP2_MaratonesEntities3(); Usuario usuario = GetIdUsuario(dataContext); var q = from a in dataContext.Usuario join r in dataContext.ResultadoMaratonParticipante on a.IdUsuario equals r.IdUsuario join m in dataContext.Maraton on r.IdMaraton equals m.IdMaraton where a.IdUsuario == usuario.IdUsuario select new ResultadoMaratonUsuario { Maraton = m.Nombre }; var qh = (from mr in dataContext.ResultadoMaratonParticipante join m in dataContext.Maraton on mr.IdMaraton equals m.IdMaraton where (mr.IdUsuario == usuario.IdUsuario) && (mr.PosicionFinal != null) orderby m.FechaHorarioComienzo descending select new ResultadoMaratonUsuario { Maraton = m.Nombre, Posicion = mr.PosicionFinal, Tiempo = mr.TiempoLlegada, Premio = mr.PosicionFinal == 3 ? m.TercerPremio : (mr.PosicionFinal == 2 ? m.SegundoPremio : (mr.PosicionFinal == 1 ? m.PrimerPremio : 0)) }).ToList(); return(qh); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); var qMaraton = (from m in context.Maraton where m.FechaHorarioComienzo < DateTime.Now select m); DDLMaraton.DataValueField = "IdMaraton"; DDLMaraton.DataTextField = "Nombre"; DDLMaraton.DataSource = qMaraton; DDLMaraton.DataBind(); var part = context.Usuario.Select(u => new { IdUsuario = u.IdUsuario, NombreCompleto = u.Nombre + " " + u.Apellido }); DDLParticipante.DataValueField = "IdUsuario"; DDLParticipante.DataTextField = "NombreCompleto"; DDLParticipante.DataSource = part; DDLParticipante.DataBind(); } }
protected void Page_Load(object sender, EventArgs e) { /*Esta pantalla deberá contener el listado de todos los maratones realizados por un usuario * logueado. Además, indicar la posición en la que llegó en ese maratón, el tiempo que tardó en * finalizar la carrera y, en caso de haber ganado un premio, mostrar la cantidad de dinero. */ PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); Usuario usuario = GetIdUsuario(context); //if (usuario != null) //{ // int id_usuario = usuario.IdUsuario; // var qh = (from mr in context.ResultadoMaratonParticipante // join m in context.Maraton // on mr.IdMaraton equals m.IdMaraton // where (mr.IdUsuario == id_usuario) && (mr.PosicionFinal != null) // orderby m.FechaHorarioComienzo descending // select new { // Maraton = m.Nombre, // Posicion = mr.PosicionFinal, // Tiempo = mr.TiempoLlegada, // Premio = mr.PosicionFinal==3 ? m.TercerPremio : (mr.PosicionFinal == 2 ? m.SegundoPremio : (mr.PosicionFinal == 1 ? m.PrimerPremio : 0)) // }).ToList(); // GVHistorial.DataSource = qh; // GVHistorial.DataBind(); //} }
protected void Page_Load(object sender, EventArgs e) { bool val1 = (System.Web.HttpContext.Current.User != null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated; if (val1) { HttpContext.Current.Response.Redirect("UserIndex.aspx", true); } /*el resultado del último maratón registrado con los primeros 10 competidores. Si hay más de un maratón en simultáneo, mostrar el que tenga mayor cantidad de participantes registrados.*/ //genero la vatiable context PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); //Obtengo primero la ultima maratón corrida DateTime hoy = DateTime.Now; List<Maraton> qm = (from ms in context.Maraton join mr in context.ResultadoMaratonParticipante on ms.IdMaraton equals mr.IdMaraton where ms.FechaHorarioComienzo <= hoy && mr.PosicionFinal >=1 && mr.PosicionFinal<=10 orderby ms.FechaHorarioComienzo descending, ms.MaxParticipantes descending select ms ).ToList(); //var qmlista = qm.ToList(); String NombreMaraton = "NO HAY MARATONES PARA MOSTRAR"; if (qm.Count() > 0) { NombreMaraton = qm[0].Nombre; int idMaraton = qm[0].IdMaraton; var qp = (from mr in context.ResultadoMaratonParticipante join us in context.Usuario on mr.IdUsuario equals us.IdUsuario where (mr.IdMaraton == idMaraton) && (mr.PosicionFinal <= 10) orderby mr.PosicionFinal ascending select new { Nombre = us.Nombre + " " + us.Apellido, Posicion = mr.PosicionFinal }).ToList(); GVResultados.DataSource = qp; GVResultados.DataBind(); }//End if hMaraton.InnerText = NombreMaraton; //ResultadoMaratonParticipante contextResultadoMaratonParticipante = new ResultadoMaratonParticipante(); //PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); //GVResultados.DataSource = context.ResultadoMaratonParticipante; //GVResultados.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { bool val1 = (System.Web.HttpContext.Current.User != null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated; if (val1) { HttpContext.Current.Response.Redirect("UserIndex.aspx", true); } /*el resultado del último maratón registrado con los primeros 10 competidores. * Si hay más de un maratón en simultáneo, mostrar el que tenga mayor cantidad de participantes * registrados.*/ //genero la vatiable context PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); //Obtengo primero la ultima maratón corrida DateTime hoy = DateTime.Now; List <Maraton> qm = (from ms in context.Maraton join mr in context.ResultadoMaratonParticipante on ms.IdMaraton equals mr.IdMaraton where ms.FechaHorarioComienzo <= hoy && mr.PosicionFinal >= 1 && mr.PosicionFinal <= 10 orderby ms.FechaHorarioComienzo descending, ms.MaxParticipantes descending select ms).ToList(); //var qmlista = qm.ToList(); String NombreMaraton = "NO HAY MARATONES PARA MOSTRAR"; if (qm.Count() > 0) { NombreMaraton = qm[0].Nombre; int idMaraton = qm[0].IdMaraton; var qp = (from mr in context.ResultadoMaratonParticipante join us in context.Usuario on mr.IdUsuario equals us.IdUsuario where (mr.IdMaraton == idMaraton) && (mr.PosicionFinal <= 10) orderby mr.PosicionFinal ascending select new { Nombre = us.Nombre + " " + us.Apellido, Posicion = mr.PosicionFinal }).ToList(); GVResultados.DataSource = qp; GVResultados.DataBind(); }//End if hMaraton.InnerText = NombreMaraton; //ResultadoMaratonParticipante contextResultadoMaratonParticipante = new ResultadoMaratonParticipante(); //PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); //GVResultados.DataSource = context.ResultadoMaratonParticipante; //GVResultados.DataBind(); }
protected void btnRegistrarResultados_Click(object sender, EventArgs e) { PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); int id_maraton = Int32.Parse(DDLMaraton.SelectedValue); int id_usuario = Int32.Parse(DDLParticipante.SelectedValue); bool estado = bool.Parse(DDLCarreraStatus.SelectedValue); try { int posicion = Int32.Parse(txtPosicion.Text); var consultaPosicion = (from rm in context.ResultadoMaratonParticipante where rm.IdMaraton == id_maraton && rm.PosicionFinal == posicion select rm).ToList(); if (consultaPosicion.Count() == 0) { ResultadoMaratonParticipante resultadoMaraton = (from rm in context.ResultadoMaratonParticipante where rm.IdMaraton == id_maraton && rm.IdUsuario == id_usuario select rm).First(); Maraton maraton = (from m in context.Maraton where m.IdMaraton == id_maraton select m).First(); if (resultadoMaraton.NroInscripcion <= maraton.MaxParticipantes) { resultadoMaraton.PosicionFinal = posicion; resultadoMaraton.TiempoLlegada = Int32.Parse(txtTiempo.Text); resultadoMaraton.Finalizo = estado; context.SaveChanges(); txtPosicion.Text = ""; txtTiempo.Text = ""; ErrorMessage.Text = null; SuccessMessage.Visible = true; } else { ErrorMessage.Text = "El participante se encuentra en lista de espera"; SuccessMessage.Visible = false; } } else { ErrorMessage.Text = "La posición ya fue ingresada para otro participante"; SuccessMessage.Visible = false; } } catch (Exception ex) { ErrorMessage.Text = "El Participante seleccionado no corresponde con el maraton"; SuccessMessage.Visible = false; } }
private Usuario GetIdUsuario(PW3_20152C_TP2_MaratonesEntities3 context) { int result = 0; string[] id = HttpContext.Current.User.Identity.Name.Split('-'); bool ok = Int32.TryParse(id[0], out result); try { return(context.Usuario.Where(r => r.IdUsuario == result).First()); } catch (Exception ex) { return(null); } }
private Usuario GetIdUsuario(PW3_20152C_TP2_MaratonesEntities3 context) { int result = 0; string[] id = HttpContext.Current.User.Identity.Name.Split('-'); bool ok = Int32.TryParse(id[0], out result); try { return context.Usuario.Where(r => r.IdUsuario == result).First(); } catch (Exception ex) { return null; } }
public void CustomersGridView_SelectedIndexChanged(Object sender, EventArgs e) { int cantidad = 0; GridViewRow row = GVMaratones.SelectedRow; // row.FindControl("inscipto").va // if(row.Row.Cells[iEstado].Text = GetLocalResourceObject("CONCILIADO").ToString();) PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); ResultadoMaratonParticipante resultadoMaraton = new ResultadoMaratonParticipante(); Usuario user = GetIdUsuario(context); int IdUsuario = user.IdUsuario; int IdMaraton = 0; bool id_maraton = Int32.TryParse(row.Cells[1].Text, out IdMaraton); //Query consulta cantidad total de inscripciones try { var qc = (from rm in context.ResultadoMaratonParticipante where IdMaraton == rm.IdMaraton group rm by rm.IdMaraton into m select m.Count()).First() ; cantidad = qc; } catch (Exception ex) {} cantidad++; //Incrementa cantidad de inscripciones en 1 if (id_maraton) { resultadoMaraton.IdMaraton = IdMaraton; resultadoMaraton.IdUsuario = IdUsuario; resultadoMaraton.NroInscripcion = cantidad; context.ResultadoMaratonParticipante.AddObject(resultadoMaraton); context.SaveChanges(); } this.GVMaratones_load(); //Recarga GridView }
protected void btnCrearMaraton_Click(object sender, EventArgs e) { int cantidadMaximaParticipantes = 0, primerPremio = 0, segundoPremio = 0, tercerPremio = 0, cantidadListaEspera = 0; Maraton maraton = new Maraton(); PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); DateTime fecha; bool parseParticipantes = Int32.TryParse(txtCantParticipantes.Text, out cantidadMaximaParticipantes); bool parseLista = Int32.TryParse(txtCantLista.Text, out cantidadListaEspera); bool parsePrimerPremio = Int32.TryParse(txtPuesto1.Text, out primerPremio); bool parseSegundoPremio = Int32.TryParse(txtPuesto2.Text, out segundoPremio); bool parseTercerPremio = Int32.TryParse(txtPuesto3.Text, out tercerPremio); bool dateConvert = DateTime.TryParse(txtFechaHora.Text, out fecha); if (parseParticipantes || parseLista || parsePrimerPremio || parseSegundoPremio || parseTercerPremio) { maraton.Nombre = txtNombre.Text; maraton.MaxParticipantes = cantidadMaximaParticipantes; maraton.LugarSalida = txtLugarSalida.Text; maraton.ParticipantesEnEspera = cantidadListaEspera; maraton.PrimerPremio = primerPremio; maraton.SegundoPremio = segundoPremio; maraton.TercerPremio = tercerPremio; maraton.FechaHorarioComienzo = fecha; } context.Maraton.AddObject(maraton); context.SaveChanges(); /**/ txtNombre.Text = null; txtCantLista.Text = null; txtLugarSalida.Text = null; txtCantParticipantes.Text = null; txtPuesto1.Text = null; txtPuesto2.Text = null; txtPuesto3.Text = null; txtFechaHora.Text = null; SuccessMessage.Visible = true; }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { try { PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); Usuario usuario = GetIdUsuario(context); if (usuario != null) { txtNombre.Text = usuario.Nombre; txtApellido.Text = usuario.Apellido; txtResidencia.Text = usuario.LugarResidencia; txtFechaNacimiento.Text = usuario.FechaNac.ToString(); } } catch (Exception ex) { } } }
private void GVMaratones_load() { int i = 0; PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); //Obtengo codigo de usuario Usuario user = GetIdUsuario(context); int IdUsuario = user.IdUsuario; //------------------------------ //Query Maratones disponibles para inscripcion. Verifica fecha de inscripcion, solo muestra en caso de haber disponibilidad y ademas verifica si el que el usuario logueado no este previamente inscripto var query = from m in context.Maraton where m.FechaHorarioComienzo >= DateTime.Now //&& (m.MaxParticipantes + m.ParticipantesEnEspera) > // (from rm in context.ResultadoMaratonParticipante // where rm.IdMaraton == m.IdMaraton // select rm).Count() //&& !(from rm in context.ResultadoMaratonParticipante // where rm.IdUsuario == IdUsuario // select rm.IdMaraton).Contains(m.IdMaraton) select new { m.IdMaraton, m.Nombre, m.LugarSalida, m.FechaHorarioComienzo, m.MaxParticipantes, estado = (from rm in context.ResultadoMaratonParticipante where rm.IdMaraton == m.IdMaraton select rm.IdUsuario).Contains(IdUsuario) ? "Inscripto" : ( (m.MaxParticipantes + m.ParticipantesEnEspera) <= (from rm in context.ResultadoMaratonParticipante where rm.IdMaraton == m.IdMaraton select rm).Count() ? "Lleno" : ((from rm in context.ResultadoMaratonParticipante where rm.IdMaraton == m.IdMaraton select rm).Count()) >= m.MaxParticipantes ? "En Espera" : "Disponible") }; String mensaje = "No existen maratones disponibles por el momento"; if (query.Count() > 0) { mensaje = "Cantidad de maratones disponibles: " + query.Count(); GVMaratones.DataSource = query; GVMaratones.DataBind(); // Convert.ToInt32(((HiddenField)e.Row.FindControl("hfReversas")).Value); // GVMaratones foreach (var datos in query) { if (datos.estado == "Inscripto" || datos.estado == "Lleno") { if(datos.estado == "Inscripto" ) { ResultadoMaratonParticipante resultadoMaraton = (from rm in context.ResultadoMaratonParticipante where rm.IdMaraton == datos.IdMaraton && rm.IdUsuario == IdUsuario select rm).First(); if (datos.MaxParticipantes < resultadoMaraton.NroInscripcion) { GVMaratones.Rows[i].BackColor = Color.Orange; GVMaratones.Rows[i].Cells[5].Text = "Inscripto en Espera"; } } GVMaratones.Rows[i].Enabled = false; GVMaratones.Rows[i].Cells[0].Text = ""; } i++; } } }
public void CustomersGridView_SelectedIndexChanged(Object sender, EventArgs e) { int cantidad = 0; GridViewRow row = GVMaratones.SelectedRow; // row.FindControl("inscipto").va // if(row.Row.Cells[iEstado].Text = GetLocalResourceObject("CONCILIADO").ToString();) PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); ResultadoMaratonParticipante resultadoMaraton = new ResultadoMaratonParticipante(); Usuario user = GetIdUsuario(context); int IdUsuario = user.IdUsuario; int IdMaraton = 0; bool id_maraton = Int32.TryParse(row.Cells[1].Text, out IdMaraton); //Query consulta cantidad total de inscripciones try { var qc = (from rm in context.ResultadoMaratonParticipante where IdMaraton == rm.IdMaraton group rm by rm.IdMaraton into m select m.Count()).First() ; cantidad = qc; } catch( Exception ex){} cantidad++; //Incrementa cantidad de inscripciones en 1 if (id_maraton) { resultadoMaraton.IdMaraton = IdMaraton; resultadoMaraton.IdUsuario = IdUsuario; resultadoMaraton.NroInscripcion = cantidad; context.ResultadoMaratonParticipante.AddObject(resultadoMaraton); context.SaveChanges(); } this.GVMaratones_load(); //Recarga GridView }
protected void btnRegistrarResultados_Click(object sender, EventArgs e) { PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); int id_maraton = Int32.Parse(DDLMaraton.SelectedValue); int id_usuario = Int32.Parse(DDLParticipante.SelectedValue); bool estado = bool.Parse(DDLCarreraStatus.SelectedValue); try { int posicion = Int32.Parse(txtPosicion.Text); var consultaPosicion = (from rm in context.ResultadoMaratonParticipante where rm.IdMaraton == id_maraton && rm.PosicionFinal == posicion select rm).ToList(); if (consultaPosicion.Count()==0) { ResultadoMaratonParticipante resultadoMaraton = (from rm in context.ResultadoMaratonParticipante where rm.IdMaraton == id_maraton && rm.IdUsuario == id_usuario select rm).First(); Maraton maraton = (from m in context.Maraton where m.IdMaraton == id_maraton select m).First(); if (resultadoMaraton.NroInscripcion <= maraton.MaxParticipantes) { resultadoMaraton.PosicionFinal = posicion; resultadoMaraton.TiempoLlegada = Int32.Parse(txtTiempo.Text); resultadoMaraton.Finalizo = estado; context.SaveChanges(); txtPosicion.Text = ""; txtTiempo.Text = ""; ErrorMessage.Text = null; SuccessMessage.Visible = true; } else { ErrorMessage.Text = "El participante se encuentra en lista de espera"; SuccessMessage.Visible = false; } } else { ErrorMessage.Text = "La posición ya fue ingresada para otro participante"; SuccessMessage.Visible = false; } } catch(Exception ex) { ErrorMessage.Text = "El Participante seleccionado no corresponde con el maraton"; SuccessMessage.Visible = false; } }
private void GVMaratones_load() { int i = 0; PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3(); //Obtengo codigo de usuario Usuario user = GetIdUsuario(context); int IdUsuario = user.IdUsuario; //------------------------------ //Query Maratones disponibles para inscripcion. Verifica fecha de inscripcion, solo muestra en caso de haber disponibilidad y ademas verifica si el que el usuario logueado no este previamente inscripto var query = from m in context.Maraton where m.FechaHorarioComienzo >= DateTime.Now //&& (m.MaxParticipantes + m.ParticipantesEnEspera) > // (from rm in context.ResultadoMaratonParticipante // where rm.IdMaraton == m.IdMaraton // select rm).Count() //&& !(from rm in context.ResultadoMaratonParticipante // where rm.IdUsuario == IdUsuario // select rm.IdMaraton).Contains(m.IdMaraton) select new { m.IdMaraton, m.Nombre, m.LugarSalida, m.FechaHorarioComienzo, m.MaxParticipantes, estado = (from rm in context.ResultadoMaratonParticipante where rm.IdMaraton == m.IdMaraton select rm.IdUsuario).Contains(IdUsuario) ? "Inscripto" : ( (m.MaxParticipantes + m.ParticipantesEnEspera) <= (from rm in context.ResultadoMaratonParticipante where rm.IdMaraton == m.IdMaraton select rm).Count() ? "Lleno" : ((from rm in context.ResultadoMaratonParticipante where rm.IdMaraton == m.IdMaraton select rm).Count()) >= m.MaxParticipantes ? "En Espera" : "Disponible") }; String mensaje = "No existen maratones disponibles por el momento"; if (query.Count() > 0) { mensaje = "Cantidad de maratones disponibles: " + query.Count(); GVMaratones.DataSource = query; GVMaratones.DataBind(); // Convert.ToInt32(((HiddenField)e.Row.FindControl("hfReversas")).Value); // GVMaratones foreach (var datos in query) { if (datos.estado == "Inscripto" || datos.estado == "Lleno") { if (datos.estado == "Inscripto") { ResultadoMaratonParticipante resultadoMaraton = (from rm in context.ResultadoMaratonParticipante where rm.IdMaraton == datos.IdMaraton && rm.IdUsuario == IdUsuario select rm).First(); if (datos.MaxParticipantes < resultadoMaraton.NroInscripcion) { GVMaratones.Rows[i].BackColor = Color.Orange; GVMaratones.Rows[i].Cells[5].Text = "Inscripto en Espera"; } } GVMaratones.Rows[i].Enabled = false; GVMaratones.Rows[i].Cells[0].Text = ""; } i++; } } }