public IEnumerable <OwPlayer> OwMatchFilter(int PlayerID, [FromUri] owFilter filter) { List <string> names = new List <string>(); List <region> regions = new List <region>(); List <int> ids = new List <int>(); PlayerGame p = null; foreach (PlayerGame pg in db.PlayerGames.Where(x => x.IDGame == 1)) { if (pg.IDGamer == PlayerID) { p = pg; } else { names.Add(pg.IdAPI); regions.Add(region.us); ids.Add(pg.IDGamer); } } if (p == null) { return(null); //BadRequest("Jogador que requisitou o match não consta no banco"); //400 } var player = OwAPI.GetPlayer(p.IdAPI, region.us, p.IDGamer); var a = OwAPI.GetPlayer(names, regions, ids).Where(x => filterPlayer(x, filter)); return(a);//201 }
public IHttpActionResult GetOwMatchFilter(int PlayerID, [FromBody] owFilter filter) { List <string> names = new List <string>(); List <region> regions = new List <region>(); List <int> ids = new List <int>(); PlayerGame p = null; foreach (PlayerGame pg in db.PlayerGames.Where(x => x.IDGame == 1)) { if (pg.IDGamer == PlayerID) { p = pg; } else { names.Add(pg.IdAPI); regions.Add(region.us); ids.Add(pg.IDGamer); } } if (p == null) { return(BadRequest()); //400 } var player = OwAPI.GetPlayer(p.IdAPI, region.us, p.IDGamer); var a = OwAPI.GetPlayer(names, regions, ids).Where(x => filterPlayer(x, filter)); return(Ok(a));//201 }
public OwPlayer GetPlayerOwObject(int PlayerID, region Region) { PlayerGame pg = db.PlayerGames.Where(x => x.IDGamer == PlayerID).FirstOrDefault(); if (pg == null) { return(null); } var a = OwAPI.GetPlayer(pg.IdAPI, Region, PlayerID); if (a == null) { return(null); } return(a); }
public IHttpActionResult GetPlayerOw(int PlayerID) { PlayerGame pg = db.PlayerGames.Where(x => x.IDGamer == PlayerID && x.IDGame == (int)Games.Overwatch).FirstOrDefault(); if (pg == null) { return(NotFound()); } var a = OwAPI.GetPlayer(pg.IdAPI, region.us, PlayerID); if (a == null) { return(NotFound()); } return(Ok(a)); }
public IHttpActionResult GetPlayerOw() { List <string> names = new List <string>(); List <region> regions = new List <region>(); List <int> ids = new List <int>(); foreach (PlayerGame pg in db.PlayerGames.Where(x => x.IDGame == 1)) { names.Add(pg.IdAPI); regions.Add(region.us); ids.Add(pg.IDGamer); Console.WriteLine(pg.IdAPI); } var a = OwAPI.GetPlayer(names, regions, ids); return(Json(a)); }
public IHttpActionResult GetNearPlayer(int PlayerID, bool Competitive, float percent) { Graph <Player, Match, string> graph = new Graph <Player, Match, string>((Match e) => { return(e.Weight != 0 ? 1 / e.Weight : float.MaxValue); }); PlayerGame currentPlayer = db.PlayerGames.Where(x => x.IDGamer == PlayerID).FirstOrDefault(); foreach (var m in db.Matches.ToArray()) { var p1 = db.PlayerGames.Where(x => x.IDGamer == m.IdPlayer1 && x.IDGame == (int)Games.Overwatch).FirstOrDefault(); var p2 = db.PlayerGames.Where(x => x.IDGamer == m.IdPlayer2 && x.IDGame == (int)Games.Overwatch).FirstOrDefault(); if (p1 != null && p2 != null) { graph.AddVertice(m.Player1, p1.IdAPI); graph.AddVertice(m.Player2, p2.IdAPI); graph.AddAresta(p1.IdAPI, p2.IdAPI, m); } } OwPlayer owPlayer = OwAPI.GetPlayer(currentPlayer.IdAPI, region.us, PlayerID); careerStats career = Competitive ? owPlayer.compCareer : owPlayer.quickCareer; float perc = percent / 100.0f; owFilter filter = new owFilter { competitive = Competitive, damage = new float[] { career.allDamageDone *(1.0f - perc), career.allDamageDone *(1.0f + perc) }, rating = new int[] { (int)(owPlayer.profile.rating * (1.0f - perc)), (int)(owPlayer.profile.rating * (1.0f + perc)) }, elimination = new int[] { (int)(career.eliminations * (1.0f - perc)), (int)(career.eliminations * (1.0f + perc)) }, }; var sorted = graph.ShortPath(currentPlayer.IdAPI).OrderBy(x => x.Value).Skip(1).Take(graph.vertCount); List <OwPlayer> players = new List <OwPlayer>(sorted.Count()); foreach (var v in sorted) { OwPlayer pp = OwAPI.GetPlayer(v.Key, region.us, 0); if (filterPlayer(pp, filter)) { players.Add(pp); } } return(Ok(players)); }