pschelpdesk/Vendor/Prise.Tests.Integration/Prise.IntegrationTestsHost/Controllers/DiscoveryController.cs
2024-11-04 20:45:34 +01:00

44 lines
1.2 KiB
C#

using System.Linq;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Prise.IntegrationTestsHost.PluginLoaders;
using Prise.IntegrationTestsHost.Models;
using Prise.IntegrationTestsContract;
using Prise.Infrastructure;
using System.Text;
using System.Threading.Tasks;
namespace Prise.IntegrationTestsHost.Controllers
{
[ApiController]
[Route("disco")]
public class DiscoveryController : ControllerBase
{
private readonly ILogger<DiscoveryController> logger;
private readonly ICalculationPluginLoader loader;
public DiscoveryController(ILogger<DiscoveryController> logger, ICalculationPluginLoader loader)
{
this.logger = logger;
this.loader = loader;
}
[HttpGet]
public async Task<string> DiscoverPlugins()
{
var plugins = await this.loader.GetPlugins();
return string.Join(',', plugins.Select(p => p.Name));
}
[HttpGet("description")]
public async Task<string> DiscoverPluginsWithDescription()
{
var plugins = await this.loader.GetPlugins();
return string.Join(',', plugins.Select(p => p.Description));
}
}
}