public static FortniteStatsResponse ConvertToResponse(this TFortnite fortniteDbStats) { if (fortniteDbStats == null) { return(null); } FortniteStatsResponse fortniteResponse = new FortniteStatsResponse { SoloTop1 = fortniteDbStats.SoloTop1, SoloTop10 = fortniteDbStats.SoloTop10, SoloTop25 = fortniteDbStats.SoloTop25, DuoTop1 = fortniteDbStats.DuoTop1, DuoTop5 = fortniteDbStats.DuoTop5, DuoTop12 = fortniteDbStats.DuoTop12, SquadTop1 = fortniteDbStats.SquadTop1, SquadTop3 = fortniteDbStats.SquadTop3, SquadTop6 = fortniteDbStats.SquadTop6, Kd = fortniteDbStats.Kd, Kills = fortniteDbStats.Kills, Matches = fortniteDbStats.Matches, Wins = fortniteDbStats.Wins, WinsPercent = fortniteDbStats.WinPercent }; return(fortniteResponse); }
public async Task <GenericResponse <FortniteStatsResponse> > GetStatsFromCache(string gameUsername) { TFortnite dbStats = _databaseContext.TFortnite.FirstOrDefault(s => s.UserGame.Username == gameUsername); if (dbStats == null) { return(new GenericResponse <FortniteStatsResponse>($"Cannot get stats for {gameUsername}", null)); } return(new GenericResponse <FortniteStatsResponse>(dbStats.ConvertToResponse())); }
public async Task <GenericResponse <BooleanResponse> > UpdateCache(FortniteStatsResponse fortniteResponse, TUserGame userGame) { TFortnite dbStats = _databaseContext.TFortnite.FirstOrDefault(s => s.UserGame.Username == userGame.Username); bool newStats = false; if (dbStats == null) { newStats = true; dbStats = new TFortnite { UserGameId = userGame.Id }; } dbStats.DuoTop1 = fortniteResponse.DuoTop1; dbStats.DuoTop5 = fortniteResponse.DuoTop5; dbStats.DuoTop12 = fortniteResponse.DuoTop12; dbStats.SoloTop1 = fortniteResponse.SoloTop1; dbStats.SoloTop10 = fortniteResponse.SoloTop10; dbStats.SoloTop25 = fortniteResponse.SoloTop25; dbStats.SquadTop1 = fortniteResponse.SquadTop1; dbStats.SquadTop3 = fortniteResponse.SquadTop3; dbStats.SquadTop6 = fortniteResponse.SquadTop6; dbStats.Kills = fortniteResponse.Kills; dbStats.Kd = fortniteResponse.Kd; dbStats.Matches = fortniteResponse.Matches; dbStats.WinPercent = fortniteResponse.WinsPercent; dbStats.Wins = fortniteResponse.Wins; try { if (newStats) { _databaseContext.TFortnite.Add(dbStats); } else { _databaseContext.TFortnite.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 TFortnite cache = _databaseContext.TFortnite.Where(s => s.UserGame.UserId == userId).FirstOrDefault(); // Delete if found if (cache != null) { _databaseContext.TFortnite.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)); } }