public async Task <ScoutUser> GetUser(string title, string identifier, Dictionary <string, string> parameters = null) { try { if (parameters == null) { parameters = new Dictionary <string, string>(); } parameters["title"] = title; parameters["identifier"] = identifier; List <string> parameterSets = new List <string>(); foreach (var parameter in parameters) { parameterSets.Add(string.Format("{0}: \"{1}\"", parameter.Key, parameter.Value)); } string query = "{ players(" + string.Join(", ", parameterSets) + ") { results { player { playerId handle } persona { id handle } } } }"; JObject content = new JObject(); content["query"] = query; content["variables"] = new JObject(); HttpResponseMessage response = await this.PostAsync("graph", this.CreateContentFromObject(content)); if (response.IsSuccessStatusCode) { JObject jobj = await this.ProcessJObjectResponse(response); if (jobj.ContainsKey("data")) { JObject data = (JObject)jobj["data"]; if (data.ContainsKey("players")) { JObject players = (JObject)data["players"]; if (players.ContainsKey("results")) { JArray results = (JArray)players["results"]; foreach (JObject result in results) { ScoutUser user = new ScoutUser(result); if (!string.IsNullOrEmpty(user.PlayerID) && !string.IsNullOrEmpty(user.PlayerHandle) && user.PlayerHandle.Equals(identifier, StringComparison.InvariantCulture)) { return(user); } } } } } } } catch (Exception ex) { Logger.Log(ex); } return(null); }
public override async Task Initialize() { string platformString = ""; switch (this.Platform) { case GameStatsPlatformTypeEnum.PC: platformString = "uplay"; break; case GameStatsPlatformTypeEnum.Xbox: platformString = "xbl"; break; case GameStatsPlatformTypeEnum.Playstation: platformString = "psn"; break; } this.user = await ChannelSession.Services.Scout.GetUser("r6siege", this.Username, new Dictionary <string, string>() { { "platform", platformString }, }); }
public override async Task Initialize() { this.categoryEnum = EnumHelper.GetEnumValueFromString <CallOfDutyBlackOps4GameStatsCategoryTypeEnum>(this.Category); string platformString = ""; switch (this.Platform) { case GameStatsPlatformTypeEnum.PC: platformString = "battlenet"; break; case GameStatsPlatformTypeEnum.Xbox: platformString = "xbl"; break; case GameStatsPlatformTypeEnum.Playstation: platformString = "psn"; break; } this.user = await ChannelSession.Services.Scout.GetUser("codbo4", this.Username, new Dictionary <string, string>() { { "platform", platformString }, }); }
public override async Task Initialize() { this.categoryEnum = EnumHelper.GetEnumValueFromString <FortniteGameStatsCategoryTypeEnum>(this.Category); string platformString = ""; string consoleString = null; switch (this.Platform) { case GameStatsPlatformTypeEnum.PC: platformString = "epic"; break; case GameStatsPlatformTypeEnum.Xbox: platformString = "xbl"; consoleString = "xb1"; break; case GameStatsPlatformTypeEnum.Playstation: platformString = "psn"; consoleString = "ps4"; break; } this.user = await ChannelSession.Services.Scout.GetUser("fortnite", this.Username, new Dictionary <string, string>() { { "platform", platformString }, { "console", consoleString }, }); }
public async Task <Dictionary <string, ScoutStat> > GetStats(string title, ScoutUser user, string segment, Dictionary <string, string> parameters = null) { try { if (parameters == null) { parameters = new Dictionary <string, string>(); } parameters["title"] = title; parameters["id"] = user.PlayerID; if (!string.IsNullOrEmpty(segment)) { parameters["segment"] = segment; } List <string> parameterSets = new List <string>(); foreach (var parameter in parameters) { parameterSets.Add(string.Format("{0}: \"{1}\"", parameter.Key, parameter.Value)); } string query = "{ player(" + string.Join(", ", parameterSets) + ") { id metadata { key value } "; if (!string.IsNullOrEmpty(segment)) { query += "segments { metadata { key value } stats { metadata { key } value } }"; } else { query += "stats { metadata { key } value }"; } query += " } }"; JObject content = new JObject(); content["query"] = query; content["variables"] = new JObject(); HttpResponseMessage response = await this.PostAsync("graph", this.CreateContentFromObject(content)); if (response.IsSuccessStatusCode) { JObject jobj = await this.ProcessJObjectResponse(response); if (jobj.ContainsKey("data")) { JObject data = (JObject)jobj["data"]; if (data.ContainsKey("player")) { JObject player = (JObject)data["player"]; if (player.ContainsKey("id") && player["id"].ToString().Equals(user.PlayerID, StringComparison.InvariantCulture)) { List <ScoutStat> results = new List <ScoutStat>(); if (player.ContainsKey("metadata")) { JArray metadata = (JArray)player["metadata"]; foreach (JObject stat in metadata) { results.Add(new ScoutStat(stat)); } } if (player.ContainsKey("stats")) { JArray stats = (JArray)player["stats"]; foreach (JObject stat in stats) { results.Add(new ScoutStat(stat)); } } if (player.ContainsKey("segments")) { JArray segments = (JArray)player["segments"]; foreach (JObject seg in segments) { if (seg.ContainsKey("stats")) { JArray stats = (JArray)seg["stats"]; foreach (JObject stat in stats) { results.Add(new ScoutStat(stat)); } } } } return(results.ToDictionary(s => s.Name, s => s)); } } } } } catch (Exception ex) { Logger.Log(ex); } return(null); }