/// <summary> /// Creates and adds the data to the viewmodels /// </summary> public void LoadData(bool reload) { if (!IsEssentialsLoaded) { LoadInfo(); LoadAssociations(); LoadSettings(); try { LoadFaceBookSettings(); } catch (Exception) { //NIET INGELOGD } } if (!reload) { return; } RestoItems.Clear(); NewsItems.Clear(); ActivityItems.Clear(); SchamperItems.Clear(); _fromCache = DateTime.Now.AddMinutes(-60) < _cacheTime; if (!_fromCache && !HasConnection) { _fromCache = true; } LoadNews(); LoadResto(); LoadActivities(); LoadSchamper(); }
public void ProcessResto(object sender, DownloadStringCompletedEventArgs e) { String ms = null; if ((e == null && !_fromCache) || (e != null && (e.Error != null || e.Cancelled))) { _resto = true; return; } if (e == null && _fromCache) { ms = LoadFromStorage(Convert.ToString((_week + _offset)), ".json"); } else if (e != null) { ms = SaveToStorage(Convert.ToString((_week + _offset)), ".json", e.Result); } if (ms == null) { return; } var ob = (JObject)JsonConvert.DeserializeObject(ms); foreach (var day in ob) { if (DateTime.Parse(day.Key, new CultureInfo("nl-BE")).Date < DateTime.Now.Date) { continue; } bool open; try { open = (bool)day.Value.ElementAt(1).ElementAt(0); } catch (Exception) { //closed RestoItems.Add(new RestoItemsViewModel { Day = new Day { IsOpen = false } }); continue; } var dishes = (from daydish in day.Value.ElementAt(0) from ddish in daydish.Distinct() select new Dish { Name = (string)ddish["name"], Price = (string)ddish["price"], IsRecommended = (bool)ddish["recommended"] }).ToList(); var soup = day.Value.ElementAt(2).Values().Select(soupp => (string)soupp).ToList(); while (soup.Count < 4) { soup.Add(""); soup.Add(""); } var veg = day.Value.ElementAt(3).Values().Select(veggie => (string)veggie).ToList(); while (veg.Count < 4) { veg.Add(""); veg.Add(""); } while (dishes.Count < 4) { dishes.Add(new Dish { IsRecommended = false, Name = "", Price = "" }); } if (RestoItems.Count < 7) { RestoItems.Add(new RestoItemsViewModel { Day = new Day { Dishes = dishes, Date = day.Key, Open = open, Soup = soup, Vegetables = veg, IsOpen = true } }); } else if (RestoItems.Count >= 7) { break; } } if (RestoItems.Count < 7) { _offset++; LoadResto(); } _resto = true; }