using System;
using System.Text.Json;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Legnext.SDK.Api;
using Legnext.SDK.Client;
using Legnext.SDK.Extensions;
public class LegnextService
{
private readonly IServiceProvider _serviceProvider;
private readonly string _apiKey;
public LegnextService(string apiKey)
{
_apiKey = apiKey;
var services = new ServiceCollection();
services.AddApi(config =>
{
config.AddApiHttpClients(client =>
{
client.BaseAddress = new Uri("https://api.legnext.ai");
client.Timeout = TimeSpan.FromMinutes(5);
});
});
_serviceProvider = services.BuildServiceProvider();
}
public async Task<string> GenerateImageAsync(string prompt)
{
var imageApi = _serviceProvider.GetRequiredService<IImageApi>();
var request = new Dictionary<string, object>
{
{ "text", prompt }
};
var response = await imageApi.ApiV1DiffusionPostAsync(
new Option<string>(_apiKey),
request
);
if (response.IsOk)
{
var jsonDoc = JsonDocument.Parse(response.RawContent);
if (jsonDoc.RootElement.TryGetProperty("job_id", out var jobId))
{
return jobId.GetString();
}
}
throw new Exception("Failed to generate image");
}
}