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 = "Нет поста для отправки. Ожидание поста..." }); }