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

            await this.cinemasService.CreateAsync(cinemaCreateInputModel);

            return(this.RedirectToAction("GetAll", "Cinemas", new { area = "Administration" }));
        }
示例#2
0
        public async Task <IActionResult> Create(CinemaCreateInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }

            string pictureUrl = await this.cloudinaryService.UploadPictureAsync(input.Picture, input.Picture.FileName);

            var cinemaId = await this.cinemasService.CreateAsync(input.Name, input.Address, pictureUrl);

            return(this.RedirectToAction("ById", new { id = cinemaId }));
        }
示例#3
0
        public async Task TestAddingCinema()
        {
            var model = new CinemaCreateInputModel
            {
                Name    = "Mol Sofia",
                Address = "Bulgaria, Sofia",
            };

            await this.cinemasService.CreateAsync(model);

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

            Assert.Equal(1, count);
        }
示例#4
0
        public async Task CheckIfAddingCinemaThrowsArgumentException()
        {
            this.SeedDatabase();

            var cinema = new CinemaCreateInputModel
            {
                Name    = "Test Cinema Name",
                Address = "Test Cinema Address",
            };

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

            Assert.Equal(string.Format(ExceptionMessages.CinemaAlreadyExists, cinema.Name, cinema.Address), exception.Message);
        }
示例#5
0
        public async Task CheckSettingOfCinemaProperties()
        {
            var model = new CinemaCreateInputModel
            {
                Name    = "Mol Plovdiv",
                Address = "Bulgaria, Plovdiv",
            };

            await this.cinemasService.CreateAsync(model);

            var cinema = await this.cinemasRepository.All().FirstOrDefaultAsync();

            Assert.Equal("Mol Plovdiv", cinema.Name);
            Assert.Equal("Bulgaria, Plovdiv", cinema.Address);
        }
示例#6
0
        public async Task CheckIfAddingCinemaReturnsViewModel()
        {
            var cinema = new CinemaCreateInputModel
            {
                Name    = "Mol Paradise",
                Address = "Bulgaria, Sofia",
            };

            var viewModel = await this.cinemasService.CreateAsync(cinema);

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

            Assert.Equal(dbEntry.Id, viewModel.Id);
            Assert.Equal(dbEntry.Name, viewModel.Name);
            Assert.Equal(dbEntry.Address, viewModel.Address);
        }
示例#7
0
        public async Task <CinemaDetailsViewModel> CreateAsync(CinemaCreateInputModel cinemaCreateInputModel)
        {
            var cinema = new Cinema
            {
                Name    = cinemaCreateInputModel.Name,
                Address = cinemaCreateInputModel.Address,
            };

            bool doesCinemaExists = await this.cinemasRepository.All().AnyAsync(x => x.Name == cinema.Name);

            if (doesCinemaExists)
            {
                throw new ArgumentException(
                          string.Format(ExceptionMessages.CinemaAlreadyExists, cinema.Name, cinema.Address));
            }

            await this.cinemasRepository.AddAsync(cinema);

            await this.cinemasRepository.SaveChangesAsync();

            var viewModel = await this.GetViewModelByIdAsync <CinemaDetailsViewModel>(cinema.Id);

            return(viewModel);
        }