Exemplo n.º 1
0
        private void OnMessageReceived(string sender, string message)
        {
            if (string.IsNullOrEmpty(message))
            {
                return;
            }

            using (var reader = new StringReader(message))
            {
                var nav = new XPathDocument(reader).CreateNavigator();
                foreach (XPathNavigator actionNode in nav.Select(ActionsExpr))
                {
                    if (actionNode.Name.Equals("uiElementActionRef", StringComparison.InvariantCultureIgnoreCase))
                    {
                        var actionId = Guid.Parse(actionNode.GetAttribute("Id", string.Empty));
                        var data     = actionNode.Value;

                        Guid pluginId;
                        Guid.TryParse(actionNode.GetAttribute("PluginId", string.Empty), out pluginId);

                        _pluginManager.ExecuteAction(actionId, !Guid.Empty.Equals(pluginId) ? (Guid?)pluginId : null, data);
                    }
                }
            }
        }