public async Task <long> Handle(CreatePostCommand request, CancellationToken cancellationToken) { string folder = Path.Combine(Directory.GetCurrentDirectory(), _configurationService.GetConfig("ImagesFolder")); if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } string key = Guid.NewGuid().ToString(); string filePath = Path.Combine(folder, $"{key}.jpg"); using (var ms = new MemoryStream()) { await request?.ImageFile?.OpenReadStream()?.CopyToAsync(ms, cancellationToken); using (var image = new Bitmap(ms)) { image.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg); } } var post = new Post() { Comments = request.Comments, CreatedAt = DateTime.Now, Creator = _userService.CurrentUserId, ImageUrl = filePath, }; _context.Posts.Add(post); await _context.SaveChangesAsync(cancellationToken); return(post.Id); }
public async Task <long> Handle(CreateCommentCommand request, CancellationToken cancellationToken) { var post = await _context.Posts.FindAsync(request.PostId); if (post != null) { var comment = new Comment() { Content = request.Content, CreatedAt = DateTime.Now, Creator = _userService.CurrentUserId, PostId = request.PostId, }; _context.Comments.Add(comment); await _context.SaveChangesAsync(cancellationToken); return(comment.Id); } return(0); }