Esempio n. 1
0
        private HeadToHead montarHead2Head(int userIdOponente, int userId)
        {
            var jogosHeadToHead = db.Jogo.Where(j => (j.desafiado_id == userId && j.desafiante_id == userIdOponente) ||
                                                (j.desafiante_id == userId && j.desafiado_id == userIdOponente)).ToList();

            HeadToHead headToHead = new HeadToHead();

            headToHead.Id = 0;

            headToHead.qtddVitoriasDesafiado  = jogosHeadToHead.Where(j => j.idDoVencedor == userId).Count();
            headToHead.qtddVitoriasDesafiante = jogosHeadToHead.Where(j => j.idDoVencedor == userIdOponente).Count();

            var userOponente = db.UserProfiles.Find(userIdOponente);

            headToHead.idDesafiado             = userId;
            headToHead.idDesafiante            = userIdOponente;
            headToHead.alturaDesafiante        = userOponente.altura2;
            headToHead.idadeDesafiante         = userOponente.idade;
            headToHead.naturalidadeDesafiante  = userOponente.naturalidade;
            headToHead.inicioRankingDesafiante = userOponente.dataInicioRancking.Month + "/" + userOponente.dataInicioRancking.Year;
            headToHead.lateralDesafiante       = userOponente.lateralidade;
            try
            {
                var melhorRankingDesafiante = db.Rancking.Where(r => r.userProfile_id == userIdOponente && r.posicaoClasse != null && r.classeId != null).OrderBy(r => r.classe.nivel).ThenBy(r => r.posicaoClasse).Take(1).ToList();
                headToHead.melhorPosicaoDesafiante = melhorRankingDesafiante[0].posicaoClasse + "º/" + melhorRankingDesafiante[0].classe.nome;
            }
            catch (Exception e) { }

            return(headToHead);
        }
Esempio n. 2
0
        public IHttpActionResult GetHead2Head(int id)
        {
            Jogo jogo = db.Jogo.Find(id);

            if (jogo == null)
            {
                return(NotFound());
            }
            HeadToHead headToHead = montarHead2Head(jogo);

            return(Ok(headToHead));
        }
Esempio n. 3
0
        public IHttpActionResult GetHead2Head(int userId)
        {
            var user = db.UserProfiles.Find(userId);

            if (user == null)
            {
                return(NotFound());
            }
            HeadToHead headToHead = new HeadToHead();

            headToHead.idadeDesafiado         = user.idade;
            headToHead.naturalidadeDesafiado  = user.naturalidade;
            headToHead.lateralDesafiado       = user.lateralidade;
            headToHead.alturaDesafiado        = user.altura2;
            headToHead.inicioRankingDesafiado = user.dataInicioRancking.Month + "/" + user.dataInicioRancking.Year;
            var melhorRankingDesafiado = db.Rancking.Where(r => r.userProfile_id == userId && r.posicaoClasse != null && r.classeId != null).OrderBy(r => r.classe.nivel).ThenBy(r => r.posicaoClasse).Take(1).ToList();

            headToHead.melhorPosicaoDesafiado = melhorRankingDesafiado[0].posicaoClasse + "º/" + melhorRankingDesafiado[0].classe.nome;

            return(Ok(headToHead));
        }
Esempio n. 4
0
        private static HeadToHeadStats CalculateHead2Head(HeadToHead h2h, int take = 20)
        {
            var r = new HeadToHeadStats
            {
                Player1 = h2h.Player1,
                Player2 = h2h.Player2
            };

            if (h2h.Results == null)
            {
                return(r);
            }

            foreach (var q in h2h.Results.Where(v => v.Status != "cancelled").OrderByDescending(x => x.Date).Take(take))
            {
                var p1     = q.Player1.Name;
                var p2     = q.Player2.Name;
                var result = q.FT.Split(':').Select(int.Parse).ToList();

                if (result[0] == result[1])
                {
                    r.DrawsCount++;
                    continue;
                }

                if (result[0] > result[1])
                {
                    if (p1 == r.Player1)
                    {
                        r.P1WinsCount++;
                    }
                    else
                    {
                        r.P2WinsCount++;
                    }
                    continue;
                }

                if (result[0] < result[1])
                {
                    if (p2 == r.Player2)
                    {
                        r.P2WinsCount++;
                    }
                    else
                    {
                        r.P1WinsCount++;
                    }
                }
            }

            var lastMatch = h2h.Results.Last();
            var lastRes   = lastMatch.FT.Split(':').Select(int.Parse).ToList();

            if (lastRes[0] == lastRes[1])
            {
                r.LastResult = "x";
            }
            else
            {
                if (lastRes[0] > lastRes[1])
                {
                    r.LastResult = lastMatch.Player1.Name;
                }
                else
                {
                    r.LastResult = lastMatch.Player2.Name;
                }
            }

            return(r);
        }
Esempio n. 5
0
        public IHttpActionResult GetHead2Head(int userId, int userIdOponente)
        {
            HeadToHead headToHead = montarHead2Head(userIdOponente, userId);

            return(Ok(headToHead));
        }
Esempio n. 6
0
 public void AddHeadToHead(HeadToHead headToHead)
 {
     headToHeadList.Add(headToHead);
 }