示例#1
0
        public async Task <GenericResponse <BooleanResponse> > RemoveUserGame(TGame dbGame, string gameUsername, long userId)
        {
            try
            {
                TUserGame dbUserGame = _databaseContext.TUserGame
                                       .FirstOrDefault(ug => ug.UserId == userId && ug.GameId == dbGame.Id && ug.Username == gameUsername);

                // Error case if not found
                if (dbUserGame == null)
                {
                    return(new GenericResponse <BooleanResponse>($"Cannot find {gameUsername} for game {dbGame.Id}", null));
                }

                _databaseContext.TUserGame.Remove(dbUserGame);
                await _databaseContext.SaveChangesAsync();

                return(new GenericResponse <BooleanResponse>(new BooleanResponse {
                    Success = true
                }));
            }
            catch (DbUpdateException e)
            {
                return(new GenericResponse <BooleanResponse>("Error while removing game", e));
            }
        }
示例#2
0
        public async Task <GenericResponse <BooleanResponse> > UpdateCache(EdsmResponse edsmResponse, TUserGame userGame)
        {
            TEliteStat dbStats = _databaseContext.TEliteStat.FirstOrDefault(s => s.UserGame.Username == userGame.Username);

            bool newStats = false;

            if (dbStats == null)
            {
                newStats = true;
                dbStats  = new TEliteStat {
                    UserGameId = userGame.Id
                };
            }

            dbStats.CombatProgress     = edsmResponse.Progress.Combat;
            dbStats.CombatRank         = edsmResponse.Ranks.Combat;
            dbStats.CqcProgress        = edsmResponse.Progress.CQC;
            dbStats.CqcRank            = edsmResponse.Ranks.CQC;
            dbStats.EmpireProgress     = edsmResponse.Progress.Empire;
            dbStats.EmpireRank         = edsmResponse.Ranks.Empire;
            dbStats.ExplorerProgress   = edsmResponse.Progress.Explore;
            dbStats.ExplorerRank       = edsmResponse.Ranks.Explore;
            dbStats.FederationProgress = edsmResponse.Progress.Federation;
            dbStats.FederationRank     = edsmResponse.Ranks.Federation;
            dbStats.TraderProgress     = edsmResponse.Progress.Trade;
            dbStats.TraderRank         = edsmResponse.Ranks.Trade;

            try
            {
                if (newStats)
                {
                    _databaseContext.TEliteStat.Add(dbStats);
                }
                else
                {
                    _databaseContext.TEliteStat.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));
            }
        }
示例#3
0
        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));
            }
        }
示例#4
0
        public async Task <GenericResponse <BooleanResponse> > UpdateCache(Gw2StatsResponse gw2StatResponse, TUserGame userGame)
        {
            TGw2Stat dbStats = _databaseContext.TGw2Stat.FirstOrDefault(s => s.UserGame.Username == userGame.Username);

            bool newStats = false;

            if (dbStats == null)
            {
                newStats = true;
                dbStats  = new TGw2Stat {
                    UserGameId = userGame.Id
                };
            }

            dbStats.PvpRank          = gw2StatResponse.PvpRank;
            dbStats.PvpRankPoints    = gw2StatResponse.PvpRankPoint;
            dbStats.PvpRankRollovers = gw2StatResponse.PvpRankRollovers;
            dbStats.Wins             = gw2StatResponse.Aggregate.Wins;
            dbStats.Losses           = gw2StatResponse.Aggregate.Losses;
            dbStats.Desertions       = gw2StatResponse.Aggregate.Desertions;
            dbStats.Byes             = gw2StatResponse.Aggregate.Byes;
            dbStats.Forfeits         = gw2StatResponse.Aggregate.Forfeits;
            dbStats.UserGameId       = userGame.Id;

            try
            {
                if (newStats)
                {
                    _databaseContext.TGw2Stat.Add(dbStats);
                }
                else
                {
                    _databaseContext.TGw2Stat.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));
            }
        }
示例#5
0
        public async Task <GenericResponse <BooleanResponse> > UpdateCache(R6StatsResponse r6StatsResponse, TUserGame userGame)
        {
            TR6Stat dbStats = _databaseContext.TR6Stat.FirstOrDefault(s => s.UserGame.Username == userGame.Username);

            bool newStats = false;

            if (dbStats == null)
            {
                newStats = true;
                dbStats  = new TR6Stat {
                    UserGameId = userGame.Id
                };
            }

            dbStats.CasualDeaths   = r6StatsResponse.Player.Stats.Casual.Deaths;
            dbStats.CasualKd       = r6StatsResponse.Player.Stats.Casual.Kd;
            dbStats.CasualKills    = r6StatsResponse.Player.Stats.Casual.Kills;
            dbStats.CasualLosses   = r6StatsResponse.Player.Stats.Casual.Losses;
            dbStats.CasualPlaytime = r6StatsResponse.Player.Stats.Casual.Playtime;
            dbStats.CasualWins     = r6StatsResponse.Player.Stats.Casual.Wins;
            dbStats.CasualWlr      = r6StatsResponse.Player.Stats.Casual.Wlr;
            dbStats.PlayerLevel    = r6StatsResponse.Player.Stats.Progression.Level;
            dbStats.RankedDeaths   = r6StatsResponse.Player.Stats.Ranked.Deaths;
            dbStats.RankedKd       = r6StatsResponse.Player.Stats.Ranked.Kd;
            dbStats.RankedKills    = r6StatsResponse.Player.Stats.Ranked.Kills;
            dbStats.RankedLosses   = r6StatsResponse.Player.Stats.Ranked.Losses;
            dbStats.RankedPlaytime = r6StatsResponse.Player.Stats.Ranked.Playtime;
            dbStats.RankedWins     = r6StatsResponse.Player.Stats.Ranked.Wins;
            dbStats.RankedWlr      = r6StatsResponse.Player.Stats.Ranked.Wlr;

            try
            {
                if (newStats)
                {
                    _databaseContext.TR6Stat.Add(dbStats);
                }
                else
                {
                    _databaseContext.TR6Stat.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> > 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));
            }
        }