示例#1
0
        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);
        }