using Femto.Modules.Blog.Data; using MediatR; namespace Femto.Modules.Blog.Domain.Posts.Commands.CreatePost; internal class CreatePostCommandHandler(BlogContext context) : IRequestHandler { public async Task Handle(CreatePostCommand request, CancellationToken cancellationToken) { var post = new Post( request.AuthorId, request.Content, request.Media.Select((url, idx) => new PostMedia(Guid.CreateVersion7(), url, idx)).ToList() ); await context.AddAsync(post, cancellationToken); return post.Id; } }