Example #1
0
        public async Task <ActionResult <PostImageDTO> > PostPostImage(CreatePostImageDTO newImage)
        {
            var image = await _postImage.Create(newImage, UserClaimsGetters.GetUserId(User));

            if (image != null)
            {
                return(Ok());
            }

            return(BadRequest());
        }
Example #2
0
        /// <summary>
        /// Creates a new PostImage and puts it in the database. If it's successfuly added then it transfers the image from the transfer bucket to the storage bucket.
        /// </summary>
        /// <param name="postImage">The CreatePostImageDTO to create the new entity</param>
        /// <param name="userId">The user's id</param>
        /// <returns>If successful: the new ImageDTO</returns>
        public async Task <PostImageDTO> Create(CreatePostImageDTO postImage, string userId)
        {
            var timeNow = DateTime.UtcNow;

            PostImage newImage = new PostImage()
            {
                UserId          = userId,
                CloudStorageKey = $"{Guid.NewGuid()}{postImage.ImageExtention}",
                Created         = timeNow,
                Modified        = timeNow
            };

            _context.Entry(newImage).State = EntityState.Added;
            var success = await _context.SaveChangesAsync();

            if (success > 0)
            {
                await _s3Provider.MoveImageFromTransferBucketToStorageBucket(postImage.TransferKey, newImage.CloudStorageKey);
            }

            return(postImage);
        }