public async Task <List <GeneralItemsClientModel> > GetClientItemsAsync(GeneralBaseRequest request) { var response = await SendRequestAsync <List <GeneralItemsClientModel> >(_requestUrlBuilder.BuildGetItemsUrl(request.SessionId, request.LanguageId)); await LogUsageStat(ActionNameConstants.GetChampions); return(HandleRetMessageReponse(response)); }
/// <summary> /// Initial Seeding of the database for the following tables: /// -> Language /// -> Queue /// -> Tier /// -> Item /// -> Champion /// -> Champion Abilities /// -> Ability /// -> Skins /// </summary> /// <returns>List of NonDataResult</returns> public async Task <IEnumerable <NonDataResult> > SeedAsync() { var response = new List <NonDataResult>(); //insert languages var langaugeResult = await _unitOfWorkManager.ExecuteSingleAsync <ILanguageRepository, NonDataResult>(u => u.InsertBaseLanguageOptionsAsync()); response.Add(langaugeResult); //insert queues var queueResult = await _unitOfWorkManager.ExecuteSingleAsync <IQueueRepository, NonDataResult>(u => u.InsertBaseQueuesAsync()); response.Add(queueResult); //insert tiers var tierResult = await _unitOfWorkManager.ExecuteSingleAsync <ITierRepository, NonDataResult>(u => u.InsertBaseTiersAsync()); response.Add(tierResult); //generate session var session = await _sessionClient.GetClientSessionAsync(); //fetch items using session var items = await _generalClient.GetClientItemsAsync(GeneralBaseRequest.CreateInstance(session.SessionId)); //insert items var itemResult = await _unitOfWorkManager.ExecuteSingleAsync <IItemRepository, NonDataResult> (u => u.InsertItemsAsync(items.Select(x => _itemMapper.Map(x)))); //fetch champions using session var champions = await _generalClient.GetClientChampionsAsync(GeneralBaseRequest.CreateInstance(session.SessionId)); var mappedChampions = champions.Select(x => _championMapper.Map(x)); //use champions to get all abilities var abilities = mappedChampions.SelectMany(x => x.Abilities); //insert abilities var abilityResult = await _unitOfWorkManager.ExecuteSingleAsync <IAbilityRepository, NonDataResult> (u => u.InsertAbilitiesAsync(abilities)); response.Add(abilityResult); //insert champions var championResult = await _unitOfWorkManager.ExecuteSingleAsync <IChampionRepository, NonDataResult> (u => u.InsertChampionsAsync(mappedChampions)); response.Add(championResult); //insert champion abilities var championAbilitiesResult = await _unitOfWorkManager.ExecuteSingleAsync <IChampionAbilitiesRepository, NonDataResult>(u => u.InsertLinkingRelationships(mappedChampions)); response.Add(championAbilitiesResult); foreach (var champion in mappedChampions) { //foreach champion fetch champion skins var skins = await _generalClient.GetClientChampionSkinsAsync(ChampionSkinsRequest.CreateInstance(session.SessionId, champion.PaladinsChampionId)); var mappedSkins = skins.Select(x => _skinMapper.Map(x)).SelectMany(x => x.ToList()); //insert skin var skinResult = await _unitOfWorkManager.ExecuteSingleAsync <ISkinRepository, NonDataResult>(u => u.InsertBaseChampionSkins(mappedSkins)); response.Add(skinResult); } return(response); }