Регистрация пользователя в телеграм боте. Какой подход лучше выбрать?
Мой вопрос скорее не про "как сделать", а про "как сделать правильно". Я создаю телеграм бота и мне нужно зарегистрировать пользователя. Регистрация проходит по следующему принципу: пользователь нажимает кнопку /start
-> в базу заносится новый пользователь, некоторые поля пустые
. Дальше пользователь несколько раз вводит информацию о себе и пустые поля постепенно заполняются (знаю, что лучше собрать всю информацию и только потом отправлять её в бд, но не совсем понимаю, как это сделать).
Текущая реализация примерно такая: есть класс CommandExecutor
- некое подобие стейт-машины, так же есть класс StartCommand
, в котором пока что реализован только первый этап регистрации.
Итак, вопрос: как быть дальше? Как мне отслеживать, в каком состоянии заполнения профиля сейчас находится пользователь? Сделать очередную стейт-машину в StartCommand
? Но тогда получится стейт-машина внутри другой стейт-машины... Звучит не очень. Другой вариант - сделать несколько классов, каждый из которых будет отвечать за свой этап регистрации, и вызывать их исполняющие методы из CommandExecutor
. Но это тоже как будто не совсем верно, ведь процесс регистрации распадается на много отдельных сущностей. Скорее всего, есть какой-то другой, более простой, способ, о котором я не знаю. Прошу мне на него указать.
условная реализация CommandExecuor
:
private ICommand? currentCommand;
public async Task Execute(Update update)
{
currentCommand = new StartCommand()
if (currentCommand != null)
{
await currentCommand.Execute(update);
}
}
P.S. Я только закончил 11 класс, знаний у меня нет, а опыта - тем более) Поэтому, если посоветуете статью/книгу по asp.net, веб-разработке, паттернах, буду безмерно благодарен.