Example #1
0
        public async Task <IActionResult> AddPost([FromForm] PostForCreation postForCreation)
        {
            try
            {
                var myID = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

                await postsService.AddPost(postForCreation, myID);

                return(NoContent());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Example #2
0
        public async Task <object> AddPost(PostForCreation postForCreation, int myID)
        {
            //var userId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            var user = await usersRepo.GetSingleUserAsync(myID);

            var file = postForCreation.File;

            var uploadResult = new ImageUploadResult();

            // Generowanie randomowego publicId zdjęcia do Cloudinary
            var photoId = ("user_" + user.Id + "-").GenerateRandomString();

            if (file.Length > 0)
            {
                using (var stream = file.OpenReadStream())
                {
                    var uploadParams = new ImageUploadParams()
                    {
                        File           = new FileDescription(file.Name, stream),
                        Transformation = new Transformation()
                                         .Width(500).Height(500).Crop("fill").Gravity("face"),
                        PublicId = photoId
                    };

                    uploadResult = cloudinary.Upload(uploadParams);
                }
            }

            postForCreation.PhotoUrl           = uploadResult.Url.ToString();
            postForCreation.CloudinaryPublicId = uploadResult.PublicId;

            var post = mapper.Map <Post>(postForCreation);

            post.User   = user;
            post.UserId = myID;

            await postsRepo.AddAsync(post);

            if (await postsRepo.SaveAllAsync())
            {
                return(Task.CompletedTask);
            }

            throw new Exception("Coś poszło nie tak :(");
        }