Beispiel #1
0
        public async Task <IActionResult> Update(int id, UpdatePhotoViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var photo = context.PlacePhotos.FirstOrDefault(p => p.Id == id);

            if (photo == null)
            {
                return(NotFound());
            }
            if (photo.IsGooglePlacesImage)
            {
                return(Forbid());
            }
            photo.FileName = model.File.FileName;
            try {
                await S3Client.PutObjectAsync(new PutObjectRequest {
                    BucketName  = bucketName,
                    Key         = $"{photo.Id}-{model.File.FileName}",
                    InputStream = model.File.OpenReadStream()
                });
            } catch (Exception e) {
                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }
            context.PlacePhotos.Update(photo);
            context.SaveChanges();
            return(new NoContentResult());
        }
Beispiel #2
0
        public IActionResult Update([FromBody] UpdatePhotoViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Photo properties are not valid."));
            }

            if (!IsCurrentUser(viewModel.UserId))
            {
                return(BadRequest("User credentials are not valid."));
            }

            var photo = _mapper.Map <Photo>(viewModel);

            _photoService.Update(photo);

            return(Ok(photo.Id));
        }
Beispiel #3
0
        public ActionResult UpdatePhoto(UpdatePhotoViewModel model)
        {
            if (ModelState.IsValid)
            {
                string userId = User.Identity.GetUserId();
                _logger.Info("User {0} requests to update photo {1}", userId, model.PhotoId);

                ActionResult alternativeResult = ErrorIfNotAnOwner(model.UniqueUserName, Errors.AttemptToUpdatePhoto, _userService, userId, _logger);

                if (alternativeResult == null)
                {
                    var request = MapperHelper.GetValue <UpdatePhotoViewModel, UpdatePhoto>(model);

                    _photoService.UpdatePhoto(request);

                    TempData["ResultMessage"] = string.Format(SuccessMessages.SuccessfullyUpdatedPhoto, model.PhotoName);

                    return(RedirectToAction("ViewPhoto", new { photoName = model.PhotoName, uniqueUserName = model.UniqueUserName }));
                }
                return(alternativeResult);
            }
            return(View(model));
        }
Beispiel #4
0
        public ActionResult UpdatePhoto(string photoName, string uniqueUserName)
        {
            ActionResult alternativeResult = ErrorIfNotAnOwner(uniqueUserName, Errors.AttemptToUpdatePhoto, _userService, _logger);

            if (alternativeResult == null)
            {
                alternativeResult = ErrorIfNoPhoto(photoName, uniqueUserName);

                if (alternativeResult == null)
                {
                    var request = new RequestEntity
                    {
                        PhotoName      = photoName,
                        UniqueUserName = uniqueUserName
                    };

                    var response = _photoService.GetPhotoForUpdate(request);

                    UpdatePhotoViewModel result = MapperHelper.GetValue <UpdatePhoto, UpdatePhotoViewModel>(response);
                    return(View(result));
                }
            }
            return(alternativeResult);
        }