public async Task <HotelResponse> SaveAsync(Hotel hotel)
        {
            var existingPlace = await _PlaceRepository.FindByIdAsync(hotel.PlaceId);

            if (existingPlace == null)
            {
                return(new HotelResponse($"Place with id {hotel.PlaceId} not found."));
            }

            hotel.Place = existingPlace;

            try
            {
                await _HotelRepository.AddAsync(hotel);

                await _UnitOfWork.CompleteAsync();

                return(new HotelResponse(hotel));
            }
            catch (Exception ex)
            {
                // Do some logging stuff
                return(new HotelResponse($"An error occurred when saving the hotel: {ex.Message}"));
            }
        }
Exemple #2
0
        public async Task <HotelResponse> SaveAsync(Hotel hotel)
        {
            hotel.Enabled ??= true;

            var cityExists = await _hotelRepository.CityExists(hotel.CityID);

            if (!cityExists)
            {
                return(new HotelResponse($"City ID:{ hotel.CityID } does not exist"));
            }

            try
            {
                await _hotelRepository.AddAsync(hotel);

                await _unitOfWork.CompleteAsync();

                return(new HotelResponse(hotel));
            }
            catch (Exception e)
            {
                //TODO - Log the exception
                return(new HotelResponse("An error ocurred while saving the Hotel: " +
                                         $"{ e.Message } { e.InnerException?.Message }"));
            }
        }
        public async Task <IActionResult> HotelCreate(HotelViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var userId = _userRepository.FindByNameAsync(HttpContext.User.Identity.Name).Id;

                var dto = new HotelDTO {
                    UserId = userId, Name = viewModel.Name, Description = viewModel.Description, Address = viewModel.Address, CountryId = viewModel.CountryId, IsAppartment = viewModel.IsAppartment, Stars = viewModel.Stars
                };

                await _hotelRepository.AddAsync(dto);

                return(RedirectToAction("Index"));
            }
            else
            {
                var countries = await _countryRepository.GetAllAsync();

                viewModel.Countries = countries;

                return(View(viewModel));
            }
        }