public async Task <ActionResult> Remove(string name)
        {
            GenreViewModelMapper mapper        = new GenreViewModelMapper();
            GenreDetail          existingGenre = await _genreRepo.GetAsync(name);

            GenreItemViewModel model = mapper.MapToViewModel(existingGenre);

            return(View(model));
        }
        public async Task <IActionResult> Index()
        {
            GenreViewModelMapper    mapper = new GenreViewModelMapper();
            GenreIndexPageViewModel model  = new GenreIndexPageViewModel();
            //GenreList genres = await _genreRepo.ListAsync(PublishStatus.UNPUBLISHED|PublishStatus.PUBLISHED|PublishStatus.ARCHIVED);
            GenreList genres = await _genreRepo.ListAsync();

            model.Genres = genres.Genres.Select(x => mapper.MapToViewModel(x)).ToList();
            return(View(model));
        }
        public async Task <ActionResult> Remove(GenreItemViewModel model)
        {
            GenreViewModelMapper mapper = new GenreViewModelMapper();

            try
            {
                await _genreRepo.DeleteAsync(model.Name);

                this.SetBootstrapPageAlert("Success", $"Deleted genre '{model.Name}' from the database", BootstrapAlertType.success);
                return(RedirectToAction(nameof(Index)));
            }catch (Exception e)
            {
                _logger.LogError(e, "Error deleting genre");
                ModelState.AddModelError(nameof(model.Name), "Error deleting genre from the database");
                GenreDetail existingGenre = await _genreRepo.GetAsync(model.Name);

                model = mapper.MapToViewModel(existingGenre);
            }
            return(View(model));
        }