/// <summary> /// Método para registar una actividad asociada a un reto /// </summary> /// <param name="actividad">La actividad a registrar</param> /// <param name="usuarioDeportista">el deportista a validar</param> /// <returns>Un true si hay exito, false en caso contrario</returns> private bool registrarActividadReto(Actividad actividad, string usuarioDeportista) { // se accede al reto que el usuario quiere completar/avanzar var deportistaReto = _context.DeportistaReto.Where(x => x.Usuariodeportista == usuarioDeportista && x.Nombrereto == actividad.Nombreretocarrera && x.Admindeportista == actividad.Adminretocarrera). Include(x => x.Reto).FirstOrDefault(); // se valida que el tipo de actividad del reto sea la misma que la actividad que hizo el deportista if (deportistaReto == null || deportistaReto.Reto.Tipoactividad != actividad.Tipoactividad) { return(false); } _context.Add(actividad); if ((actividad.Kilometraje + deportistaReto.Kmacumulados) >= deportistaReto.Reto.Kmtotales) { deportistaReto.Kmacumulados += actividad.Kilometraje; // se suma la cantidad de kilómetros de la actividad deportistaReto.Completado = true; _context.Update(deportistaReto); return(true); } else { deportistaReto.Kmacumulados += actividad.Kilometraje; // se suma la cantidad de kilómetros de la actividad _context.Update(deportistaReto); return(true); } }
/// <summary> /// Método para aceptar una inscripción /// </summary> /// <param name="inscripcion">la inscripción a aceptar</param> public void aceptarInscripcion(Inscripcion inscripcion) { // se crea una relacion entre deportista y carrera var deportistaCarrera = new DeportistaCarrera(); deportistaCarrera.Admindeportista = inscripcion.Admincarrera; deportistaCarrera.Nombrecarrera = inscripcion.Nombrecarrera; deportistaCarrera.Usuariodeportista = inscripcion.Usuariodeportista; deportistaCarrera.Completada = false; inscripcion.Estado = "Aceptado"; // se marca como aceptada la inscripción _context.Update(inscripcion); _context.Add(deportistaCarrera); }