Files
mixtape/zero.Core/Preview/Routing/PreviewRouteProvider.cs
T
2022-03-04 00:45:07 +01:00

43 lines
1.2 KiB
C#

namespace zero.Preview;
public class PreviewRouteProvider : ZeroRouteProvider<PreviewRouteModel>
{
public PreviewRouteProvider() : base("zero.preview") { }
/// <inheritdoc />
public override Task<bool> IsRouteStale(RoutingContext context, PreviewRouteModel previous, PreviewRouteModel current) => Task.FromResult(false);
/// <inheritdoc />
public override async Task<Route> Create(RoutingContext context, PreviewRouteModel model)
{
Route route = await base.Create(context, model);
route.Url = context.Context.Options.For<PreviewOptions>().PreviewPath.EnsureStartsWith('/').TrimEnd('/');
return route;
}
/// <inheritdoc />
public override async IAsyncEnumerable<Route> Seed(RoutingContext context)
{
yield return await Create(context, new PreviewRouteModel()
{
Id = String.Empty,
Hash = String.Empty
});
}
/// <inheritdoc />
public override Task<IRouteModel> Model(RoutingContext context, RouteResponse response)
{
return Task.FromResult<IRouteModel>(new PreviewRoute()
{
Route = response.Route
});
}
/// <inheritdoc />
public override IRouteEndpoint Map(RoutingContext context, IRouteModel route)
{
return base.Map(context, route);
}
}