N
N
Ness2019-08-08 14:00:33
C++ / C#
Ness, 2019-08-08 14:00:33

How to bind inlinebuttons to database?

private  async void HandleCallBackQuery(CallbackQuery callBackQuery)
        {
            var Bot = new Telegram.Bot.TelegramBotClient(TOKEN);
            var postUrls = new List<string>();
            var postIds = new List<long>();
            var posts = Api.Wall.Get(new WallGetParams { Domain = "artifactgamer", Count = 1 });
            foreach (var item in posts.WallPosts)
            {
                var postUrl= item.PostSource.Uri.ToString();
                var postId = item.CopyPostId.Value;
                postUrls.Add(postUrl);
                postIds.Add(postId);
            }

            PostData postData = new PostData()
            {
                MessageId = callBackQuery.Message.MessageId,
                Post_url = postUrls.ToString(),
                PostId = postIds[0]
            };

            VoteData voteData = new VoteData()
            {
                PostDataId = postData.PostId,
                VoterId = callBackQuery.From.Id,
                LikedPost = false,
            };

            Bot.OnCallbackQuery += async (object sc, CallbackQueryEventArgs ev) =>
            {
                using (SQLiteConnection db = new SQLiteConnection("Data Source = DB.db", true))
                {

                    if (ev.CallbackQuery.Data == "post_id like")
                    {
                        await Bot.AnswerCallbackQueryAsync(ev.CallbackQuery.Id, "You have choosen " + ev.CallbackQuery.Data, true);
                    }
                    else if (ev.CallbackQuery.Data == "post_id dislike")
                    {
                        await Bot.AnswerCallbackQueryAsync(ev.CallbackQuery.Id); // отсылаем пустое, чтобы убрать "частики" на кнопке
                    }
                }
            };

            using (IDbConnection conn = new SQLiteConnection("Data Source=DB.db", true))
            {
                conn.Execute("INSERT into PostData(PostId, Post_url, MessageId)" +
               "VALUES (@PostId, @Post_url, @MessageId)", postData);
               conn.Execute("INSERT into VoteData(PostDataId, VoterId, LikedPost)" + 
               "VALUES (@PostDataId, @VoterId, @LikedPost)", voteData);
            }
        }

This is how I create buttons:
new [] {
new InlineKeyboardButton{Text = "",CallbackData = "post_id like"},
new InlineKeyboardButton{Text = "",CallbackData = "post_id dislike"},
}

I can’t figure out how to write likes and dislikes to the database now :/
Tell me plz

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question