Esempio n. 1
0
        public void ToSaveRemoveCommandTest()
        {
            // fake LoadData
            var dataAccessMock = new Mock <IDataAccess>();

            dataAccessMock.Setup(m => m.ToLoad()).Returns(MockShoppingList());

            // input one Item
            var viewModel = new MainWindowViewModel(dataAccessMock.Object); // instance MainWindowViewModel

            viewModel.WantBuy = "newItem";

            // pressed add button
            var addCommand = new AddCommand(viewModel);

            addCommand.Execute(null);

            // before remove
            Assert.AreEqual(viewModel.ToBuys.Count, 1);
            Assert.AreEqual(viewModel.ToBuys[0].Name, "newItem");
            Assert.IsFalse(viewModel.ToBuys[0].IsDone);

            // set selected Item
            viewModel.SelectedToBuy = viewModel.ToBuys[0];

            // delete selected
            var removeSelectedCommand = new RemoveSelectedCommand(viewModel);

            removeSelectedCommand.Execute(null);

            // after clear
            Assert.AreEqual(viewModel.ToBuys.Count, 0);
        }
Esempio n. 2
0
        public MainWindowViewModel(IDataAccess dataAccess = null, IShoppingListManager shoppingListManager = null)
        {
            // prepare for Unit Test
            DataAccess          = dataAccess ?? new DataAccess();
            ShoppingListManager = shoppingListManager ?? new ShoppingListManager();

            // Get all data
            ShoppingLists = DataAccess.ToLoad();

            // set WeekDay
            DayWeekTime = DateTime.Today.DayOfWeek;
            // Textbox: placeholder
            WantBuy = "e.g. apple ...";
            // DataGrid: load data from Json, display on DataGrid todayShoppingList
            ToBuys = new ObservableCollection <ToBuy>(ShoppingListManager.TodayShoppingList(ShoppingLists));
            // ClearButton
            ClearCommand = new ClearCommand(this);
            // AddButton
            AddCommand = new AddCommand(this);
            // Remove item Button
            RemoveSelectedCommand = new RemoveSelectedCommand(this);
            // arrange Button
            ArrangeCommand = new ArrangeCommand(this);
            // Monday ... Sunday Button
            MondayCommand    = new MondayCommand(this);
            TuesdayCommand   = new TuesdayCommand(this);
            WednesdayCommand = new WednesdayCommand(this);
            ThursdayCommand  = new ThursdayCommand(this);
            FridayCommand    = new FridayCommand(this);
            SaturdayCommand  = new SaturdayCommand(this);
            SundayCommand    = new SundayCommand(this);
            // print Btn
            PrintCommand = new PrintCommand(this);
        }
        private void onRemoveSelectedCommand(object parameter)
        {
            if (ChromeBookmarks.CurrentWorkingFolder.folders.Where(x => x.IsSelected).Count() > 0)
            {
                Folder SelectedFolder = ChromeBookmarks.CurrentWorkingFolder.folders.Where(x => x.IsSelected).FirstOrDefault();
                string AlertMessage   = "";

                if (SelectedFolder.folders.Count > 0 || SelectedFolder.URLs.Count > 0)
                {
                    AlertMessage += $"Folder '{SelectedFolder.Name}' Contains ";
                    if (SelectedFolder.folders.Count() > 0)
                    {
                        if (SelectedFolder.folders.Count > 1)
                        {
                            AlertMessage += $"{SelectedFolder.folders.Count()} folders";
                        }
                        else
                        {
                            AlertMessage += $"{SelectedFolder.folders.Count()} folder";
                        }

                        if (SelectedFolder.URLs.Count() > 0)
                        {
                            AlertMessage += " and ";
                        }
                    }

                    if (SelectedFolder.URLs.Count() > 0)
                    {
                        if (SelectedFolder.URLs.Count() > 1)
                        {
                            AlertMessage += $"{SelectedFolder.URLs.Count()} URLs";
                        }
                        else
                        {
                            AlertMessage += $"{SelectedFolder.URLs.Count()} URL";
                        }
                    }

                    Banners.ShowAlertBanner(AlertMessage, "Remove", BannerData.BannerAction.RemoveFolder);
                }
                else
                {
                    ChromeBookmarks.CurrentWorkingFolder.folders.Remove(ChromeBookmarks.CurrentWorkingFolder.folders.Where(x => x.IsSelected).FirstOrDefault());
                }
            }
            if (ChromeBookmarks.CurrentWorkingFolder.URLs.Where(x => x.IsSelected).Count() > 0)
            {
                ChromeBookmarks.CurrentWorkingFolder.URLs.Remove(ChromeBookmarks.CurrentWorkingFolder.URLs.Where(x => x.IsSelected).FirstOrDefault());
            }

            RemoveSelectedCommand.RaiseCanExecuteChanged();
        }
        private void ClearSelectedItems()
        {
            foreach (Folder folder in ChromeBookmarks.CurrentWorkingFolder.folders)
            {
                folder.IsSelected = false;
            }
            foreach (URL url in ChromeBookmarks.CurrentWorkingFolder.URLs)
            {
                url.IsSelected = false;
            }

            RemoveSelectedCommand.RaiseCanExecuteChanged();
        }
        //Subscribe method, to manage all subscriptions
        public InputViewModel()
        {
            PrevSelected             = -1;
            Items.CollectionChanged += delegate
            {
                RemoveAllCommand.RaiseCanExecuteChanged();
                RemoveSelectedCommand.RaiseCanExecuteChanged();
            };

            ArraySource.Instance.PropertyChanged += delegate
            {
                Items = ArraySource.Instance.Items;
            };
        }
        public void OnItemSelectedCommand(object parameter)
        {
            ClearSelectedItems();

            if (parameter is Folder folder)
            {
                folder.IsSelected = true;
            }

            if (parameter is URL url)
            {
                url.IsSelected = true;
            }

            EnterFolderCommand.RaiseCanExecuteChanged();
            RemoveSelectedCommand.RaiseCanExecuteChanged();
        }
Esempio n. 7
0
 private void OnItemPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
 {
     RemoveSelectedCommand.RaiseCanExecuteChanged();
 }