Example #1
0
        public static ExtensionData GetCurrentExtensionData(ExtensionType type)
        {
            ExtensionData extension = null;

            foreach (var e in PluginGruop.Singleton.ExtensionDatas)
            {
                if (e.Type == type)
                {
                    extension = e;
                }
            }
            return(extension);
        }
Example #2
0
        public static T LinkGroupExistValue <T>(ExtensionData extensionData, Func <ExtensionChildData, bool> funcWhere) where T : ExtensionChildData
        {
            T   result     = null;
            var existNodes = extensionData.ExtensionNodes.Where(funcWhere);

            if (existNodes.Count() > 0)
            {
                foreach (var data in existNodes)
                {
                    result = data as T;
                    break;
                }
            }
            return(result);
        }
Example #3
0
        public void Setup(XmlReader reader, ref ExtensionData extension)
        {
            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.EndElement && reader.LocalName.Equals("Extension"))
                {
                    break;
                }
                if (reader.NodeType == XmlNodeType.Element && reader.IsStartElement() && reader.LocalName.Equals("LinkGroup"))
                {
                    var existValue = ExtensionCheck.LinkGroupExistValue <LinkGroupData>
                                     (
                        extension,
                        node =>
                    {
                        var n = node as LinkGroupData;
                        if (n != null)
                        {
                            var name     = reader.GetAttribute("Name");
                            var groupKey = reader.GetAttribute("GroupKey") ?? string.Empty;
                            return(n.Name.Equals(name) && n.GroupKey.Equals(groupKey));
                        }
                        return(false);
                    }
                                     );
                    XmlLink link = new XmlLink();
                    if (existValue == null)
                    {
                        LinkGroupData linkGroup = new LinkGroupData();
                        linkGroup.Index       = Convert.ToInt32(reader.GetAttribute("Index"));
                        linkGroup.Name        = reader.GetAttribute("Name");
                        linkGroup.DisplayName = reader.GetAttribute("DisplayName");
                        linkGroup.IsTitleLink = Convert.ToBoolean(reader.GetAttribute("IsTitleLink"));
                        linkGroup.GroupKey    = reader.GetAttribute("GroupKey") ?? string.Empty;
                        linkGroup.Assembly    = extension.Assembly;
                        extension.ExtensionNodes.Add(linkGroup);
                        link.Setup(reader, ref linkGroup);
                    }
                    else
                    {
                        link.Setup(reader, ref existValue);
                    }

                    extension.ExtensionNodes.Sort((a, b) => a.Index.CompareTo(b.Index));
                }
            }
        }
Example #4
0
 public void Setup(XmlReader reader)
 {
     while (reader.Read())
     {
         if (reader.NodeType == XmlNodeType.Element && reader.IsStartElement() && reader.LocalName.Equals("Extension"))
         {
             var type     = ExtensionTypeManager.GetExtensionType(reader.GetAttribute("Type"));
             var assembly = reader.GetAttribute("Assembly");
             if (type == ExtensionType.LinkGroup)
             {
                 ExtensionData extension = ExtensionData.GetCurrentExtensionData(type);
                 extension.Assembly = assembly;
                 XmlLinkGroup linkGroup = new XmlLinkGroup();
                 linkGroup.Setup(reader, ref extension);
                 extension.Assembly = string.Empty;
             }
         }
     }
 }