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; }