private async Task PopulateRecipe() { var _recipeIDs = await ItemAPI.SearchRecipesByOutput(ItemID); if (_recipeIDs?.Count > 0) //Check for normal recipe { _recipes = await ItemAPI.Recipes(_recipeIDs); } /*else if (!ItemAPI.IsPromotionItem(ItemID)) { //Check for Mystic Forge recipe * var mysticForgeRecipes = await ItemAPI.SearchMysticForgeRecipesByOutput(ItemID); * * if (mysticForgeRecipes?.Count > 0) { * _recipe = mysticForgeRecipes[0]; * foreach (var recipe in mysticForgeRecipes) { * _recipeIDs.Add(recipe.ID); * } * } * }*/ /*else { //This should onlu occur when the item is a consumable recipe * if (_item == null) * _item = await ItemAPI.Items(ItemID); * * if (_item?.Details != null && _item?.Details.RecipeID != 0) { * _recipeIDs.Add(_item.Details.RecipeID); * _recipe = await ItemAPI.Recipes(_item.Details.RecipeID); * } * }*/ }
/// <summary> /// Used to override a recipe or select a specific one. /// </summary> /// <param name="recipeID"></param> /// <returns></returns> public async Task ChangeRecipe(int recipeID) { if (_recipes.Any(x => x.ID == recipeID)) { _currentRecipeIndex = _recipes.IndexOf(_recipes.FirstOrDefault(x => x.ID == recipeID)); } else { var newRecipe = await ItemAPI.Recipes(recipeID); _recipes = new List <Recipe> { newRecipe }; _currentRecipeIndex = 0; } await Populate(); }