예제 #1
0
        public ItemsViewModel()
        {
            Title            = "Home";
            GlucItems        = new ObservableCollection <GlucoseEntry>();
            RecentGlucItems  = new ObservableCollection <GlucoseEntry>();
            ExItems          = new ObservableCollection <ExerciseEntry>();
            RecentExItems    = new ObservableCollection <ExerciseEntry>();
            FoodItems        = new ObservableCollection <FoodEntry>();
            RecentFoodItems  = new ObservableCollection <FoodEntry>();
            LoadItemsCommand = new Command(async() => await ExecuteLoadItemsCommand());

            MessagingCenter.Subscribe <GlucoseEntryPage, GlucoseEntry>(this, "AddItem", async(obj, item) =>
            {
                var newGlucItem = item as GlucoseEntry;
                GlucItems.Add(newGlucItem);
                await GlucDataStore.AddItemAsync(newGlucItem);
            });

            MessagingCenter.Subscribe <ExerciseEntryPage, ExerciseEntry>(this, "AddItem", async(obj, item) =>
            {
                var newExItem = item as ExerciseEntry;
                ExItems.Add(newExItem);
                await ExDataStore.AddItemAsync(newExItem);
            });

            MessagingCenter.Subscribe <FoodEntryPage, FoodEntry>(this, "AddItem", async(obj, item) =>
            {
                var newFoodItem = item as FoodEntry;
                FoodItems.Add(newFoodItem);
                await FoodDataStore.AddItemAsync(newFoodItem);
            });
        }
예제 #2
0
        async Task ExecuteLoadItemsCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                GlucItems.Clear();
                var glucItems = await GlucDataStore.GetItemsAsync(true);

                foreach (var item in glucItems)
                {
                    GlucItems.Add(item);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }

            try
            {
                PopulateEntries();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
예제 #3
0
        async Task ExecuteLoadItemsCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                GlucItems.Clear();
                RecentGlucItems.Clear();
                var glucItems = await GlucDataStore.GetItemsAsync(true);

                foreach (var item in glucItems)
                {
                    GlucItems.Add(item);
                }

                if (GlucItems.Count > 10)
                {
                    for (int i = GlucItems.Count - 10; i < GlucItems.Count; i++)
                    {
                        RecentGlucItems.Add(GlucItems[i]);
                    }
                }
                else
                {
                    foreach (GlucoseEntry entry in GlucItems)
                    {
                        RecentGlucItems.Add(entry);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }

            try
            {
                ExItems.Clear();
                RecentExItems.Clear();
                var exItems = await ExDataStore.GetItemsAsync(true);

                foreach (var item in exItems)
                {
                    ExItems.Add(item);
                }

                if (ExItems.Count > 10)
                {
                    for (int i = ExItems.Count - 10; i < ExItems.Count; i++)
                    {
                        RecentExItems.Add(ExItems[i]);
                    }
                }
                else
                {
                    foreach (ExerciseEntry entry in ExItems)
                    {
                        RecentExItems.Add(entry);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }

            try
            {
                FoodItems.Clear();
                RecentFoodItems.Clear();
                var foodItems = await FoodDataStore.GetItemsAsync(true);

                foreach (var item in foodItems)
                {
                    FoodItems.Add(item);
                }

                if (FoodItems.Count > 10)
                {
                    for (int i = FoodItems.Count - 10; i < FoodItems.Count; i++)
                    {
                        RecentFoodItems.Add(FoodItems[i]);
                    }
                }
                else
                {
                    foreach (FoodEntry entry in FoodItems)
                    {
                        RecentFoodItems.Add(entry);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }