示例#1
0
        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);
        }