private static async void ValidateInputAndUpdateUserModel( RegistrationTransactionModel transaction, ITelegramBotClient botClient, ILogger logger, IDbContext db) { if (transaction.Message?.Text == null || !int.TryParse(transaction.Message.Text, out int genderId)) { await botClient.SendTextMessageAsync(transaction.RecipientId, Messages.SomethingWentWrong); transaction.TransactionState = new RegistrationInitiated(); await transaction.TransactionState.ProcessTransaction(transaction, botClient, logger, db); return; } if (genderId == 0) { transaction.User.InterlocutorGender = Gender.Male; } else if (genderId == 1) { transaction.User.InterlocutorGender = Gender.Female; } }
private static async Task <bool> ValidateInputAndUpdateUserModel( RegistrationTransactionModel transaction, ITelegramBotClient botClient, ILogger logger, IDbContext db) { if (transaction.Message?.Text == null || !int.TryParse(transaction.Message.Text, out int reply)) { await botClient.SendTextMessageAsync(transaction.RecipientId, Messages.SomethingWentWrong); transaction.TransactionState = new RegistrationInitiated(); await transaction.TransactionState.ProcessTransaction(transaction, botClient, logger, db); return(false); } bool isConfirmed = true; if (reply == 0) { isConfirmed = false; } if (!isConfirmed) { transaction.TransactionState = new RegistrationInitiated(); await transaction.TransactionState.ProcessTransaction(transaction, botClient, logger, db); return(false); } return(true); }
private async void RegistrationInitiated(RegistrationTransactionModel transaction) { TransactionsContainer.AddTransaction(transaction); _transactionProcessor.Strategy = TransactionProcessStrategy.Registration; await _transactionProcessor.ProcessTransaction( new Message() { From = new User { Id = transaction.RecipientId } }, transaction, new SqlServerContext(_config["DB:MsSqlDb:ConnectionString"])); }