Files
Core_Be/Helpers/BusinessLogoHelper.cs
Dhananjaya99 bffc9b1686 first commit
2026-09-28 11:44:26 +05:30

24 lines
1.2 KiB
C#

namespace Fitness_core_BE.Helpers
{
// BusinessLogoId (ClientBusiness) holds a relative /Uploads path, not a public URL — there's
// no static-file serving configured for it, so the only way to hand it to a client (web or
// mobile) is to read the bytes server-side and inline them as a base64 data URL.
public static class BusinessLogoHelper
{
public static async Task<string?> ReadAsDataUrlAsync(string? businessLogoId)
{
if (string.IsNullOrEmpty(businessLogoId)) return null;
string uploadsRoot = Path.GetFullPath(Path.Combine(Directory.GetCurrentDirectory(), ".."));
string relativePath = Uri.UnescapeDataString(businessLogoId).Replace("/", Path.DirectorySeparatorChar.ToString());
string filePath = uploadsRoot + relativePath;
if (!File.Exists(filePath)) return null;
byte[] bytes = await File.ReadAllBytesAsync(filePath);
string ext = Path.GetExtension(filePath).TrimStart('.').ToLowerInvariant();
string mime = ext == "png" ? "image/png" : ext == "webp" ? "image/webp" : "image/jpeg";
return $"data:{mime};base64,{Convert.ToBase64String(bytes)}";
}
}
}