Beispiel #1
0
        /// <summary>
        /// Проверка юзер нейм пользователя в телеграме.
        /// Эта функция работает если выключена верификация телефона. Это нужно для того что бы с пользователем можно было выйти на связь
        /// </summary>
        /// <param name="configuration">Конфигурация бота. Может быть пустым в случае когда пользователь нажал далее</param>
        /// <param name="PaymentType">Тип оплаты</param>
        /// <returns></returns>
        private async Task <IActionResult> UserNameCheck(Configuration configuration = null, int PaymentType = 0)
        {
            using (MarketBotDbContext db = new MarketBotDbContext())
            {
                string name;

                int PaymentTypeId = PaymentType;

                if (Argumetns.Count > 0 && PaymentType == 0)
                {
                    PaymentTypeId = Argumetns[0];
                }

                if (PaymentTypeId > 0)
                {
                    AddPaymentMethodToOrderTemp(PaymentTypeId);
                }

                if (configuration == null)
                {
                    configuration = db.Configuration.Where(c => c.BotInfoId == BotInfo.Id).FirstOrDefault();
                }

                // Проверяем указан ли у пользователя UserName
                if (Update.CallbackQuery != null && Update.CallbackQuery.Message != null &&
                    Update.CallbackQuery.Message.Chat != null && Update.CallbackQuery.Message.Chat.Username != null)
                {
                    name = Update.CallbackQuery.Message.Chat.Username;
                    var follower = db.Follower.Where(f => f.Id == FollowerId).FirstOrDefault();
                    follower.UserName = name;

                    if (name != follower.UserName)
                    {
                        db.SaveChanges();
                    }

                    await SendOrderTemp();
                }

                else // Если не указан Просим указать
                {
                    UserNameImageMessage userNameImage = new UserNameImageMessage(configuration);
                    var message   = userNameImage.BuilMessage();
                    var PhotoSend = await SendPhoto(message);

                    // добавляем ID файла в бд, что бы потом не отправлять сам файл,а только ID на сервере телегарм
                    if (configuration != null && configuration.UserNameFaqFileId == null && PhotoSend != null)
                    {
                        configuration.UserNameFaqFileId = PhotoSend.Photo[PhotoSend.Photo.Length - 1].FileId;
                        db.SaveChanges();
                    }
                }
            }

            return(OkResult);
        }
        /// <summary>
        /// отправить сообщение с инструкцией о том как добавить userName в Telegram
        /// </summary>
        /// <param name="configuration">Конфигурация бота. Может быть пустым в случае когда пользователь нажал далее</param>
        /// <param name="PaymentType">Тип оплаты</param>
        /// <returns></returns>
        private async Task <IActionResult> SendUserNameAddedFaq(Configuration configuration = null)
        {
            UserNameImageMessage userNameImage = new UserNameImageMessage(BotInfo.Configuration);

            var message = userNameImage.BuildMsg();

            var PhotoSend = await SendPhoto(message);

            // добавляем ID файла в бд, что бы потом не отправлять сам файл,а только ID на сервере телегарм
            if (BotInfo.Configuration != null && BotInfo.Configuration.UserNameFaqFileId == null && PhotoSend != null)
            {
                ConfigurationFunction.AddFileIdUserNameFaqImage(BotInfo.Configuration, PhotoSend.Photo[PhotoSend.Photo.Length - 1].FileId);
            }

            return(OkResult);
        }