예제 #1
0
        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);
        }
예제 #2
0
        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));
            }
        }
예제 #3
0
        public static FortniteStatsResponse ConvertFromApiResponse(this FortniteResponse fortniteResponse)
        {
            var fortniteStatsResponse = new FortniteStatsResponse();

            fortniteStatsResponse.DuoTop1     = Int32.Parse(fortniteResponse.Stats.p10.Top1.Value);
            fortniteStatsResponse.DuoTop5     = Int32.Parse(fortniteResponse.LifeTimeStats.FirstOrDefault(i => i.Key == "Top 5s")?.Value);
            fortniteStatsResponse.DuoTop12    = Int32.Parse(fortniteResponse.LifeTimeStats.FirstOrDefault(i => i.Key == "Top 12s")?.Value);
            fortniteStatsResponse.SoloTop1    = Int32.Parse(fortniteResponse.Stats.p2.Top1.Value);
            fortniteStatsResponse.SoloTop25   = Int32.Parse(fortniteResponse.LifeTimeStats.FirstOrDefault(i => i.Key == "Top 25s")?.Value);
            fortniteStatsResponse.SquadTop1   = Int32.Parse(fortniteResponse.Stats.p9.Top1.Value);
            fortniteStatsResponse.SquadTop3   = Int32.Parse(fortniteResponse.LifeTimeStats.FirstOrDefault(i => i.Key == "Top 3s")?.Value);
            fortniteStatsResponse.SquadTop6   = Int32.Parse(fortniteResponse.LifeTimeStats.FirstOrDefault(i => i.Key == "Top 6s")?.Value);
            fortniteStatsResponse.Kills       = Int32.Parse(fortniteResponse.LifeTimeStats.FirstOrDefault(i => i.Key == "Kills")?.Value);
            fortniteStatsResponse.Kd          = float.Parse(fortniteResponse.LifeTimeStats.FirstOrDefault(i => i.Key == @"K/d")?.Value, CultureInfo.InvariantCulture.NumberFormat);
            fortniteStatsResponse.Matches     = Int32.Parse(fortniteResponse.LifeTimeStats.FirstOrDefault(i => i.Key == "Matches Played")?.Value);
            fortniteStatsResponse.WinsPercent = Int32.Parse(fortniteResponse.LifeTimeStats.FirstOrDefault(i => i.Key == @"Win%")?.Value.Split('%')[0]);
            fortniteStatsResponse.Wins        = Int32.Parse(fortniteResponse.LifeTimeStats.FirstOrDefault(i => i.Key == "Wins")?.Value);
            return(fortniteStatsResponse);
        }