public ActionResult Proximo(string txtMedida, int hdnId, string unidades) { if (Session["USUARIO"] != null) { Usuario user = (Usuario)Session["USUARIO"]; ViewBag.IsAdmin = user.IsAdmin; ViewBag.Usuario = user; TreinoAtual t = TreinoAtualDAO.BuscarTreinoAtualUsuario(user); Treino treino = t.Treino; TentativaDeTreino tentativaAtual = TentativaDeTreinoDAO.BuscarTentativaDeTreino(treino.TentativasDeTreino.Last().TentativaDeTreinoId); if (!(hdnId + 1 > treino.ItensTreino.Count)) { tentativaAtual.ItemTreinoAtual = treino.ItensTreino[hdnId + 1]; } else { RedirectToAction("TreinoAtual"); } TentativaDeTreinoDAO.Alterar(tentativaAtual); if (unidades.Equals("peso")) { Peso peso = new Peso(); peso.Exercicio = tentativaAtual.ItemTreinoAtual.Exercicio; peso.Data = DateTime.Now; peso.Aluno = user; peso.Quantidade = Convert.ToDouble(txtMedida); PesoDAO.Cadastrar(peso); } else if (!(txtMedida.Equals(""))) { Tempo tempo = new Tempo(); tempo.Exercicio = tentativaAtual.ItemTreinoAtual.Exercicio; tempo.Data = DateTime.Now; tempo.Aluno = user; tempo.TempoDecorrido = Convert.ToDouble(txtMedida); TempoDAO.Cadastrar(tempo); } if (t != null) { ViewBag.TreinoAtual = TreinoDAO.BuscarTreino(t.Treino.TreinoId); } else { return(RedirectToAction("Error")); } } return(RedirectToAction("TreinoAtual")); }
public dynamic GetMediaExercicios() { List <MediaExercicios> medias = new List <MediaExercicios>(); List <Exercicio> exercicios = ExercicioDAO.RetornarExercicios(); foreach (Exercicio e in exercicios) { List <Tempo> tempos = TempoDAO.RetornarTempoPorExercicio(e); List <Peso> pesos = PesoDAO.RetornarPesoPorExercicio(e); MediaExercicios media = new MediaExercicios(); Usuario u = new Usuario(); media.Pesos = pesos; media.Tempos = tempos; var todosOsTempos = new List <double>(); var todosOsPesos = new List <double>(); foreach (Tempo tempo in tempos) { todosOsTempos.Add(tempo.TempoDecorrido); } foreach (Peso peso in pesos) { todosOsPesos.Add(peso.Quantidade); } if (todosOsPesos.Count > 0) { var arrayPesos = todosOsPesos.ToArray(); double avgPeso = Queryable.Average(arrayPesos.AsQueryable()); media.MediaDePeso = avgPeso; } else { media.MediaDePeso = 0; } if (todosOsTempos.Count > 0) { var arrayTempo = todosOsTempos.ToArray(); double avgTempo = Queryable.Average(arrayTempo.AsQueryable()); media.MediaDeTempo = avgTempo; } else { media.MediaDeTempo = 0; } if (tempos.Count > 0) { u = tempos.GroupBy(a => a.Aluno) .OrderByDescending(g => g.Count()) .First().Key; } else if (pesos.Count > 0) { u = pesos.GroupBy(a => a.Aluno) .OrderByDescending(g => g.Count()) .First().Key; } media.UsuarioQueMaisFez = u; media.Exercicio = e; medias.Add(media); } return(medias); }