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); }