コード例 #1
0
        public async Task <IActionResult> Create(GenreCreateInputModel genreCreateInputModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(genreCreateInputModel));
            }

            await this.genresService.CreateAsync(genreCreateInputModel);

            return(this.RedirectToAction("GetAll", "Genres", new { area = "Administration" }));
        }
コード例 #2
0
        public async Task CheckSettingOfGenresProperties()
        {
            var model = new GenreCreateInputModel
            {
                Name = "Drama",
            };

            await this.genresService.CreateAsync(model);

            var genre = await this.genresRepository.All().FirstOrDefaultAsync();

            Assert.Equal("Drama", genre.Name);
        }
コード例 #3
0
        public async Task TestAddingGenre()
        {
            var model = new GenreCreateInputModel
            {
                Name = "Comedy",
            };

            await this.genresService.CreateAsync(model);

            var count = await this.genresRepository.All().CountAsync();

            Assert.Equal(1, count);
        }
コード例 #4
0
        public async Task CheckIfAddingGenreReturnsViewModel()
        {
            var genre = new GenreCreateInputModel
            {
                Name = "Historical",
            };

            var viewModel = await this.genresService.CreateAsync(genre);

            var dbEntry = await this.genresRepository.All().FirstOrDefaultAsync();

            Assert.Equal(dbEntry.Id, viewModel.Id);
            Assert.Equal(dbEntry.Name, viewModel.Name);
        }
コード例 #5
0
        public async Task CheckIfAddingGenreThrowsArgumentException()
        {
            this.SeedDatabase();

            var genre = new GenreCreateInputModel
            {
                Name = "Action",
            };

            var exception = await Assert
                            .ThrowsAsync <ArgumentException>(async() => await this.genresService.CreateAsync(genre));

            Assert.Equal(string.Format(ExceptionMessages.GenreAlreadyExists, genre.Name), exception.Message);
        }
コード例 #6
0
        public async Task <IActionResult> CreateGenre(GenreCreateInputModel genreTypeCreateInputModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(genreTypeCreateInputModel ?? new GenreCreateInputModel()));
            }

            GenreServiceModel genreServiceModel = new GenreServiceModel
            {
                Name = genreTypeCreateInputModel.Name
            };

            await this.recordService.CreateGenre(genreServiceModel);

            return(this.Redirect("/"));
        }
コード例 #7
0
        public async Task <IActionResult> Create(GenreCreateInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }

            try
            {
                await this.genresService.CreateAsync(input.Name);

                this.TempData["Success"] = CreateSuccessMessage;
                return(this.Redirect("/Genres/All"));
            }
            catch (Exception e)
            {
                this.TempData["Error"] = e.Message;

                return(this.View(nameof(this.Create)));
            }
        }
コード例 #8
0
        public async Task <GenreDetailsViewModel> CreateAsync(GenreCreateInputModel genreCreateInputModel)
        {
            var genre = new Genre
            {
                Name = genreCreateInputModel.Name,
            };

            bool doesGenreExist = await this.genresRepository.All().AnyAsync(x => x.Name == genre.Name);

            if (doesGenreExist)
            {
                throw new ArgumentException(
                          string.Format(ExceptionMessages.GenreAlreadyExists, genre.Name));
            }

            await this.genresRepository.AddAsync(genre);

            await this.genresRepository.SaveChangesAsync();

            var viewModel = await this.GetViewModelByIdAsync <GenreDetailsViewModel>(genre.Id);

            return(viewModel);
        }