public async Task <Guild> GetGuildData(int allyCode) { string functionName = "GetGuildRepo"; string key = allyCode.ToString(); var objCache = _cacheClient.GetDataFromRepositoryCache(functionName, key); if (objCache != null) { var guild = (Guild)objCache; guild.LoadedFromCache = true; return(guild); } var guildRepo = new SWGoHHelpGuildRepository(_settings.SWGoHHelpSettings, _cacheClient, _mapper); var guildResult = await guildRepo.GetGuild(allyCode); //load to cache try { var b = await _cacheClient.AddToRepositoryCache(functionName, key, guildResult, _settings.CachingSettings.RepositoryCachingInMinutes); } catch (Exception ex) { } return(guildResult); }
public async Task <Player> GetPlayerData(int allyCode) { string functionName = "GetPlayerRepo"; string key = allyCode.ToString(); var objCache = _cacheClient.GetDataFromRepositoryCache(functionName, key); if (objCache != null) { var player = (Player)objCache; player.LoadedFromCache = true; return(player); } var playerRepo = new SWGoHHelpPlayerRepository(_settings.SWGoHHelpSettings, _cacheClient, _mapper); var playerResult = await playerRepo.GetPlayer(allyCode); //load to cache try { var b = await _cacheClient.AddToRepositoryCache(functionName, key, playerResult, _settings.CachingSettings.RepositoryCachingInMinutes); } catch (Exception ex) { } return(playerResult); }
public async Task <Player> GetPlayer(string userName) { await Task.FromResult(1); string functionName = "GetPlayerRepo"; string key = userName; var objCache = cacheClient.GetDataFromRepositoryCache(functionName, key); if (objCache != null) { var player = (Player)objCache; player.LoadedFromCache = true; return(player); } var queryData = string.Concat("{\"PlayerName\":\"", userName, "\"}"); var orderby = "{\"LastSwGohUpdated\":-1}"; var limit = "1"; string url = BuildApiUrl("Player", queryData, orderby, limit, null); try { using (var client = new HttpClient()) { var response = await client.GetStringAsync(url); List <PlayerDto> ret = JsonConvert.DeserializeObject <List <PlayerDto> >(response, JSonConverterSettings.Settings); var players = _Mapper.Map <List <Player> >(ret); if (players == null || players.Count == 0) { return(players.FirstOrDefault()); } //load to cache await cacheClient.AddToRepositoryCache(functionName, key, players.FirstOrDefault()); return(players.FirstOrDefault()); } } catch (Exception ex) { throw new ApplicationException(ex.Message); } }
public async Task <List <GuildUnit> > GetGuildUnits(int guildId) { string functionName = "GetGuildUnitsRepo"; string key = guildId.ToString(); var objCache = cacheClient.GetDataFromRepositoryCache(functionName, key); if (objCache != null) { var _guildCharacters = (List <GuildUnit>)objCache; _guildCharacters.ForEach(p => p.LoadedFromCache = true); return(_guildCharacters); } var configCharacters = await IResolver.Current.CharacterSettings.GetCharactersConfig(); var configShips = await IResolver.Current.ShipSettings.GetShipConfig(); var url = string.Format("https://swgoh.gg/api/guilds/{0}/units/", guildId.ToString()); List <GuildUnitDto> chars = new List <GuildUnitDto>(); using (var client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(url); HttpContent content = response.Content; string reqResult = await content.ReadAsStringAsync(); JObject json = new JObject(); try { json = JObject.Parse(reqResult); } catch (Exception ex) { //swallow the error return(null); } foreach (var row in json) { var unitName = row.Key; if (configCharacters.Where(p => p.Command?.ToLower() == row.Key.ToLower()) != null && configCharacters.Where(p => p.Command?.ToLower() == row.Key.ToLower()).Count() > 0) { unitName = configCharacters.Where(p => p.Command?.ToLower() == row.Key.ToLower()).FirstOrDefault().Name; } else if (configShips.Where(p => p.Command?.ToLower() == row.Key.ToLower()) != null && configShips.Where(p => p.Command?.ToLower() == row.Key.ToLower()).Count() > 0) { unitName = configShips.Where(p => p.Command?.ToLower() == row.Key.ToLower()).FirstOrDefault().Name; } GuildUnitDto gc = new GuildUnitDto { Name = unitName }; List <GuildPlayerUnitDto> players = new List <GuildPlayerUnitDto>(); foreach (var player in row.Value) { players.Add(new GuildPlayerUnitDto { Name = player["player"].ToString(), Level = (int)player["level"], Power = (int)player["power"], Rarity = (int)player["rarity"], Combat_Type = (int)player["combat_type"] }); gc.Players = players; } chars.Add(gc); } } List <GuildUnit> guildCharacters = _Mapper.Map <List <GuildUnit> >(chars); await cacheClient.AddToRepositoryCache(functionName, key, guildCharacters, 30); return(guildCharacters); }
public async Task <string> GetToken() { var token = ""; string functionName = "SWGoHHelp"; string key = "token"; var objCache = _cacheClient.GetDataFromRepositoryCache(functionName, key); if (objCache != null) { token = (string)objCache; return(token); } string protocol = string.IsNullOrEmpty(_protocol) ? "https" : _protocol; string host = string.IsNullOrEmpty(_host) ? "api.swgoh.help" : _host; string port = string.IsNullOrEmpty(_port) ? "" : _port; var url = protocol + "://" + host + port; var signIn = url + "/auth/signin/"; var user = "******" + _settings.UserName; user += "&password="******"&grant_type=password"; user += "&client_id=" + _client_id; user += "&client_secret=" + _client_secret; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(signIn); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; byte[] byteArray = Encoding.UTF8.GetBytes(user); request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); WebResponse response = request.GetResponse(); //Console.WriteLine(((HttpWebResponse)response).StatusDescription); dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); var loginresponse = reader.ReadToEnd(); reader.Close(); dataStream.Close(); response.Close(); var loginResponseObject = JsonConvert.DeserializeObject <LoginResponse>(loginresponse); token = loginResponseObject.access_token; //load to cache try { var b = await _cacheClient.AddToRepositoryCache(functionName, key, token, _settings.TokenCachingInMinutes); } catch (Exception ex) { } return(token); } catch (Exception e) { throw e; } }