Beispiel #1
0
        public async Task <int> CreateHotelAsync(RegisterHotelDTO model)
        {
            var  currentUser     = _userResolverService.GetUser();
            var  currentUserName = currentUser.FindFirst(ClaimTypes.NameIdentifier).Value;
            User user            = await _userManager.FindByIdAsync(currentUserName);

            var city = CreateCity(model.CityName);

            if (!_userManager.IsInRoleAsync(user, "Hotel manager").Result)
            {
                await _userManager.AddToRoleAsync(user, "Hotel manager");
            }
            model.StatusId = (int)HotelStatusTypes.Pending;

            var hotelManager = new HotelUser();

            model.CityId = city.Id;
            var hotel = _mapper.Map <Hotel>(model);

            hotel.CityId       = city.Id;
            hotelManager.Hotel = hotel;
            hotelManager.User  = user;

            _hotelAppContext.HotelUsers.Add(hotelManager);
            hotel.HotelUsers.Add(hotelManager);
            _hotelAppContext.Hotels.Add(hotel);
            _hotelAppContext.SaveChanges();
            _logger.LogInformation("Hotel successfully added!");
            return(hotel.Id);
        }
Beispiel #2
0
        public IActionResult RegisterHotel([FromBody] RegisterHotelDTO model)
        {
            // creates a hotel and assigns the currently logged in user the hotel manager role
            var hotelId = _hotelRepository.CreateHotelAsync(model).Result;

            return(Ok(hotelId));
        }
Beispiel #3
0
        public void UpdateHotelAsync(int hotelId, RegisterHotelDTO model)
        {
            var hotel = GetHotelById(hotelId);

            if (!model.StatusId.HasValue)
            {
                model.StatusId = hotel.StatusId;
            }

            hotel = _mapper.Map(model, hotel);
            _hotelAppContext.Hotels.Update(hotel);
            _hotelAppContext.SaveChanges();
            _logger.LogInformation("Hotel successfully updated!");
        }
Beispiel #4
0
 public IActionResult UpdateHotel(int id, [FromBody] RegisterHotelDTO model)
 {
     // updates hotel data and requires 5 strings (hotel name, contact number, email, address, city name)
     _hotelRepository.UpdateHotelAsync(id, model);
     return(Ok("Hotel successfully updated!"));
 }