コード例 #1
0
 public void ExecuteQuery(CallbackQuery callback)
 {
     using (var conn = new SqliteConnection("Data Source=" + filename))
     {
         conn.Open();
         using (SqliteTransaction transaction = conn.BeginTransaction())
         {
             using (SqliteCommand command = conn.CreateCommand())
             {
                 callback(command);
             }
             transaction.Commit();
         }
         conn.Close();
     }
 }
コード例 #2
0
ファイル: GMessage.cs プロジェクト: astmus/MasevaDrive
        public static GMessage Parse(this CallbackQuery query, TelegramBotClient owner)
        {
            var queryData = CallbackData.Parse(query.Data);

            if (queryData.IsParseError)
            {
                return(new NotValidDataMessage(query, owner));
            }

            if (nucleoData.ContainsKey(queryData.Code))
            {
                return(GMessage.InitializeMesage(nucleoData[queryData.Code], query, owner));
            }
            else
            {
                return(new MissingInfoForBuildMessage(queryData.Code, query, owner));
            }
        }
コード例 #3
0
        public override async Task Execute(CallbackQuery callbackQuery, TelegramBotClient bot)
        {
            string[] data = callbackQuery.Data.Split("|");
            long     sensorID;

            if ((data.Length > 1) && long.TryParse(data[1], out sensorID))
            {
                TempDTO sensorTemp = await sensorTempReader.GetTempBySensor(sensorID);

                await bot.AnswerCallbackQueryAsync(callbackQueryId : callbackQuery.Id, text : $"Selected sensor with ID: {sensorID}");

                await bot.SendTextMessageAsync(chatId : callbackQuery.Message.Chat.Id, text : $"Sensor \"{sensorTemp.Name}\": {Math.Round(sensorTemp.Temperature, 1)}°C");
            }
            else
            {
                await bot.SendTextMessageAsync(chatId : callbackQuery.Message.Chat.Id, text : "Wrong command. SensorID is not found");
            }
        }
コード例 #4
0
        public override async void Execute(TelegramBotClient botClient, System.Object message)
        {
            CallbackQuery _message = message as CallbackQuery;

            try
            {
                if (IsBan.Ban(botClient, message))
                {
                    InlineKeyboardMarkup answer = InlineButton.GetChat();
                    await botClient.EditMessageTextAsync(_message.From.Id, _message.Message.MessageId, "Чаты: ",
                                                         Telegram.Bot.Types.Enums.ParseMode.Html, replyMarkup : answer);
                }
            }
            catch (System.Exception ex)
            {
                Log.Logging(ex);
            }
        }
コード例 #5
0
    private async Task HandleCallback(CallbackQuery query)
    {
        var msg = _mapper.Map <Message>(query);
        await _commandsService.ExecuteCommand(msg, OnAnyResult, OnAnyResult);

        async Task OnAnyResult(IResult res)
        {
            await _botClient.AnswerCallbackQueryAsync(query.Id);

            await _botClient.EditMessageTextAsync(new ChatId(query.From.Id), query.Message.MessageId, res.Message);

            if (res.Keyboard.IsInline)
            {
                await _botClient.EditMessageReplyMarkupAsync(new ChatId(query.From.Id), query.Message.MessageId,
                                                             KeyboardConverter.FromCoreToTg(res.Keyboard) as InlineKeyboardMarkup);
            }
        }
    }
コード例 #6
0
        public override bool Validate(Model.User currentUser, CallbackQuery cquery = null, Message message = null)
        {
            if (cquery != null)
            {
                return(false);
            }

            if (message.Type == MessageType.Text && AskAction.BaseTextValidation(cquery, message))
            {
                return(Uri.IsWellFormedUriString(message.Text, UriKind.Absolute));
            }
            else if (message.Type == MessageType.Photo)
            {
                return(true);
            }

            return(false);
        }
コード例 #7
0
        public static void GameQuery(CallbackQuery query, string[] args)
        {
            var temp         = args[1].Split('|');
            var gameId       = temp[0];
            var playerId     = temp[1];
            var playerChoice = temp[2];

            var game = Bot.GetGameByGuid(gameId);

            if (game != null)
            {
                game.HandleQuery(query, temp);
            }
            else
            {
                // should not happen
            }
        }
コード例 #8
0
ファイル: InlineHandler.cs プロジェクト: bcmmunity/Evect
        public async Task OnMeet(ApplicationContext context, CallbackQuery query, TelegramBotClient client)
        {
            long userId = Convert.ToInt64(query.Data.Split('-')[1]);
            User user   = await UserDB.GetUserByChatId(context, query.From.Id);

            StringBuilder          builder = new StringBuilder();
            TelegramInlineKeyboard inline  = new TelegramInlineKeyboard();

            inline
            .AddTextRow("Отклонить", "Принять")
            .AddCallbackRow($"decline-{query.From.Id}", $"accept-{query.From.Id}");

            builder.AppendLine("Вам назначена встреча от:");
            builder.AppendLine($"{user.FirstName} {user.LastName}");

            await client.SendTextMessageAsync(userId, builder.ToString(), ParseMode.Markdown,
                                              replyMarkup : inline.Markup);
        }
コード例 #9
0
        public async Task HandleAsync(IUpdateContext context, UpdateDelegate next, CancellationToken cancellationToken)
        {
            CallbackQuery cq = context.Update.CallbackQuery;

            await context.Bot.Client.SendTextMessageAsync(
                cq.Message.Chat,
                context.Items["History"].ToString() + " and last item = " + context.Items["State"].ToString(),
                replyMarkup : new InlineKeyboardMarkup(
                    new InlineKeyboardButton[]
            {
                InlineKeyboardButton.WithCallbackData("menu2", "menu2::"),
                InlineKeyboardButton.WithCallbackData("back", "back::")
            }

                    ),
                cancellationToken : cancellationToken
                );
        }
コード例 #10
0
        public async void Execute(TelegramBotClient botClient, System.Object message, Dictionary <System.Int32, IItemCategory> itemCategories, DataBaseContext baseContext)
        {
            CallbackQuery _message = message as CallbackQuery;


            User users = baseContext._User.Where(p => p.ID == _message.From.Id).FirstOrDefault();

            users.Work = 1919;
            baseContext.SaveChanges();
            try
            {
                await botClient.EditMessageTextAsync(_message.From.Id, _message.Message.MessageId, "Меню: ", replyMarkup : inlineButton.Travels);
            }
            catch (System.Exception ex)
            {
                System.Console.WriteLine("Travels : ICommand: " + ex);
            }
        }
コード例 #11
0
ファイル: Program.cs プロジェクト: Archivaldi/greta-food-bot
        private static async Task BotOnCallbackQueryReceived(CallbackQuery callbackQuery)
        {
            await Bot.AnswerCallbackQueryAsync(
                callbackQuery.Id,
                $"Congrats!"
                );

            var lo = float.Parse(callbackQuery.Data.Split(',')[0]);
            var ln = float.Parse(callbackQuery.Data.Split(',')[1]);
            await Bot.SendLocationAsync(
                callbackQuery.Message.Chat.Id, lo, ln);

            await Bot.EditMessageTextAsync(
                callbackQuery.Message.Chat.Id,
                callbackQuery.Message.MessageId,
                $"Your free promocode to get the food is: *DeveloperWeek2020*. Go ahead and tell at the end location ! 🥙 😀",
                parseMode : ParseMode.Markdown);
        }
コード例 #12
0
        private void ExecuteQuery(CallbackQuery query, TelegramBotClient client)
        {
            client.AnswerCallbackQueryAsync(query.Id, "Success!");

            using (SqlConnection connection = Bot.GetDBConnection())
            {
                connection.Open();
                SqlCommand sqlCommand = new SqlCommand();
                sqlCommand.Connection = connection;

                sqlCommand.CommandText = $"INSERT INTO Commands (ChatId, Command) VALUES ({query.Message.Chat.Id}, '{query.Data}')";
                sqlCommand.ExecuteNonQuery();

                connection.Close();
            }

            client.SendTextMessageAsync(query.Message.Chat.Id, "Ok! What do you want to search?");
        }
コード例 #13
0
        public Task Handle(CallbackQuery callbackQuery)
        {
            /*
             * Get message id from callback and store it
             *
             * Callback data to KeyValue pairs
             *               \/
             *               V
             * Get certain handler depending on CallbackQueryActionType
             * Delegate handling to specific handler
             *
             */
            CallbackQueryData             callbackQueryData = null;
            ISpecificCallbackQueryHandler handler           = null;

            try
            {
                StoreMessageId(callbackQuery);
                callbackQueryData = CallbackDataFormatter.DeserializeCallbackQueryData(callbackQuery.Data);
                callbackQueryData.CallbackQueryId = callbackQuery.Id;

                handler = _queryHandlerProvider.GetHandler(callbackQueryData.CallbackQueryActionType);
                return(handler.Handle(callbackQueryData));
            }
            catch (Exception e)
            {
                var callbackQueryId = callbackQuery.Id;
                var user            = callbackQuery.From;

                var messageId   = callbackQuery.Message?.MessageId;
                var messageText = callbackQuery.Message?.Text;

                _logger.LogError(TelegramLogEvents.CallbackQueryHandlerError, e,
                                 "Telegram callbackQueryId: {callbackQueryId}. " +
                                 "Telegram user: {user}. " +
                                 "Callback query message id: {messageId}. " +
                                 "Message text: {messageText}" +
                                 "callbackQueryData: {callbackQueryData}. " +
                                 "handler: {handler}. ",
                                 callbackQueryId, user, messageId, messageText, callbackQueryData, handler);

                throw;
            }
        }
コード例 #14
0
        private async Task ProcessCallbackError(CallbackQuery callbackQuery, Exception ex)
        {
            var messageForUser     = string.Empty;
            var messageForBotOwner = string.Empty;
            var userId             = callbackQuery.From.Id;
            var player             = ex is UserNotFoundException ? null : await _playerRepository.GetAsync(userId);

            if (ex is UserNotFoundException)
            {
                _logger.Error($"User with id {userId} not found. Name: {callbackQuery.From.FirstName} {callbackQuery.From.LastName}");
                messageForUser     = "******";
                messageForBotOwner = $"Пользователь {callbackQuery.From.FirstName} {callbackQuery.From.LastName} не найден";
            }

            if (ex is TotalsRowNotFoundExeption)
            {
                _logger.Error("\"Всего\" row not found in excel-file");
                messageForUser     = "******"Всего\" в excel-файле.";
                messageForBotOwner = $"Не найдена строка \"Всего\" в excel-файле. Пользователь - {player.Name}";
            }

            if (ex is OperationCanceledException)
            {
                _logger.Error($"Operation {callbackQuery.Data} cancelled for user {player.Name}.");
                messageForUser     = "******";
                messageForBotOwner = $"Операция обработки ответа отменена для пользователя {player.Name}";
            }

            if (ex is ArgumentOutOfRangeException)
            {
                _logger.Error($"Unexpected response for user {player.Name}: {((ArgumentOutOfRangeException)ex).ParamName}");
                messageForUser     = "******";
                messageForBotOwner = $"Непредвиденный вариант ответа для пользователя {player.Name}";
            }

            if (messageForUser == string.Empty)
            {
                _logger.Error(ex, "Unexpected error");
                messageForUser     = "******";
                messageForBotOwner = $"Ошибка у пользователя {player.Name}: {ex.Message}";
            }

            await NotifyAboutError(callbackQuery.Message.Chat.Id, messageForUser, messageForBotOwner);
        }
コード例 #15
0
        public static void RequestGif(CallbackQuery q)
        {
            Bot.Api.DeleteMessageAsync(q.From.Id, q.Message.MessageId);
            var choice = q.Data.Split('|')[1].Split(' ')[0];

            if (choice == "submit")
            {
                using (var db = new WWContext())
                {
                    var p = db.Players.FirstOrDefault(x => x.TelegramId == q.From.Id);
                    if (p != null)
                    {
                        var json = p?.CustomGifSet;
                        if ((p.DonationLevel ?? 0) < 10)
                        {
                            Bot.Send("You have not unlocked a custom GIF pack.  Please use /donate", q.From.Id);
                            return;
                        }
                        var data = JsonConvert.DeserializeObject <CustomGifData>(json);
                        if (data.Approved != null)
                        {
                            Bot.Send($"Your current GIF pack has already been {(data.Approved == true ? "" : "dis")}approved! You can't submit it again without any changes!", q.From.Id, customMenu: GetGifMenu(data));
                            return;
                        }
                        if (new[] { data.CultWins, data.LoversWin, data.NoWinner, data.SerialKillerWins, data.SKKilled, data.StartChaosGame, data.StartGame, data.TannerWin, data.VillagerDieImage, data.VillagersWin, data.WolfWin, data.WolvesWin, data.ArsonistWins, data.BurnToDeath }.All(x => string.IsNullOrEmpty(x)))
                        {
                            Bot.Send($"Please set at least one GIF before you submit your pack!", q.From.Id, customMenu: GetGifMenu(data));
                            return;
                        }
                        data.Submitted = true;
                        p.CustomGifSet = JsonConvert.SerializeObject(data);
                        db.SaveChanges();
                    }
                }
                var menu = new Menu(2);
                menu.Buttons.Add(new InlineKeyboardCallbackButton("Review", "reviewgifs|" + q.From.Id));
                menu.Buttons.Add(new InlineKeyboardCallbackButton("Dismiss", $"dismiss|" + q.From.Id));
                menu.Buttons.Add(new InlineKeyboardCallbackButton("Approved: SFW", "approvesfw|" + q.From.Id));
                menu.Buttons.Add(new InlineKeyboardCallbackButton("Approved: NSFW", "approvensfw|" + q.From.Id));
                Bot.Send($"User {q.From.Id} - {(q.From.Username == null ? q.From.FirstName : $"@{q.From.Username}")} - has submitted a gif pack for approval", Settings.AdminChatId, customMenu: menu.CreateMarkupFromMenu());
                Bot.Send("Your pack has been submitted for approval to the admins.  Please wait while we review.",
                         q.From.Id);
                return;
            }
コード例 #16
0
        public override async Task <IChatState> HandleCallbackQuery(CallbackQuery callbackQuery)
        {
            IChatState nextState = null;
            var        httpCheckSettingsRepository = ServiceProvider.GetRequiredService <IHttpCheckSettingsRepository>();
            var        action = callbackQuery.Data.Split("::").FirstOrDefault();

            switch (action)
            {
            case "remove":
                await httpCheckSettingsRepository.Remove(Guid.Parse(callbackQuery.Data.Substring(callbackQuery.Data.IndexOf("::") + 2)), CancellationToken.None);

                nextState = this;
                break;
            }

            await base.HandleCallbackQuery(callbackQuery);

            return(nextState ?? new UndefinedChatState(Chat, TelegramBotClient, ServiceProvider));
        }
コード例 #17
0
        private Menu MarkSessionLive(CallbackQuery callback)
        {
            Menu menu;
            var  sessionId = SessionIdFromCallbackData(callback.data);
            var  session   = GetSessionById(sessionId);

            if (session == null)
            {
                menu = new NoMatchingSessionMenu(sessionId);
            }
            else
            {
                session.MarkLive();
                _database.SaveSession(session);
                menu = new SessionCompleteLiveMenu();
            }

            return(menu);
        }
コード例 #18
0
        public async void Execute(TelegramBotClient botClient, System.Object message, Dictionary <System.Int32, IItemCategory> itemCategories, DataBaseContext baseContext)
        {
            CallbackQuery _message = message as CallbackQuery;
            Message       mes      = message as Message;

            User users = baseContext._User.Where(p => p.ID == _message.From.Id).FirstOrDefault();

            System.Console.WriteLine("\n\n" + users.Work / 100);

            itemCategories[users.Work / 100].ChangeFirstCat(message, baseContext);
            try
            {
                await botClient.EditMessageTextAsync(_message.From.Id, _message.Message.MessageId, "Заголовок: ", replyMarkup : inlineButton.BackToCategory);
            }
            catch (System.Exception ex)
            {
                System.Console.WriteLine("ChangeFirst : ICommand: " + ex);
            }
        }
コード例 #19
0
        public override void Execute(CallbackQuery callbackQuery)
        {
            dynamic response = JsonConvert.DeserializeObject(callbackQuery.Data);
            int     id       = response.id;

            var med = SessionManager.Current.Carrinho.AdicionarMedicamento(id);

            if (med != null)
            {
                Bot.AnswerCallbackQueryAsync(
                    callbackQuery.Id,
                    $"Medicamento {med.Nome} foi adicionado ao carrinho.");

                Bot.SendTextMessageAsync(
                    callbackQuery.Message.Chat.Id,
                    $"Medicamento {med.Nome} foi adicionado ao carrinho." + "\n\n" +
                    "Use o comando /pedido para finalizar a compra.");
            }
        }
コード例 #20
0
ファイル: QueryHandler.cs プロジェクト: northis/chineseDuck
        public async Task CallbackQuery(CallbackQuery callbackQuery)
        {
            try
            {
                var userId = callbackQuery.From.Id;
                if (!_checker.AllowUser(userId))
                {
                    return;
                }

                await OnMessage(callbackQuery.Message, callbackQuery.Data, callbackQuery.From);

                _checker.UserQueryProcessed(userId);
            }
            catch (Exception ex)
            {
                _logService.Write("CallbackQuery", ex, null);
            }
        }
コード例 #21
0
    public async Task HandleCallBackQuery(CallbackQuery callbackQuery)
    {
        var message = callbackQuery.Message;

        if (!await IsUserAdmin(_client, callbackQuery.Message, callbackQuery.From))
        {
            var userMention = $"[{callbackQuery.From.FirstName} {callbackQuery.From.LastName}](tg://user?id={callbackQuery.From.Id})";

            await _client.SendTextMessageAsync(message.Chat.Id, $"{userMention} Only admins can use this command.", ParseMode.Markdown);

            return;
        }

        var chatConfig = await _chatConfigurationService.GetConfigurationByChatId(message.Chat.Id);

        var enumTypeString = callbackQuery.Data.Split(".")[0];

        if (enumTypeString == nameof(SupportedLanguages))
        {
            var languageSelectedString = callbackQuery.Data.Split(".")[1];

            var languageSelected = Enum.GetValues(typeof(SupportedLanguages)).Cast <SupportedLanguages>().First(v => v.ToString() == languageSelectedString);

            chatConfig.SelectedLanguage = languageSelected;

            await _client.SendTextMessageAsync(message.Chat.Id, $"Language updated: {languageSelected.GetDescription()}");
        }
        else
        {
            var algorithmSelectedString = callbackQuery.Data.Split(".")[1];

            var algorithmSelected = Enum.GetValues(typeof(GrammarAlgorithms)).Cast <GrammarAlgorithms>().First(v => v.ToString() == algorithmSelectedString);

            chatConfig.GrammarAlgorithm = algorithmSelected;

            await _client.SendTextMessageAsync(message.Chat.Id, $"Algorithm updated: {algorithmSelected.GetDescription()}");
        }

        await _chatConfigurationService.Update(chatConfig);

        // Fire and forget
        _ = _client.DeleteMessageAsync(callbackQuery.Message.Chat.Id, callbackQuery.Message.MessageId);
    }
コード例 #22
0
ファイル: InlineHandler.cs プロジェクト: bcmmunity/Evect
        public async Task OnAnsweringOnSurvey(ApplicationContext context, CallbackQuery query, TelegramBotClient client)
        {
            int    mark       = Convert.ToInt32(query.Data.Split('-')[1]);
            int    questionId = Convert.ToInt32(query.Data.Split('-')[2]);
            var    chatID     = query.From.Id;
            Answer answer     = new Answer();

            answer.AnswerMark = mark;
            answer.TelegramId = chatID;
            answer.QuestionId = questionId;
            context.Answers.Add(answer);
            context.SaveChanges();
            TelegramInlineKeyboard inlineKeyboard = new TelegramInlineKeyboard();
            await client.EditMessageTextAsync(chatID, query.Message.MessageId,
                                              "Спасибо за ваш ответ!\nВы можете продолжить ваши действия");

            User user = context.Users.FirstOrDefault(n => n.TelegramId == chatID);
            await UserDB.ChangeUserAction(context, chatID, Actions.AdminMode);
        }
コード例 #23
0
        public static void GroupLang(CallbackQuery call, string[] args)
        {
            var chatid = long.Parse(args[1].Split('|')[0]);
            var grp    = Groups.FirstOrDefault(x => x.Id == chatid);

            if (args[1].Split('|')[1] == "abort")
            {
                Bot.AnswerCallback(call, "Aborted.");
                Bot.Edit(call.Message, "Aborted.");
                return;
            }

            var lang = Language.All.FirstOrDefault(x => x.Name == args[1].Split('|')[1]) ?? Language.English;

            grp.Language = lang;
            SQL.ChangeGroup(grp);
            Bot.AnswerCallback(call, "Language set: " + lang.Name);
            Bot.Edit(call.Message, Methods.GetString(lang, "LanguageSet") + " " + lang.Name);
        }
コード例 #24
0
        private Menu DeleteSession(CallbackQuery callback)
        {
            Menu menu;
            var  sessionId = SessionIdFromCallbackData(callback.data);
            var  session   = GetSessionById(sessionId);

            if (session == null)
            {
                menu = new NoMatchingSessionMenu(sessionId);
            }
            else
            {
                _sessions.Remove(session);
                _database.RemoveSession(session);
                menu = new DeleteSessionConfirmedMenu();
            }

            return(menu);
        }
コード例 #25
0
 private async Task OnCallbackQuery(CallbackQuery callbackQuery)
 {
     try
     {
         await _callbackQueryHandler.HandleCallbackQueryAsync(callbackQuery);
     }
     catch (UnsupportedCommand exception)
     {
         Log.Error(exception, "Got a CallbackQuery with unsupported command");
     }
     catch (UnsupportedMenuItem exception)
     {
         Log.Error(exception, "Got a CallbackQuery with unsupported item");
     }
     catch (MessageIsNotModifiedException exception)
     {
         Log.Error(exception, "Got a MessageIsNotModifiedException when tried to process CallbackQuery");
     }
 }
コード例 #26
0
ファイル: GetBoardQuery.cs プロジェクト: mcurasya/hackabot2
        protected override Response Run(CallbackQuery message, Account account, Dictionary <string, string> values)
        {
            int boardId = int.Parse(values["id"]);

            Console.WriteLine(boardId);
            try
            {
                var board = account.Controller.GetBoard(boardId);
                var text  = $@"Board: {board.Name}
Owner: {board.Owner?.Username}
{account.Controller.GetStatAboutBoard(board)}";
                return(new Response().EditTextMessage(account.ChatId, message.Message.MessageId, text, ManageBoard(board)));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(new Response().TextMessage(account.ChatId, "No such board"));
            }
        }
コード例 #27
0
        public void SeeAll(int userId, TelegramBotClient botClient, CallbackQuery callback)
        {
            botClient.SendTextMessageAsync(callback.Message.Chat.Id, "Список ваших сохр. сайтов:");
            var number = 0;

            foreach (var s in GetSites())
            {
                if (s.UserId == userId)
                {
                    number++;
                    botClient.SendTextMessageAsync(callback.Message.Chat.Id, $"{number}: {s.Name}");
                }
            }
            botClient.SendTextMessageAsync(callback.Message.Chat.Id, "Пароль к какому сайту вы хотите увидеть?");
            var sitesearch = new SiteSearch(botClient, GetSites());
            var site       = sitesearch.GetSite();

            botClient.SendTextMessageAsync(callback.Message.Chat.Id, $"{site.Name}   {site.Password}   {site.Url}");
        }
コード例 #28
0
        internal override async Task Execute(CallbackQuery message, TelegramBotClient client, UserInfo userInformation)
        {
            if (message.Data != null)
            {
                Registration_State_Machine.RegistrationState.DecipherRegistartionResult(message.Data,
                                                                                        out long pupilChatId, out bool resultRegistration);

                var user = await BalDbController.GetUserInformationAsync(pupilChatId);

                if (user.IsRegistred == true) //-V3080
                {
                    return;
                }

                Registration_State_Machine.RegistrationState registration =
                    new Registration_State_Machine.RegistrationState(client, userInformation)
                {
                    StateRegistration = Registration_State_Machine.RegistrationStateMachine
                                        .WaitingForConfirmation
                };

                string messageCreator = resultRegistration == true
                    ? $"Користувач chatId: {pupilChatId} [{user.NameUser}](tg://user?id={pupilChatId}) додан до системи"
                    : $"Користувачеві chatId: {pupilChatId} [{user.NameUser}](tg://user?id={pupilChatId}) відмовлено";
                await client.SendTextMessageAsync(chatId : AppSettings.ChatIdCreator, text : messageCreator,
                                                  parseMode : ParseMode.Markdown);

                string messageAdmin = resultRegistration
                    ? $"Користувач: [{user.NameUser}](tg://user?id={pupilChatId}) додан до системи"
                    : $"Користувачеві: [{user.NameUser}](tg://user?id={pupilChatId}) відмовлено";
                await client.SendTextMessageAsync(chatId : userInformation.ChatId,
                                                  text : messageAdmin, ParseMode.Markdown);

                await registration.HandleStateRegistrationAsync(new Message()
                {
                    Text = resultRegistration.ToString(),
                    Chat = new Chat()
                    {
                        Id = pupilChatId
                    }
                });
            }
        }
コード例 #29
0
        protected override void OnCallbackQuery(CallbackQuery query)
        {
            var cbargs = query?.Data.Split(' ');

            switch (cbargs[0])
            {
            case "month":
                var month     = new Month((MonthName)Enum.Parse(typeof(MonthName), cbargs[2]), uint.Parse(cbargs[1]));
                var mkeyboard = new InlineKeyboardMarkup
                {
                    InlineKeyboard = Calendar.New(month)
                };
                Api.EditMessageReplyMarkup <Message>(new EditMessageReplyMarkup
                {
                    ChatId      = query.Message.Chat.Id,
                    MessageId   = query.Message.MessageId,
                    ReplyMarkup = mkeyboard
                });
                break;

            case "year":
                var ykeyboard = new InlineKeyboardMarkup
                {
                    InlineKeyboard = Calendar.New(uint.Parse(cbargs[1]))
                };
                Api.EditMessageReplyMarkup <Message>(new EditMessageReplyMarkup
                {
                    ChatId      = query.Message.Chat.Id,
                    MessageId   = query.Message.MessageId,
                    ReplyMarkup = ykeyboard
                });
                break;

            default:
                Api.AnswerCallbackQuery(new AnswerCallbackQueryArgs
                {
                    CallbackQueryId = query.Id,
                    Text            = query.Data,
                    ShowAlert       = true
                });
                break;
            }
        }
コード例 #30
0
        public async Task HandleCallbackQBlacklistMenu(CallbackQuery query, Service service)
        {
            var userSettings = await _dbWorker.FindUserSettingsAsync(query.From);

            if (userSettings == null)
            {
                return;
            }
            var labels = await Methods.GetLabelsList(service);

            var labelInfos = labels
                             .Where(l => (l.Type != "system") || CatergoriesLabels.List.Any(cl => cl.LabelId == l.Id))
                             .Select(l => new LabelInfo {
                Name = CatergoriesLabels.ReturnLabelName(l.Id) ?? l.Name, LabelId = l.Id
            });

            await
            _botActions.UpdateSettingsMenu(query.From, query.Message.MessageId, SettingsKeyboardState.BlackListMenu, SelectedOption.None, userSettings, null, labelInfos);
        }
コード例 #31
0
        public async void Execute(TelegramBotClient botClient, System.Object message, System.Object paris, DataBaseContext baseContext)
        {
            CallbackQuery _message = message as CallbackQuery;

            try
            {
                await botClient.EditMessageTextAsync
                (
                    _message.From.Id,
                    _message.Message.MessageId,
                    "Меню: ",
                    replyMarkup : inlineButton.StartSettingsFour
                );
            }
            catch (System.Exception ex)
            {
                System.Console.WriteLine("Exception: BackToSettingsFour : ICommandSettings - " + ex);
            }
        }