/// <summary> /// Gets the encounters and items by instance identifier. /// </summary> /// <param name="instanceModel">The instance model.</param> /// <returns> /// The encounters for the dungeon. /// </returns> public async Task <List <EncounterModel> > GetEncountersAndItemsByInstanceId(int instanceId) { List <EncounterModel> encModels = new List <EncounterModel>(); //On récupère les instances name grâce à la fct getInstanceById var resInstance = await InstanceRepoAPI.GetInstanceById(staticNamespace, localeUS, instanceId); var resEnc = await EncounterRepoAPI.SearchEncounter(staticNamespace, locale, resInstance.name); if (resEnc != null) { foreach (ResultEncounter result in resEnc.results) { EncounterModel encModel = new EncounterModel() { Id = result.data.id, Name = result.data.name.fr_FR, IdInstance = result.data.instance.id, Items = await GetItemsByID(result.data.items.Select(i => i.item.id).ToList()), }; int idMedia = result.data.creatures[0].creature_display.id; var resMediaCreature = await ItemRepoAPI.GetMediaCreatureById(staticNamespace, localeUS, idMedia); encModel.Media = resMediaCreature?.assets[0]?.value; encModels.Add(encModel); } } return(encModels); }
public async Task <string> GetPetMedia(int idItem) { var resItem = await ItemRepoAPI.GetItemById(staticNamespace, localeUS, idItem); string name = resItem.preview_item.spells[0].spell.name; var resCreature = await ItemRepoAPI.SearchCreature(staticNamespace, localeUS, name); int idDisplay = resCreature.results[0].data.creature_displays[0].id; var resMediaCreature = await ItemRepoAPI.GetMediaCreatureById(staticNamespace, localeUS, idDisplay); string media = resMediaCreature.assets[0].value; return(media); }
public async Task <List <EncounterModel> > GetEncountersByInstanceId(int idInstance, List <int> idItems) { List <EncounterModel> encModels = new List <EncounterModel>(); //On récupère les instances name grâce à la fct getInstanceById var resInstance = await InstanceRepoAPI.GetInstanceById(staticNamespace, localeUS, idInstance); var resEnc = await EncounterRepoAPI.SearchEncounter(staticNamespace, locale, resInstance.name); if (resEnc != null) { foreach (ResultEncounter result in resEnc.results) { EncounterModel encModel = new EncounterModel(); encModel.Id = result.data.id; encModel.Name = result.data.name.fr_FR; encModel.IdInstance = result.data.instance.id; encModel.IdItems = new List <int>(); int idMedia = result.data.creatures[0].creature_display.id; var resMediaCreature = await ItemRepoAPI.GetMediaCreatureById(staticNamespace, localeUS, idMedia); encModel.Media = resMediaCreature.assets[0].value; foreach (var item in result.data.items) { encModel.IdItems.Add(item.item.id); //Je remplis une liste d'idItems récupérée de l'extérieur pour pouvoir //remplir ma table ITEM indépendamment des boss (récupérer tous les id dans une liste, //Enlever les doublons, récupérer les ITEMMODEL avec "GetItemsByID" et les insérer dans la db" idItems.Add(item.item.id); } encModels.Add(encModel); } } return(encModels); }
public async Task <List <ItemModel> > GetItemsByID(List <int> idItems) { List <ItemModel> itemModels = new List <ItemModel>(); foreach (var idItem in idItems) { var resItem = await ItemRepoAPI.GetItemById(staticNamespace, locale, idItem); var resItemMedia = await ItemRepoAPI.GetMediaItemById(staticNamespace, locale, idItem); if (resItem != null && resItemMedia != null) { ItemModel itemModel = new ItemModel(); itemModel.Id = resItem.id; itemModel.Name = resItem.name; itemModel.Icon = resItemMedia?.assets[0]?.value; if (resItem.item_class.id == 15) { if (resItem.item_subclass.id == 2) //Mascottes { itemModel.Type = resItem.item_subclass.name; itemModel.CreatureName = resItem.preview_item.spells[0].spell.name; itemModel.Media = await GetPetMedia(resItem.id); } else if (resItem.item_subclass.id == 5) //Montures { itemModel.Type = resItem.item_subclass.name; itemModel.CreatureName = resItem.preview_item.spells[0].spell.name; string media = await GetMountMedia(resItem.id); itemModel.Media = media; } } else { itemModel.Type = resItem.item_class.name; itemModel.SubType = resItem.item_subclass.name; } itemModels.Add(itemModel); } } return(itemModels); }