Exemple #1
0
        public async Task <DirectorDetailsViewModel> CreateAsync(DirectorCreateInputModel directorCreateInputModel)
        {
            var director = new Director
            {
                FirstName = directorCreateInputModel.FirstName,
                LastName  = directorCreateInputModel.LastName,
            };

            bool doesDirectorExist = await this.directorsRepository
                                     .All()
                                     .AnyAsync(x => x.FirstName == director.FirstName && x.LastName == director.LastName);

            if (doesDirectorExist)
            {
                throw new ArgumentException(
                          string.Format(ExceptionMessages.DirectorAlreadyExists, director.FirstName, director.LastName));
            }

            await this.directorsRepository.AddAsync(director);

            await this.directorsRepository.SaveChangesAsync();

            var viewModel = await this.GetViewModelByIdAsync <DirectorDetailsViewModel>(director.Id);

            return(viewModel);
        }
        public async Task <IActionResult> Create(DirectorCreateInputModel directorCreateInputModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(directorCreateInputModel));
            }

            await this.directorsService.CreateAsync(directorCreateInputModel);

            return(this.RedirectToAction("GetAll", "Directors", new { area = "Administration" }));
        }
        public async Task TestAddingDirector()
        {
            var model = new DirectorCreateInputModel
            {
                FirstName = "Kiril",
                LastName  = "Petrov",
            };

            await this.directorsService.CreateAsync(model);

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

            Assert.Equal(1, count);
        }
        public async Task CheckIfAddingDirectorThrowsArgumentException()
        {
            this.SeedDatabase();

            var director = new DirectorCreateInputModel
            {
                FirstName = "Pesho",
                LastName  = "Peshov",
            };

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

            Assert.Equal(string.Format(ExceptionMessages.DirectorAlreadyExists, director.FirstName, director.LastName), exception.Message);
        }
        public async Task CheckSettingOfDirectorProperties()
        {
            var model = new DirectorCreateInputModel
            {
                FirstName = "Stamat",
                LastName  = "Stamatov",
            };

            await this.directorsService.CreateAsync(model);

            var director = await this.directorsRepository.All().FirstOrDefaultAsync();

            Assert.Equal("Stamat", director.FirstName);
            Assert.Equal("Stamatov", director.LastName);
        }
        public async Task CheckIfAddingDirectorReturnsViewModel()
        {
            var director = new DirectorCreateInputModel
            {
                FirstName = "James",
                LastName  = "Cameron",
            };

            var viewModel = await this.directorsService.CreateAsync(director);

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

            Assert.Equal(dbEntry.Id, viewModel.Id);
            Assert.Equal(dbEntry.FirstName, viewModel.FirstName);
            Assert.Equal(dbEntry.LastName, viewModel.LastName);
        }