예제 #1
0
        public async Task <int> AddListingPhotoAsync(ListingPhotoRequest request)
        {
            int count = _repository.ListingPhotoRepo.FindByCondition(x => x.ListingId == request.ListingId).ToList().Count;

            if (count >= 5)
            {
                return(0);
            }

            var listingPhoto = new ListingPhoto()
            {
                ListingId = request.ListingId,
                IsDefault = request.IsDefault
            };

            if (request.PhotoFile != null)
            {
                listingPhoto.PhotoUrl = await SaveFile(request.PhotoFile);
            }

            await _repository.ListingPhotoRepo.CreateAsync(listingPhoto);

            await _repository.SaveChangesAsync();

            return(listingPhoto.Id);
        }
예제 #2
0
        public async Task <ListingPhotoViewModel> GetListingPhotoByIdAsync(int photoId)
        {
            ListingPhoto listingPhoto = await FindListingPhotoByIdAsync(photoId);

            ListingPhotoViewModel viewModel = _mapper.Map <ListingPhotoViewModel>(listingPhoto);

            return(viewModel);
        }
예제 #3
0
        public async Task <int> RemovePhotoAsync(int photoId)
        {
            ListingPhoto listingPhoto = await FindListingPhotoByIdAsync(photoId);

            _repository.ListingPhotoRepo.Delete(listingPhoto);

            await _storageService.DeleteFileAsync(listingPhoto.PhotoUrl);

            return(await _repository.SaveChangesAsync());
        }
예제 #4
0
        public IHttpActionResult PostListingPhoto(ListingPhoto listingPhoto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.ListingPhotoes.Add(listingPhoto);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = listingPhoto.ListingPhotoId }, listingPhoto));
        }
예제 #5
0
        public IHttpActionResult AddListingPhotoToListing(int listingPhotoId, int listingId)
        {
            ListingPhoto listingPhoto = new ListingPhoto();

            listingPhoto.ListingPhotoId = listingPhotoId;
            listingPhoto.ListingId      = listingId;

            db.ListingPhotoes.Add(listingPhoto);
            db.SaveChanges();

            return(Ok());
        }
예제 #6
0
        public async Task <int> UpdateListingPhotoAsync(int photoId, IFormFile photoUrl)
        {
            ListingPhoto listingPhoto = await FindListingPhotoByIdAsync(photoId);

            if (photoUrl != null)
            {
                listingPhoto.PhotoUrl = await SaveFile(photoUrl);
            }

            _repository.ListingPhotoRepo.Update(listingPhoto);

            return(await _repository.SaveChangesAsync());
        }
예제 #7
0
        public IHttpActionResult DeleteListingPhoto(int id)
        {
            ListingPhoto listingPhoto = db.ListingPhotoes.Find(id);

            if (listingPhoto == null)
            {
                return(NotFound());
            }

            db.ListingPhotoes.Remove(listingPhoto);
            db.SaveChanges();

            return(Ok(listingPhoto));
        }
예제 #8
0
        private async Task <ListingPhoto> FindListingPhotoByIdAsync(int photoId)
        {
            ListingPhoto listingPhoto = await _repository.ListingPhotoRepo.FindByIdAsync(photoId);

            return(listingPhoto);
        }