public async Task EditPropertyTypeAsync(long hotelId, string newPropertyType) { var hotelPropertyType = await FindPropertyByHotelIdAsync(hotelId); var hotel = await hotelService.FindHotelByIdAsync(hotelId); if (newPropertyType != hotelPropertyType.PropertyType.Type) { var propertyType = await propertyTypeService.FindByTypeAsync(newPropertyType); if (propertyType == null) { var prop = await propertyTypeService.AddPropertyTypeAsync(newPropertyType); applicationContext.Remove(hotelPropertyType); await applicationContext.SaveChangesAsync(); var newHotelPropertyType = new HotelPropertyType(); newHotelPropertyType.PropertyType = prop; newHotelPropertyType.PropertyTypeId = prop.PropertyTypeId; newHotelPropertyType.Hotel = hotel; newHotelPropertyType.HotelId = hotelId; hotel.HotelPropertyTypes.Add(newHotelPropertyType); await applicationContext.SaveChangesAsync(); } else { applicationContext.Remove(hotelPropertyType); await applicationContext.SaveChangesAsync(); var newHotelPropertyType = new HotelPropertyType(); newHotelPropertyType.PropertyType = propertyType; newHotelPropertyType.PropertyTypeId = propertyType.PropertyTypeId; newHotelPropertyType.Hotel = hotel; newHotelPropertyType.HotelId = hotelId; hotel.HotelPropertyTypes.Add(newHotelPropertyType); await applicationContext.SaveChangesAsync(); } } }
public async Task <long> AddHotelAsync(HotelViewModel newHotel, string userId) { var propertyType = await propertyTypeService.AddPropertyTypeAsync(newHotel.PropertyType); var hotel = mapper.Map <HotelViewModel, Hotel>(newHotel); hotel.UserId = userId; hotel.HotelPropertyTypes = new List <HotelPropertyType>(); await applicationContext.Hotels.AddAsync(hotel); await applicationContext.SaveChangesAsync(); var hotelPropertyType = new HotelPropertyType(); hotelPropertyType.Hotel = hotel; hotelPropertyType.HotelId = hotel.HotelId; hotelPropertyType.PropertyType = propertyType; hotelPropertyType.PropertyTypeId = propertyType.PropertyTypeId; hotel.HotelPropertyTypes.Add(hotelPropertyType); await applicationContext.SaveChangesAsync(); return(hotel.HotelId); }