Beispiel #1
0
        public async Task <IActionResult> Edit(string id, OrganizedTripViewModel tripViewModel)
        {
            if (id != tripViewModel.Id)
            {
                return(this.NotFound());
            }

            if (!this.ModelState.IsValid)
            {
                this.ViewData["DestinationId"] = new SelectList(this.destinationsService.GetAll(), "Id", "Town", tripViewModel.DestinationId);
                this.ViewData["HotelId"]       = new SelectList(this.hotelsService.GetAll(), "Id", "Name", tripViewModel.HotelId);
                return(this.View(tripViewModel));
            }

            try
            {
                await this.tripsService.EditAsync(id, tripViewModel);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!this.OrganizedTripExists(tripViewModel.Id))
                {
                    return(this.NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(this.RedirectToAction(nameof(this.Index)));
        }
Beispiel #2
0
        public async Task EditAsync_ShouldWorkCorrectly()
        {
            // Arrange
            var context = ApplicationDbContextInMemoryFactory.InitializeContext();
            var seeder  = new OrganizedtripsServiceTestsSeeder();
            await seeder.SeedTripAsync(context);

            var tripRepository = new EfDeletableEntityRepository <OrganizedTrip>(context);

            var service = new OrganizedTripsService(tripRepository);
            var trip    = tripRepository.All().First();
            var model   = new OrganizedTripViewModel
            {
                Id                = trip.Id,
                Name              = trip.Name,
                ImageUrl          = trip.ImageUrl,
                Description       = trip.Description,
                DepartureDateTime = trip.DepartureDateTime,
                ReturnDateTime    = trip.ReturnDateTime,
                DestinationId     = trip.DestinationId,
                PricePerPerson    = trip.PricePerPerson,
                HotelId           = trip.HotelId,
                AvailableSeats    = trip.AvailableSeats,
                Transport         = trip.Transport,
                ReservationType   = trip.ReservationType,
            };

            model.Name              = "EditedTripName";
            model.ImageUrl          = "EditedImageUrl";
            model.PricePerPerson    = 50;
            model.ReservationType   = ReservationType.OrganizedTrip;
            model.Description       = "EditedDescription";
            model.DepartureDateTime = new DateTime(2020, 03, 03, 13, 00, 00);
            model.ReturnDateTime    = new DateTime(2020, 03, 03, 13, 30, 00);
            model.DestinationId     = 1;
            model.HotelId           = 1;
            model.AvailableSeats    = 2;
            model.Transport         = TransportType.Bus;

            // Act
            await service.EditAsync(model.Id, model);

            var actualResult   = tripRepository.All().First();
            var expectedResult = model;

            // Assert
            Assert.True(expectedResult.Name == actualResult.Name);
            Assert.True(expectedResult.ImageUrl == actualResult.ImageUrl);
            Assert.True(expectedResult.Description == actualResult.Description);
            Assert.True(expectedResult.ReservationType == actualResult.ReservationType);
            Assert.True(expectedResult.PricePerPerson == actualResult.PricePerPerson);
            Assert.True(expectedResult.DepartureDateTime == actualResult.DepartureDateTime);
            Assert.True(expectedResult.ReturnDateTime == actualResult.ReturnDateTime);
            Assert.True(expectedResult.AvailableSeats == actualResult.AvailableSeats);
            Assert.True(expectedResult.HotelId == actualResult.HotelId);
            Assert.True(expectedResult.Transport == actualResult.Transport);
            Assert.True(expectedResult.DestinationId == actualResult.DestinationId);
        }
Beispiel #3
0
        public async Task EditAsync(string id, OrganizedTripViewModel input)
        {
            var trip = this.organizedTripsRepository.All().FirstOrDefault(x => x.Id == id);

            trip.Name              = input.Name;
            trip.ImageUrl          = input.ImageUrl;
            trip.Description       = input.Description;
            trip.PricePerPerson    = input.PricePerPerson;
            trip.DepartureDateTime = input.DepartureDateTime;
            trip.ReturnDateTime    = input.ReturnDateTime;
            trip.DestinationId     = input.DestinationId;
            trip.HotelId           = input.HotelId;
            trip.Transport         = input.Transport;
            trip.AvailableSeats    = input.AvailableSeats;
            trip.IsDeleted         = input.IsDeleted;

            this.organizedTripsRepository.Update(trip);
            await this.organizedTripsRepository.SaveChangesAsync();
        }