/// <summary> /// Removing genre from the static list on button click /// </summary> /// <param name="sender">The source of the event</param> /// <param name="e">The instance containing the event data</param> private void RemoveButton_Click(object sender, RoutedEventArgs e) { if (Genres.GenresList.Count < 1) { MessageBox.Show("No genres to remove."); return; } GenreDetailViewModel viewmodel = (GenreDetailViewModel)DataContext; Genre genre = Genres.GetGenre(viewmodel.MyGenre.GenreId); if (genre.BooksList.Count > 0) { MessageBox.Show("Genre cannot be removed. The associated books must be removed first."); } else if (MessageBox.Show("Are you sure you want to remove the genre?", "Remove genre", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { Genres.RemoveGenre(genre.GenreId); Genres.AreRemovedItems = true; var mw = Application.Current.Windows .Cast <Window>() .FirstOrDefault(window => window is MainWindow) as MainWindow; mw.DataContext = new { collection = new GenresListViewModel(), detail = new GenreDetailViewModel(Genres.GetGenre(Genres.GenresList.Count)) }; } }
/// <summary> /// Setting genre to be updated, if user has clicked the input field /// </summary> /// <param name="sender">The source of the event</param> /// <param name="e">The instance containing the event data</param> private void TxtName_GotFocus(object sender, RoutedEventArgs e) { GenreDetailViewModel viewmodel = (GenreDetailViewModel)DataContext; Genre genre = viewmodel.MyGenre; genre.IsUpdated = true; Genres.IsUpdated = true; }
public async Task <ActionResult> Add(GenreDetailViewModel vm) { await _genreRepository.AddGenre(new Genre { Name = vm.Name }); return(RedirectToAction("Index")); }
public async Task <ActionResult> Edit(Guid id, GenreDetailViewModel vm) { await _genreRepository.EditGenre(new Genre { Id = id, Name = vm.Name }); return(RedirectToAction("Index")); }
public GenreDetailViewModelTests() { eventAggregatorMock = new Mock <IEventAggregator>(); metroDialogServiceMock = new Mock <IMetroDialogService>(); genreRepoMock = new Mock <IRepository <Genre> >(); genreLookupServiceMock = new Mock <IGenreLookupDataService>(); viewModel = new GenreDetailViewModel(eventAggregatorMock.Object, metroDialogServiceMock.Object, genreRepoMock.Object, genreLookupServiceMock.Object); }
public GenreDetailPage(GenreDetailViewModel viewModel) { InitializeComponent(); BindingContext = ViewModel = viewModel; viewModel.Navigation = Navigation; // Der Backbutton wird von Xamarin für Android nicht erwartungsgemäß behandelt: OnBackButtonPressed wird nicht gefeuert, // wenn man ihn antippt. Dann funktioniert die Validierung nicht => Abschalten if (Device.RuntimePlatform == Device.Android) { NavigationPage.SetHasBackButton(this, false); } }
public GenreDetailViewModelTests() { var eventAggregatorMock = new Mock <IEventAggregator>(); var loggerMock = new Mock <ILogger>(); var genreLookupServiceMock = new Mock <IGenreLookupDataService>(); var genreRepoMock = new Mock <IRepository <Genre> >(); var domainService = new GenreService(genreRepoMock.Object); var dialogService = new DialogService(); viewModel = new GenreDetailViewModel(eventAggregatorMock.Object, loggerMock.Object, domainService, genreLookupServiceMock.Object, dialogService); }
public async Task <ActionResult> Edit(Guid id) { var existingGenre = await _genreRepository.GetGenreById(id); if (existingGenre != null) { var vm = new GenreDetailViewModel { Name = existingGenre.Name }; return(View(vm)); } else { return(RedirectToAction("Index")); } }
public IActionResult Detail(int id) { var genreInfo = _repository.Genres.First(it => it.GenreId == id); var books = _repository.Books.Where(it => it.GenreId == id).ToList(); if (genreInfo != null && books != null) { var viewModel = new GenreDetailViewModel { GenreId = genreInfo.GenreId, Books = books, GenreName = genreInfo.Nome }; viewModel.Authors = _repository.BookAuthors.Where(it => it.Book.GenreId == id).Include(it => it.Author).ToList(); return(View(viewModel)); } else { return(Redirect("catalog/error")); } }
/// <summary> /// Checking that the genre's name is not empty and that it doesn't already exist /// </summary> /// <param name="sender">The source of the event</param> /// <param name="e">The instance containing the event data</param> private void TxtName_LostFocus(object sender, RoutedEventArgs e) { GenreDetailViewModel viewmodel = (GenreDetailViewModel)DataContext; Genre oldGenre = viewmodel.MyGenre; if (string.IsNullOrEmpty(txtName.Text)) { MessageBox.Show("Field cannot be empty!"); txtName.Text = oldGenre.Name; } foreach (var genre in Genres.GenresList) { if (genre.Name == txtName.Text && (oldGenre.GenreId != genre.GenreId)) { MessageBox.Show("Genre already exists!"); txtName.Text = oldGenre.Name; break; } } }