コード例 #1
0
        /// <summary>
        /// См. <see cref="IConnectorBase{TMessage}.Init(string)"/>.
        /// </summary>
        /// <exception cref="InvalidOperationException">Возникает, если коннектор уже был инициализирован.</exception>
        bool IConnectorBase <Message> .Init(string connectorSettings)
        {
            if (_client != null)
            {
                throw new InvalidOperationException("Коннектор уже инициализирован.");
            }

            try
            {
                var settings = !string.IsNullOrEmpty(connectorSettings) ? JsonConvert.DeserializeObject <ConnectorSettings>(connectorSettings) : new ConnectorSettings();
                if (string.IsNullOrEmpty(settings.TelegramBotID))
                {
                    throw new Exception("Не указан идентификатор бота.");
                }

                var client = new TelegramBotClient(settings.TelegramBotID);

                var getME = client.GetMeAsync().WaitAndReturn();
                _botUser = getME;

                _client = client;

                return(true);
            }
            catch (Exception)
            {
                // todo здесь должна быть возможность писать в журнал. Пока не реализовано - делаем throw дальше, попадет в общий журнал.
                throw;
            }
        }
コード例 #2
0
        public string GetHelloFromBot()
        {
            global::Telegram.Bot.Types.User user =
                botClient.GetMeAsync().Result;

            return($"Hello from user {user.Id}." +
                   $"My name is {user.FirstName} {user.LastName}");
        }
コード例 #3
0
 public static bool UserEquals(this global::Telegram.Bot.Types.User originalUsr, User usr)
 {
     return
         (usr.PlatformName == TelegramMessenger.PLATFORM_NAME &&
          originalUsr.Id.ToString() == usr.UserID &&
          originalUsr.FirstName == usr.FirstName &&
          originalUsr.LastName == usr.LastName &&
          originalUsr.Username == usr.Username &&
          originalUsr.LanguageCode == usr.LanguageCode);
 }
コード例 #4
0
        private async Task <User> GetUserAsync(global::Telegram.Bot.Types.User tlgrmUser)
        {
            string id  = tlgrmUser.Id.ToString();
            User   usr = await GetUserAsync(id) ?? new User(this, id);

            if (tlgrmUser.UpdateUser(usr))
            {
                await usr.Save();
            }
            usr.Messenger = this;


            return(usr);
        }
コード例 #5
0
        public static bool UpdateUser(this global::Telegram.Bot.Types.User originalUsr, User usr)
        {
            if (UserEquals(originalUsr, usr))
            {
                return(false);
            }

            usr.FirstName    = originalUsr.FirstName;
            usr.LastName     = originalUsr.LastName;
            usr.LanguageCode = originalUsr.LanguageCode;
            usr.Username     = originalUsr.Username;

            return(true);
        }
コード例 #6
0
 public string GetHelloFromBot()
 {
     global::Telegram.Bot.Types.User user = botClient.GetMeAsync().Result;
     return($"'Hello' from Telegram bot {user}");
 }