public async Task <List <ChampionScript> > GetListChampionScript(int idChampion)
        {
            var arrayScriptInfo = _scriptInfoService.GetAllScript();
            var arrayChampion   = _championService.GetAllChampion();

            await Task.WhenAll(arrayScriptInfo, arrayChampion);

            var arrayChampionScript = _cacheService.GetCache <List <ChampionScript> >($"{KeyChampion}{idChampion}");

            if (arrayChampionScript == null)
            {
                var data = await _firebaseService.GetChampionScript();

                arrayChampionScript = new List <ChampionScript>();

                foreach (var item in data.Where(a => a.IdChampion == idChampion))
                {
                    item.Champion   = item.ChampionExtension(arrayChampion.Result);
                    item.ScriptInfo = item.ScriptInfoExtension(arrayScriptInfo.Result);

                    arrayChampionScript.Add(item);
                }

                arrayChampionScript = arrayChampionScript.OrderByDescending(a => a.Status)
                                      .ThenByDescending(a => (Convert.ToDouble(a.Rating) / Convert.ToDouble(a.TotalRate))).ToList();

                _cacheService.SetCache($"{KeyChampion}{idChampion}", arrayChampionScript);
            }

            return(arrayChampionScript);
        }
Esempio n. 2
0
 public async Task <IActionResult> TableScript()
 {
     return(PartialView(await _scriptInfoService.GetAllScript()));
 }