39 lines
1.6 KiB
C#
39 lines
1.6 KiB
C#
namespace BotPages.Core;
|
||
|
||
/// <summary>
|
||
/// Расширения <see cref="PageContext"/> для работы с <see cref="NavigationService"/>
|
||
/// </summary>
|
||
public static class PageContextNavigationExtensions
|
||
{
|
||
|
||
/// <summary>
|
||
/// Перейти по маршруту без аргументов.
|
||
/// </summary>
|
||
public static Task GoToHomeAsync(this PageContext ctx, CancellationToken ct)
|
||
=> ctx.Navigation.GoToHomeAsync(ctx, ct);
|
||
|
||
/// <summary>
|
||
/// Перейти по маршруту без аргументов.
|
||
/// </summary>
|
||
public static Task GoToAsync(this PageContext ctx, string route, CancellationToken ct)
|
||
=> ctx.Navigation.GoToAsync(route, ctx, ct);
|
||
|
||
/// <summary>
|
||
/// Перейти по маршруту с аргументами.
|
||
/// </summary>
|
||
public static Task GoToAsync<TArgs>(this PageContext ctx, string route, TArgs args, CancellationToken ct)
|
||
=> ctx.Navigation.GoToAsync<TArgs>(route, args, ctx, ct);
|
||
|
||
/// <summary>
|
||
/// Перейти на страницу без аргументов.
|
||
/// </summary>
|
||
public static Task GoToAsync<TPage>(this PageContext ctx, CancellationToken ct) where TPage : Page
|
||
=> ctx.Navigation.GoToAsync<TPage>(ctx, ct);
|
||
|
||
/// <summary>
|
||
/// Перейти на страницу с аргументами.
|
||
/// </summary>
|
||
public static Task GoToAsync<TPage, TArgs>(this PageContext ctx, TArgs args, CancellationToken ct) where TPage : StatefullPage<TArgs>
|
||
=> ctx.Navigation.GoToAsync<TPage, TArgs>(ctx, args!, ct);
|
||
}
|