Ejemplo n.º 1
0
        public RemindersPageViewModel()
        {
            Title = "Reminders";

            notificationManager = DependencyService.Get <INotificationManager>();

            Reminder.LoadAll();
            Reminders = new ObservableCollection <Reminder>(Reminder.AllReminders);
            Edit      = new Command <Reminder>(async(Reminder r) =>
            {
                await Device.InvokeOnMainThreadAsync(async() =>
                {
                    var vm = new ReminderEditPageViewModel()
                    {
                        Reminder = r
                    };
                    var page = new ReminderEditPage()
                    {
                        BindingContext = vm
                    };
                    await Shell.Current.Navigation.PushAsync(page);
                });
            });

            Delete = new Command <Reminder>(async(Reminder r) =>
            {
                try
                {
                    Reminders.Remove(r);
                    Reminder.AllReminders.Remove(r);

                    /*
                     * See QuotePageViewModel for info
                     */
                    Reminders.Clear();
                    foreach (var tmp in Reminder.AllReminders)
                    {
                        Reminders.Add(tmp);
                    }

                    Reminder.SaveAll();
                }
                catch (Exception e)
                {
                    await Device.InvokeOnMainThreadAsync(async() =>
                    {
                        await Shell.Current.DisplayAlert("Exception", e.ToString(), "ok");
                    });
                }
            });

            CheckAll = new Command(() =>
            {
                Reminder.CheckReminders(notificationManager);
            });
        }
Ejemplo n.º 2
0
        public ItemDetailsPageViewModel()
        {
            Title = "Details";
            //Item = new Item()
            //{
            //    Name = "Item",
            //    OriginalPrice = 1000.00f,
            //    Price = 900.50f,
            //    Location = "Location 000",
            //    SKU = "123456",
            //    Stock = "6 in stock",
            //    Plans = new List<Plan>() {
            //        new Plan()
            //        {
            //            Name = "PLAN 1",
            //            Price = 100f
            //        },
            //    }
            //};

            BackPicture = new Command(() =>
            {
                if (PictureIndex > 0)
                {
                    PictureIndex--;
                    OnPropertyChanged(nameof(ActivePicture));
                }
                else if (Item != null && Item?.PictureUrls?.Count > 1)
                {
                    PictureIndex = Item.PictureUrls.Count - 1;
                    OnPropertyChanged(nameof(ActivePicture));
                }
            });

            ForwardPicture = new Command(() =>
            {
                if (PictureIndex < Item?.PictureUrls?.Count - 1)
                {
                    PictureIndex++;
                    OnPropertyChanged(nameof(ActivePicture));
                }
                else if (Item != null && Item?.PictureUrls?.Count > 1)
                {
                    PictureIndex = 0;
                    OnPropertyChanged(nameof(ActivePicture));
                }
            });

            GoToWebpage = new Command(async() =>
            {
                await Xamarin.Essentials.Browser.OpenAsync($"https://microcenter.com{Item.URL}", Xamarin.Essentials.BrowserLaunchMode.SystemPreferred);
            });

            AddReminder = new Command(async() =>
            {
                if (Item != null)
                {
                    await Device.InvokeOnMainThreadAsync(async() =>
                    {
                        var vm      = new ReminderEditPageViewModel();
                        vm.Reminder = new Reminder(Item);
                        vm.NewItem  = true;
                        await Shell.Current.Navigation.PushAsync(new ReminderEditPage()
                        {
                            BindingContext = vm
                        });
                    });
                }
            });
        }