2021-11-23 11:56:42 +01:00
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
using zero.Applications;
|
|
|
|
|
using zero.Context;
|
|
|
|
|
using zero.Routing;
|
|
|
|
|
|
|
|
|
|
namespace zero.Web;
|
|
|
|
|
|
2021-11-27 18:09:27 +01:00
|
|
|
public abstract class ZeroController : ZeroController<IRouteModel> { }
|
2021-11-23 11:56:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
public abstract class ZeroController<T> : Controller where T : class, IRouteModel
|
|
|
|
|
{
|
|
|
|
|
public virtual Application Application => Context?.Application;
|
|
|
|
|
|
|
|
|
|
T _route;
|
|
|
|
|
public virtual T Route => _route ?? (_route = HttpContext.Features.Get<IRouteModel>() as T);
|
|
|
|
|
|
|
|
|
|
IZeroContext _context;
|
|
|
|
|
public IZeroContext Context => _context ?? (_context = HttpContext?.RequestServices?.GetService<IZeroContext>());
|
|
|
|
|
}
|