using CMSMicroservice.Application.Common.FileManager; using CMSMicroservice.Application.Common.Interfaces; using CMSMicroservice.Domain.Entities.Content; using MediatR; namespace CMSMicroservice.Application.SitePageCQ.Commands.CreateSitePage; public class CreateSitePageCommandHandler : IRequestHandler { private readonly IApplicationDbContext _context; private readonly IFileManager _fileManager; public CreateSitePageCommandHandler(IApplicationDbContext context, IFileManager fileManager) { _context = context; _fileManager = fileManager; } public async Task Handle(CreateSitePageCommand request, CancellationToken cancellationToken) { var entity = new SitePage { PageKey = request.PageKey, Title = request.Title, MetaDescription = request.MetaDescription, HeroTitle = request.HeroTitle, HeroSubtitle = request.HeroSubtitle, IsActive = request.IsActive }; // آپلود تصویر هیرو (اگر فایل ارسال شده باشد) if (request.ImageFileBytes is { Length: > 0 }) { var result = await _fileManager.UploadImageAsync( "Images/SitePages", request.ImageFileBytes, request.ImageFileMime ?? "image/jpeg", request.ImageFileName, cancellationToken); entity.HeroImagePath = result.Main.Path; } _context.SitePages.Add(entity); await _context.SaveChangesAsync(cancellationToken); return entity.Id; } }