Files
mixtape/zero.Debug/Controllers/TestController.cs
T

75 lines
1.7 KiB
C#
Raw Normal View History

2020-05-22 21:19:49 +02:00
using FluentValidation;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Infrastructure;
2020-05-22 21:19:49 +02:00
using Microsoft.Extensions.DependencyInjection;
2020-05-21 23:44:43 +02:00
using System.Collections.Generic;
using System.Linq;
2020-05-21 23:44:43 +02:00
using System.Threading.Tasks;
using zero.Core.Api;
using zero.Core.Entities;
namespace zero.Debug.Controllers
{
public class TestController : Controller
{
private readonly IActionDescriptorCollectionProvider _actionDescriptorCollectionProvider;
2020-05-21 23:44:43 +02:00
2020-05-24 18:40:30 +02:00
public TestController(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider)
2020-05-21 23:44:43 +02:00
{
_actionDescriptorCollectionProvider = actionDescriptorCollectionProvider;
2020-05-21 23:44:43 +02:00
}
2020-05-22 21:19:49 +02:00
[HttpGet]
public IActionResult Services()
{
List<object> items = new List<object>();
foreach (var service in Startup.Services)
{
if (!service.ServiceType.FullName.StartsWith("zero.") && (service.ImplementationType == null || !service.ImplementationType.FullName.StartsWith("zero.")))
{
continue;
}
items.Add(new
{
name = service.ServiceType.FullName,
lifetime = service.Lifetime,
instance = service.ImplementationType?.FullName
});
}
return Json(items);
}
[HttpGet]
public IActionResult Things([FromServices] IValidator<Application> appValidator)
{
return Ok();
}
[HttpGet]
public IActionResult Routes()
{
var routes = _actionDescriptorCollectionProvider.ActionDescriptors.Items.ToList();
if (routes != null && routes.Any())
{
return Json(routes);
}
return Json(new string [0]);
}
}
internal class RouteModel
{
public string Name { get; set; }
public string Template { get; set; }
2020-05-21 23:44:43 +02:00
}
}