Files
mixtape/zero.Web/ZeroPageModel.cs
T

30 lines
856 B
C#

using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.DependencyInjection;
using zero.Applications;
using zero.Context;
using zero.Routing;
namespace zero.Web;
public abstract class ZeroPageModel<T> : ZeroPageModel where T : class, IRouteModel
{
/// <summary>
/// Resolved route
/// </summary>
public virtual T Route => _route ?? (_route = HttpContext.Features.Get<IRouteModel>() as T);
T _route;
}
public abstract class ZeroPageModel : PageModel
{
/// <summary>
/// Get acces to the zero context for this request
/// </summary>
public IZeroContext ZeroContext => _zeroContext ?? (_zeroContext = HttpContext?.RequestServices?.GetService<IZeroContext>());
IZeroContext _zeroContext;
/// <summary>
/// Resolved application
/// </summary>
public virtual Application Application => ZeroContext?.Application;
}