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 : ZeroPageModel where T : class, IRouteModel { /// /// Resolved route /// public virtual T Route => _route ?? (_route = HttpContext.Features.Get() as T); T _route; } public abstract class ZeroPageModel : PageModel { /// /// Get acces to the zero context for this request /// public IZeroContext ZeroContext => _zeroContext ?? (_zeroContext = HttpContext?.RequestServices?.GetService()); IZeroContext _zeroContext; /// /// Resolved application /// public virtual Application Application => ZeroContext?.Application; }