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); }
public IHttpActionResult GetHead2Head(int id) { Jogo jogo = db.Jogo.Find(id); if (jogo == null) { return(NotFound()); } HeadToHead headToHead = montarHead2Head(jogo); return(Ok(headToHead)); }
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)); }
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); }
public IHttpActionResult GetHead2Head(int userId, int userIdOponente) { HeadToHead headToHead = montarHead2Head(userIdOponente, userId); return(Ok(headToHead)); }
public void AddHeadToHead(HeadToHead headToHead) { headToHeadList.Add(headToHead); }