исправлен парсер команд
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using BotPages.Core;
|
||||
using BotPages.Core.Messaging;
|
||||
using BotPages.Core.Routing;
|
||||
|
||||
namespace Demo.Pages;
|
||||
|
||||
@@ -7,20 +8,20 @@ namespace Demo.Pages;
|
||||
/// Страница ввода деталей заявки.
|
||||
/// Страница с параметрами и получением состояния.
|
||||
/// </summary>
|
||||
public sealed class DetailsPage : StatefullPage<DetailsArgs>
|
||||
public sealed class DetailsPage : StatefullPage<string>
|
||||
{
|
||||
[Statefull("Request")]
|
||||
private Models.Request Request;
|
||||
|
||||
public override Task OnEnter(PageContext ctx, DetailsArgs args, CancellationToken ct)
|
||||
public override Task OnEnter(PageContext ctx, string args, CancellationToken ct)
|
||||
{
|
||||
Request = new()
|
||||
{
|
||||
Title = args.Title,
|
||||
Title = args,
|
||||
};
|
||||
|
||||
return new MessageBuilder(ctx)
|
||||
.Text($"Заголовок: {args.Title}\nДобавьте детали или нажмите Далее.")
|
||||
.Text($"Заголовок: {args}\nДобавьте детали или нажмите Далее.")
|
||||
.Inline(new InlineButton("Далее", "next"), new InlineButton("Назад", "back"))
|
||||
.Reply("Отмена")
|
||||
.SendAsync(ct);
|
||||
@@ -52,12 +53,15 @@ public sealed class DetailsPage : StatefullPage<DetailsArgs>
|
||||
await SaveState(ctx, ct);
|
||||
await ctx.Navigation.GoToAsync<FilesPage>(ctx, ct);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Аргументы для страницы DetailsPage.
|
||||
/// </summary>
|
||||
public sealed class DetailsArgs
|
||||
{
|
||||
public string Title { get; set; } = "";
|
||||
internal static string Command => "/create_request {title}";
|
||||
internal static string CommandDescription => "создание заявки /create_request {title";
|
||||
internal static CommandHandler CommandHandler = async (ctx, args, ct) =>
|
||||
{
|
||||
string? title = "";
|
||||
args?.TryGetValue("title", out title);
|
||||
|
||||
// Навигация на страницу по имени
|
||||
await ctx.Navigation.GoToAsync<DetailsPage, string>(ctx, title ?? "", ct);
|
||||
};
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
using BotPages.Core;
|
||||
using BotPages.Core.Abstractions;
|
||||
using BotPages.Core.Messaging;
|
||||
using BotPages.Core.Routing;
|
||||
|
||||
namespace Demo.Pages;
|
||||
/// <summary>
|
||||
@@ -23,7 +24,7 @@ public sealed class TitlePage : SingletonPage
|
||||
}
|
||||
else
|
||||
{
|
||||
return ctx.Navigation.GoToAsync<DetailsPage, DetailsArgs>(ctx, new DetailsArgs { Title = text }, ct);
|
||||
return ctx.Navigation.GoToAsync<DetailsPage, string>(ctx, text, ct);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user