public void AssignedUserImages(RecipeDataItem recipe)
 {
     if (UserImages != null && UserImages.Any(item => item.UniqueId.Equals(recipe.UniqueId)))
     {
         var userImages = UserImages.Single(a => a.UniqueId.Equals(recipe.UniqueId));
         recipe.UserImages = userImages.Images;
     }
 }
        public async Task<IEnumerable<RecipeDataItem>> Load(string file)
        {
            var f = await Package.Current.InstalledLocation.GetFileAsync(file);
            var result = await FileIO.ReadTextAsync(f);

            // Parse JSON 
            var data = JsonArray.Parse(result);

            var recipes = new List<RecipeDataItem>();
            foreach (var item in data)
            {
                var obj = item.GetObject();
                RecipeDataItem recipe = new RecipeDataItem();

                foreach (var key in obj.Keys)
                {
                    IJsonValue val;
                    if (!obj.TryGetValue(key, out val))
                        continue;

                    switch (key)
                    {
                        case "key":
                            recipe.UniqueId = val.GetNumber().ToString();
                            break;
                        case "title":
                            recipe.Title = val.GetString();
                            break;
                        case "shortTitle":
                            recipe.ShortTitle = val.GetString();
                            break;
                        case "preptime":
                            recipe.PrepTime = (int)val.GetNumber();
                            break;
                        case "directions":
                            recipe.Directions = val.GetString();
                            break;
                        case "ingredients":
                            var ingredients = val.GetArray();
                            var list = (from i in ingredients select i.GetString()).ToList();
                            recipe.Ingredients = new ObservableCollection<string>(list);
                            break;
                        case "backgroundImage":
                            recipe.SetImage(val.GetString());
                            break;
                        case "group":
                            var recipeGroup = val.GetObject();

                            IJsonValue groupKey;
                            if (!recipeGroup.TryGetValue("key", out groupKey))
                                continue;

                            var group = RecipeRepository.AllGroups.FirstOrDefault(c => c.UniqueId.Equals(groupKey.GetString()));

                            if (group == null)
                                group = CreateRecipeGroup(recipeGroup);

                            recipe.Group = group;
                            break;
                    }
                }

                recipes.Add(recipe);
            }

            return recipes;
        }