/
d.alekseev
/
SmartMenuBot
Обзор
Документация
Войти
/
d.alekseev
/
SmartMenuBot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ConsoleBot/Core/Services/Managers/TaskLimitsManager.cs
44 строки
1 KB
d.alekseev
feat: миграция на Telegram.Bot с reply-клавиатурами и меню команд
08 фев 2026, 17:00
08 фев 2026, 17:00
054ee94
Код
Авторство
О чём код?
using SmartMenuBot.Core.Entities; using SmartMenuBot.Core.Services.Interfaces; using SmartMenuBot.TelegramBot.Commands; namespace SmartMenuBot.Core.Services.Managers { public class TaskLimitsManager(ILimitsNotifier limitsNotifier) : ITaskLimitsManager { private TaskLimits Limits { get; set; } = TaskLimits.Uninitialized; public async Task<bool> TryInitializeFromUserInputAsync(CommandContext context) { if (Limits.IsInitialized) return false; await limitsNotifier.NotifyAsync( context, "Установите лимиты командой: /setlimits <кол-во задач> <макс. длина задачи>\n" + "Например: /setlimits 5 50"); return true; } public Task<bool> TrySetLimitsAsync(int count, int length, CancellationToken ct) { ct.ThrowIfCancellationRequested(); if (count < 1 || count > 100) return Task.FromResult(false); if (length < 1 || length > 100) return Task.FromResult(false); Limits = new TaskLimits(count, length); return Task.FromResult(true); } public Task<TaskLimits> GetLimitsAsync(CancellationToken ct) { ct.ThrowIfCancellationRequested(); return Task.FromResult(Limits); } } }