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); }
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(); }
private void OnItemPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { RemoveSelectedCommand.RaiseCanExecuteChanged(); }