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)); } }
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 :("); }