Esempio n. 1
0
        public async Task <MessagesSendParams> Send(long user_id, Message message, bool isUserWarned = false)
        {
            if (usersStateMap.ContainsKey(user_id))
            {
                State state = usersStateMap[user_id];
                if (!isUserWarned && (state.Tags == null || state.Tags.Count == 0))
                {
                    string warning = "Вы уверены, что хотите отправить пост без тэгов?";
                    return(new MessagesSendParams()
                    {
                        PeerId = message.PeerId,
                        RandomId = new Random().Next(),
                        Keyboard = Keyboards.AcceptOrDeclineKeyboardBuilder().Build(),
                        Message = warning
                    });
                }
                usersStateMap.Remove(user_id);
                int id = await _feedService.AddPost(state.PostData, state.Tags.ToArray());

                if (id != -1)
                {
                    string replyText = $"пост {id} добавлен с тэгами:\n" + string.Join("\n", state.Tags);
                    return(new MessagesSendParams()
                    {
                        PeerId = message.PeerId,
                        RandomId = new Random().Next(),
                        Keyboard = Keyboards.MainMenuKeyboardBuilder().Build(),
                        Message = replyText
                    });
                }
                return(new MessagesSendParams()
                {
                    PeerId = message.PeerId,
                    RandomId = new Random().Next(),
                    Keyboard = Keyboards.MainMenuKeyboardBuilder().Build(),
                    Message = "Возникла ошибка при добавлении поста или тэгов!"
                });
            }
            return(new MessagesSendParams()
            {
                PeerId = message.PeerId,
                RandomId = new Random().Next(),
                Keyboard = Keyboards.PostHandlingKeyboardBuilder().Build(),
                Message = "Нет поста для отправки. Ожидание поста..."
            });
        }