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);
        }
Beispiel #2
0
        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);
        }