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;
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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"]));
        }