Exemplo n.º 1
0
 public static async Task <string> GetRecipeString(RecipeDetailsEntry recipe)
 {
     return(await Task.Run(
                async() =>
     {
         var sb = new StringBuilder();
         try
         {
             var outputItem = await ItemManager.Instance.GetItem(recipe.OutputItemId);
             sb.AppendFormat("{0}: {1} x{2}\n", "Name", outputItem.Name, recipe.OutputCount);
             sb.AppendFormat(_defaultPropertyFormat, "Type", recipe.RecipeType);
             sb.AppendFormat(_defaultPropertyFormat, "Skill Needed", recipe.MinRating);
             sb.AppendFormat(_defaultPropertyFormat, "Craft Time(s)", recipe.TimeToCraftMsec / 1000.0);
             sb.AppendLine("Diciplines:");
             foreach (var dicipline in recipe.Diciplines)
             {
                 sb.AppendFormat("  {0}", dicipline);
             }
             sb.AppendLine("Flags: " + string.Join(", ", recipe.Flags));
             sb.AppendLine("Ingredients:");
             foreach (var ingredient in recipe.Ingredients)
             {
                 sb.AppendLine("  " + ingredient);
             }
         }
         catch (Exception e)
         {
             Console.WriteLine(e);
             sb.AppendLine("Error building details string for recipe id = " + recipe.OutputItemId);
         }
         return sb.ToString();
     }));
 }
        public async Task SetRecipe(RecipeDetailsEntry recipe)
        {
            ItemDetailsEntry item    = null;
            Bitmap           image   = null;
            string           details = await Task.Run <string>(async() =>
            {
                try
                {
                    var itemTask   = ItemManager.Instance.GetItem(recipe.OutputItemId).ConfigureAwait(false);
                    var detailTask = RecipeManager.GetRecipeString(recipe);
                    var imageTask  = RecipeManager.GetRecipeImage(recipe);
                    item           = await itemTask;
                    image          = await imageTask;
                    return(await detailTask);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
                return("Error occured\n");
            });

            labelRecipeDetails.Text = details;
            labelRecipeName.Text    = item != null ? item.Name : "Error Getting Item Details";
            pictureBox1.Image       = image;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Gets a recipe by its id.  If the recipe is not already in cache, it will be downloaded.
        /// An update can be forced by setting <paramref name="ignoreCache"/>=true.
        /// </summary>
        /// <param name="id">id of recipe to get.</param>
        /// <param name="ignoreCache">true: forces downloading the recipe allowing for a refresh of data. false: allow the recipe to be retrived from cache if it is available</param>
        /// <returns>recipe with the given id</returns>
        public async Task <RecipeDetailsEntry> GetRecipe(int id, bool ignoreCache = false)
        {
            RecipeDetailsEntry recipe = null;

            if (ignoreCache || Recipes.ContainsKey(id) == false)
            {
                await DownloadRecipe(id);
            }

            return(Recipes.ContainsKey(id) ? Recipes[id] : null);
        }
Exemplo n.º 4
0
 public static async Task <Bitmap> GetRecipeImage(RecipeDetailsEntry recipe)
 {
     return(await Task.Run(
                async() =>
     {
         ItemDetailsEntry item = null;
         try
         {
             item = await ItemManager.Instance.GetItem(recipe.OutputItemId).ConfigureAwait(false);
             var rs = GwApi.GetRenderServiceAssetEntry(item.IconFileSignature, item.IconFileId, ".png");
             return rs.Asset;
         }
         catch (Exception e)
         {
             int id = item != null ? item.ItemId : -1;
             Debug.WriteLine(string.Format("For Item ID " + id + " - " + e));
         }
         return null;
     }));
 }
Exemplo n.º 5
0
 public async Task SetRecipe(RecipeDetailsEntry recipe)
 {
     await recipeDetailsUserControl1.SetRecipe(recipe).ConfigureAwait(false);
 }
 public RecipeSearchResult(RecipeDetailsEntry recipe)
 {
     _recipe = recipe;
 }