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