コード例 #1
0
        private MessageWithButtons ParseMessageWithButtons(String MessageName)
        {
            var message = new MessageWithButtons();

            _settingsDocument = new XmlDocument();
            _settingsDocument.Load(_xmlFileName);
            XmlElement xRoot = _settingsDocument.DocumentElement;

            foreach (XmlNode xnode in xRoot)
            {
                // получаем атрибут name
                if (xnode.Attributes.Count > 0)
                {
                    XmlNode attr     = xnode.Attributes.GetNamedItem("name");
                    XmlNode attrType = xnode.Attributes.GetNamedItem("type");
                    if (attr != null && attrType != null)
                    {
                        if (attr.Value == MessageName)
                        {
                            List <Button> MessageButtons = new List <Button>();
                            foreach (XmlNode messageParams in xnode.ChildNodes)
                            {
                                if (messageParams.Name == "Text")
                                {
                                    message.Text = messageParams.InnerText;
                                }

                                if (messageParams.Name == "Buttons")
                                {
                                    foreach (XmlNode button in messageParams.ChildNodes)
                                    {
                                        Button CurrentButton = new Button();

                                        foreach (XmlNode buttonParams in button.ChildNodes)
                                        {
                                            if (buttonParams.Name == "Text")
                                            {
                                                CurrentButton.Text = buttonParams.InnerText;
                                            }
                                            if (buttonParams.Name == "Callback")
                                            {
                                                CurrentButton.Callback = buttonParams.InnerText;
                                            }
                                        }
                                        MessageButtons.Add(CurrentButton);
                                    }
                                }
                            }
                            message.Buttons = MessageButtons;
                        }
                    }
                }
            }
            return(message);
        }
コード例 #2
0
        public String ParsePreviewEvent(RLEvent rLEvent)
        {
            if (rLEvent.Label == null)
            {
                return(NoEventsFound().Text);
            }
            var message = new MessageWithButtons();

            _settingsDocument = new XmlDocument();
            _settingsDocument.Load(_xmlFileName);
            String     MarkedUpText = "";
            XmlElement xRoot        = _settingsDocument.DocumentElement;

            foreach (XmlNode xnode in xRoot)
            {
                if (xnode.Attributes.Count > 0)
                {
                    XmlNode attr     = xnode.Attributes.GetNamedItem("name");
                    XmlNode attrType = xnode.Attributes.GetNamedItem("type");
                    if (attr != null && attrType != null)
                    {
                        if (attr.Value == "EventBlockPreview")
                        {
                            List <Button> MessageButtons = new List <Button>();
                            foreach (XmlNode events in xnode.ChildNodes[0].ChildNodes)
                            {
                                XmlNode attrTypeEvent = events.Attributes.GetNamedItem("markup_type");
                                if (attr != null)
                                {
                                    if (events.Name == "Event" && attrTypeEvent.Value == rLEvent.MarkupType)
                                    {
                                        MarkedUpText = FormatMarkUp(events, rLEvent);
                                    }
                                }
                            }
                            message.Buttons = MessageButtons;
                        }
                    }
                }
            }
            return(MarkedUpText);
        }
コード例 #3
0
ファイル: BotInput.cs プロジェクト: CraneOfClubs/PennyBot
        private Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup BuildKeyboardFromMessage(MessageWithButtons message)
        {
            var buttonLayout = new Telegram.Bot.Types.InlineKeyboardButtons.InlineKeyboardButton[message.Buttons.Count][];
            int i            = 0;

            for (i = 0; i < message.Buttons.Count; ++i)
            {
                buttonLayout[i] = new[] { new Telegram.Bot.Types.InlineKeyboardButtons.InlineKeyboardCallbackButton(message.Buttons[i].Text, message.Buttons[i].Callback) };
            }
            return(new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(buttonLayout));
        }