private static XmlDocument GetXml(EN_EventType type, EN_SubType nodeType)
        {
            XmlDocument doc;

            // get from cache
            if (Global.Cache.dicEventTemplates.ContainsKey(type))
            {
                doc = Global.Cache.dicEventTemplates[type];
            }
            else
            {
                doc = GetFullXml(type);
            }                           // Full document
            //
            var elem = doc.DocumentElement.SelectSingleNode(GetXmlNodeName(nodeType));

            // recreate full
            doc = new XmlDocument();
            // remove comments
            var content = new Regex(" < !--[\\w\\s]*-->|<!---->").Replace(elem.OuterXml, "");

            doc.LoadXml(content);
            // return rezult
            return(doc);
        }
 private static List <DTO_KeyItem> GetKeyList(EN_EventType type, EN_SubType nodeType)
 {
     return(GetXml(type, nodeType).DocumentElement       // get main element
            .SelectNodes("//key").Cast <XmlElement>()    // cast
            .Select(a => new DTO_KeyItem(a))             // get keyItem
            .Where(a => a.Enable).ToList());             // selecn active
 }
        private static string GetXmlNodeName(EN_SubType nodeType)
        {
            switch (nodeType)
            {
            case EN_SubType.Content: return("content");

            case EN_SubType.Thumbnail: return("thumbnail");

            case EN_SubType.Related: return("related");

            default: return("");
            }
        }
        private static XmlDocument GetXmlNameValue(List <DTO_KeyItem> keyItems, EN_EventType type, EN_SubType nodeType)
        {
            // get content
            XmlDocument doc = GetXml(type, nodeType);

            // fiil document
            foreach (XmlElement item in doc.SelectNodes("//key"))
            {
                // get keyItem
                var keyItem = keyItems.Where(a => a.Name == item.GetAttribute("name")).FirstOrDefault();
                item.SetAttribute("name", keyItem.Name);
                item.SetAttribute("value", keyItem.ValueString);
            }
            // return document
            return(doc);
        }