Example #1
0
 /// <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();
 }
Example #2
0
        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;
        }