/// <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; } }
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}"); }
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); }
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); }
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); }
public string GetHelloFromBot() { global::Telegram.Bot.Types.User user = botClient.GetMeAsync().Result; return($"'Hello' from Telegram bot {user}"); }