using CMSMicroservice.Application.Common.FileManager; using CMSMicroservice.Protobuf.Protos.ImageResolver; using Grpc.Core; namespace CMSMicroservice.WebApi.Services; /// /// سرویس اختصاصی resolve تصاویر — مسیر نسبی را به base64 data-URI تبدیل می‌کند. /// FrontOffice از طریق این سرویس تمام تصاویر دینامیک را دریافت می‌کند. /// public class ImageResolverService : ImageResolverContract.ImageResolverContractBase { private readonly IFileManager _fileManager; public ImageResolverService(IFileManager fileManager) { _fileManager = fileManager; } public override Task ResolveImages(ResolveImagesRequest request, ServerCallContext context) { var response = new ResolveImagesResponse(); foreach (var path in request.Paths) { var dataUri = string.Empty; if (!string.IsNullOrWhiteSpace(path)) { dataUri = _fileManager.ResolveImageUrl(path); } response.Images.Add(new ResolvedImage { OriginalPath = path ?? string.Empty, DataUri = dataUri ?? string.Empty }); } return Task.FromResult(response); } }