using Azaion.CommonSecurity.DTO.Commands; using Microsoft.Extensions.DependencyInjection; namespace Azaion.CommonSecurity.Services; public interface IResourceLoader { MemoryStream LoadFile(string fileName, string? folder = null); } public class ResourceLoader([FromKeyedServices(SecurityConstants.EXTERNAL_INFERENCE_PATH)] IInferenceClient inferenceClient) : IResourceLoader { public MemoryStream LoadFile(string fileName, string? folder = null) { inferenceClient.Send(RemoteCommand.Create(CommandType.Load, new LoadFileData(fileName, folder))); var bytes = inferenceClient.GetBytes(2, 3); if (bytes == null) throw new Exception($"Unable to receive {fileName}"); return new MemoryStream(bytes); } }