public static LolStatsResponse ConvertToResponse(this TLolStat lolDbStats) { if (lolDbStats == null) { return(null); } LolStatsResponse lolResponse = new LolStatsResponse { SoloQ = new LolListStatsResponse { LeagueName = lolDbStats.SoloNameLeague, Wins = lolDbStats.SoloWins, Losses = lolDbStats.SoloLosses, LeaguePoints = lolDbStats.SoloLp, Tier = lolDbStats.SoloTier, Rank = lolDbStats.SoloRank }, FlexQ = new LolListStatsResponse { LeagueName = lolDbStats.FlexNameLeague, Wins = lolDbStats.FlexWins, Losses = lolDbStats.FlexLosses, LeaguePoints = lolDbStats.FlexLp, Tier = lolDbStats.FlexTier, Rank = lolDbStats.FlexRank } }; return(lolResponse); }
public async Task <GenericResponse <LolStatsResponse> > GetStatsFromCache(string gameUsername) { TLolStat dbStats = _databaseContext.TLolStat.FirstOrDefault(s => s.UserGame.Username == gameUsername); if (dbStats == null) { return(new GenericResponse <LolStatsResponse>($"Cannot get stats for {gameUsername}", null)); } return(new GenericResponse <LolStatsResponse>(dbStats.ConvertToResponse())); }
public async Task <GenericResponse <BooleanResponse> > UpdateCache(LolStatsResponse lolResponse, TUserGame userGame) { TLolStat dbStats = _databaseContext.TLolStat.FirstOrDefault(s => s.UserGame.Username == userGame.Username); bool newStats = false; if (dbStats == null) { newStats = true; dbStats = new TLolStat { UserGameId = userGame.Id }; } dbStats.FlexTier = lolResponse.FlexQ.Tier; dbStats.FlexLosses = lolResponse.FlexQ.Losses; dbStats.FlexLp = lolResponse.FlexQ.LeaguePoints; dbStats.FlexNameLeague = lolResponse.FlexQ.LeagueName; dbStats.FlexWins = lolResponse.FlexQ.Wins; dbStats.FlexRank = lolResponse.FlexQ.Rank; dbStats.SoloTier = lolResponse.SoloQ.Tier; dbStats.SoloLosses = lolResponse.SoloQ.Losses; dbStats.SoloLp = lolResponse.SoloQ.LeaguePoints; dbStats.SoloNameLeague = lolResponse.SoloQ.LeagueName; dbStats.SoloWins = lolResponse.SoloQ.Wins; dbStats.SoloRank = lolResponse.SoloQ.Rank; try { if (newStats) { _databaseContext.TLolStat.Add(dbStats); } else { _databaseContext.TLolStat.Update(dbStats); } await _databaseContext.SaveChangesAsync(); return(new GenericResponse <BooleanResponse>(new BooleanResponse { Success = true })); } catch (DbUpdateException e) { return(new GenericResponse <BooleanResponse>("Error while saving in cache", e)); } }
public async Task <GenericResponse <BooleanResponse> > DeleteCache(long userId) { try { // Get TLolStat cache = _databaseContext.TLolStat.Where(s => s.UserGame.UserId == userId).FirstOrDefault(); // Delete if found if (cache != null) { _databaseContext.TLolStat.Remove(cache); await _databaseContext.SaveChangesAsync(); } return(new GenericResponse <BooleanResponse>(new BooleanResponse { Success = true })); } catch (DbUpdateException e) { return(new GenericResponse <BooleanResponse>("Error while deleting game cache", e)); } }