コード例 #1
0
ファイル: LolBusiness.cs プロジェクト: G159w/GameStatProject
        public async Task <GenericResponse <LolStatsResponse> > GetStats(string gameUsername)
        {
            // Get corresponding player
            GenericResponse <TUserGame> lolGame = await _userGameDataAccess.GetUserGame("lol", gameUsername);

            if (!lolGame.Success)
            {
                return(new GenericResponse <LolStatsResponse>($"{gameUsername} not found in the database", null));
            }

            // First try to get stats from Site
            GenericResponse <LolStatsResponse> lolStats = await _lolDataAccess.GetStatsFromSite(gameUsername);

            if (lolStats.Success)
            {
                await _lolDataAccess.UpdateCache(lolStats.Result, lolGame.Result);

                return(new GenericResponse <LolStatsResponse>(lolStats.Result));
            }
            else
            {
                lolStats = await _lolDataAccess.GetStatsFromCache(gameUsername);
            }

            // Response
            if (lolStats.Success)
            {
                return(new GenericResponse <LolStatsResponse>(lolStats.Result));
            }
            else
            {
                return(new GenericResponse <LolStatsResponse>(lolStats.ErrorMessage, lolStats.Exception));
            }
        }