Esempio n. 1
0
        public async Task <int> CreateAsync(
            string name,
            int categoryId,
            int cityId,
            string address,
            string description,
            string userId,
            int priceByNight,
            int bedroomsNum,
            int bathroomsNum,
            int bedsNum,
            int maxGuest,
            bool pets,
            bool smoking,
            List <ExtraViewModel> extras,
            List <IFormFile> images)
        {
            var place = new Place
            {
                Name         = name,
                CategoryId   = categoryId,
                CityId       = cityId,
                Address      = address,
                Description  = description,
                UserId       = userId,
                PriceByNight = priceByNight,
                BedroomsNum  = bedroomsNum,
                BathroomsNum = bathroomsNum,
                BedsNum      = bedsNum,
                MaxGuest     = maxGuest,
                Pets         = pets,
                Smoking      = smoking,
            };
            List <PlaceExtra> placesExtras = new List <PlaceExtra>();

            foreach (var extra in extras)
            {
                if (extra.IsSelected)
                {
                    PlaceExtra newPlaceExtra = new PlaceExtra {
                        ExtraId = extra.Id, Place = place
                    };
                    placesExtras.Add(newPlaceExtra);
                }
            }

            place.PlaceExtras = placesExtras;

            List <Image> placeImages = await this.imagesService.UploadImages(images);

            place.Images = placeImages;

            await this.placesRepository.AddAsync(place);

            await this.placesRepository.SaveChangesAsync();

            return(place.Id);
        }
Esempio n. 2
0
        public async Task <int> UpdateAsync(
            int placeId,
            string name,
            string description,
            int bedroomsNum,
            int bathroomsNum,
            int priceByNight,
            int bedsNum,
            int maxGuest,
            bool pets,
            bool smoking,
            List <ExtraViewModel> extras)
        {
            Place place = this.GetById <Place>(placeId);

            place.Name         = name;
            place.Description  = description;
            place.BedroomsNum  = bedroomsNum;
            place.BathroomsNum = bathroomsNum;
            place.PriceByNight = priceByNight;
            place.BedsNum      = bedsNum;
            place.MaxGuest     = maxGuest;
            place.Smoking      = smoking;
            place.Pets         = pets;

            List <PlaceExtra> placesExtras = new List <PlaceExtra>();

            foreach (var extra in extras)
            {
                if (extra.IsSelected)
                {
                    PlaceExtra newPlaceExtra = new PlaceExtra {
                        ExtraId = extra.Id, Place = place
                    };
                    placesExtras.Add(newPlaceExtra);
                }
            }

            place.PlaceExtras.ToList().ForEach(placeExtra => this.placeExtrasRepository.Delete(placeExtra));
            place.PlaceExtras.ToList().ForEach(placeExtra => place.PlaceExtras.Remove(placeExtra));
            await this.placeExtrasRepository.SaveChangesAsync();

            place.PlaceExtras = placesExtras;

            this.placesRepository.Update(place);
            await this.placesRepository.SaveChangesAsync();

            return(place.Id);
        }