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);
}
}