Выделены отдельные расширения
All checks were successful
CI / build-test (push) Successful in 29s
Release / pack-and-publish (release) Successful in 32s

This commit is contained in:
2025-12-06 07:52:01 +03:00
parent f9584c5afe
commit 57b3706241
8 changed files with 99 additions and 45 deletions

View File

@@ -0,0 +1,38 @@
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);
}