Ejemplo n.º 1
0
        //To isolate
        private int PostRemover(int postId, PaintStoreContext db)
        {
            var tempPost = db.Posts.First(x => x.Id == postId);

            UsersManager.UserPostsCountMinus(db, tempPost.UserId);

            var tagsToRemove = db.PostTags.Where(x => x.PostId == postId).ToList();

            foreach (var tagToRemove in tagsToRemove)
            {
                db.PostTags.Remove(tagToRemove);
                TagsManager.TagsCountMinus(db, tagToRemove.TagId);
            }

            db.Posts.Remove(db.Posts.First(x => x.Id == postId));
            foreach (var like in db.PostLikes.Where(x => x.PostId == postId))
            {
                db.PostLikes.Remove(db.PostLikes.First(x => x.Id == like.Id));
            }

            foreach (var comment in db.PostComments.Where(x => x.PostId == postId))
            {
                db.PostComments.Remove(db.PostComments.First(x => x.Id == comment.Id));
                foreach (var like in db.CommentLikes.Where(x => x.CommentId == comment.Id))
                {
                    db.CommentLikes.Remove(db.CommentLikes.First(x => x.Id == like.Id));
                }
            }

            _cloudinaryService.DeleteImage(tempPost.ImgLink);

            return(postId);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> DeletePhoto(int userId, int photoId)
        {
            var photoFromRepo = await _repository.Get <Photo>(photoId);

            if (photoFromRepo == null)
            {
                return(NotFound("Could not find photo"));
            }

            if (photoFromRepo.UserId != userId)
            {
                return(Unauthorized());
            }

            if (photoFromRepo.IsMain)
            {
                return(BadRequest("You cannot delete the main photo"));
            }

            if (photoFromRepo.PublicId != null)
            {
                var deleteResult = _cloudinaryService.DeleteImage(photoFromRepo.PublicId);
                if (deleteResult.Result == "ok")
                {
                    _repository.Delete(photoFromRepo);
                }
            }
            else
            {
                _repository.Delete(photoFromRepo);
            }

            if (await _repository.SaveAll())
            {
                return(Ok());
            }

            return(BadRequest("Failed to delete a photo"));
        }