You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							96 lines
						
					
					
						
							2.6 KiB
						
					
					
				
			
		
		
	
	
							96 lines
						
					
					
						
							2.6 KiB
						
					
					
				using KGIS.Framework.Utils; | 
						|
using System; | 
						|
using System.Collections.Generic; | 
						|
using System.Linq; | 
						|
using System.Text; | 
						|
using System.Threading.Tasks; | 
						|
using System.Xml.Serialization; | 
						|
 | 
						|
namespace Kingo.PluginServiceInterface.Model | 
						|
{ | 
						|
    public class LayerFieldCfg | 
						|
    { | 
						|
        public LayerFieldCfg() { Layers = new List<LayerInfo>(); } | 
						|
        public List<LayerInfo> Layers { get; set; } | 
						|
        public string ToXML() | 
						|
        { | 
						|
            try | 
						|
            { | 
						|
                string Str = SerializeAPI.SerializeToXML<LayerFieldCfg>(this); | 
						|
                return Str; | 
						|
            } | 
						|
            catch (Exception ex) | 
						|
            { | 
						|
                throw ex; | 
						|
            } | 
						|
        } | 
						|
        public LayerFieldCfg(string pFilePath) | 
						|
        { | 
						|
            LayerFieldCfg cfg = SerializeAPI.DeserializeToObject2<LayerFieldCfg>(pFilePath); | 
						|
            this.Layers = cfg.Layers; | 
						|
        } | 
						|
 | 
						|
    } | 
						|
    public class LayerInfo | 
						|
    { | 
						|
        [XmlAttribute("CfgName")] | 
						|
        public string CfgName { get; set; } | 
						|
        [System.Xml.Serialization.XmlIgnore] | 
						|
        private List<FieldCfg> _Fields; | 
						|
        [XmlElement(ElementName = "FieldCfg")] | 
						|
        public List<FieldCfg> Fields | 
						|
        { | 
						|
            get | 
						|
            { | 
						|
                if (_Fields != null) | 
						|
                { | 
						|
                    for (int i = 0; i < _Fields.Count; i++) | 
						|
                    { | 
						|
                        _Fields[i].ID = i + 1; | 
						|
                    } | 
						|
                } | 
						|
                return _Fields; | 
						|
            } | 
						|
            set | 
						|
            { | 
						|
                _Fields = value; | 
						|
            } | 
						|
        } | 
						|
        public LayerInfo() | 
						|
        { | 
						|
            Fields = new List<FieldCfg>(); | 
						|
        } | 
						|
        public List<FieldCfg> GetAllField() | 
						|
        { | 
						|
            List<FieldCfg> result = new List<FieldCfg>(); | 
						|
            if (_Fields != null) | 
						|
            { | 
						|
                for (int i = 0; i < _Fields.Count; i++) | 
						|
                { | 
						|
                    result.Add(_Fields[i]); | 
						|
                    if (_Fields[i].Fields.Count > 0) | 
						|
                    { | 
						|
                        result.AddRange(GetSubField(_Fields[i])); | 
						|
                    } | 
						|
                } | 
						|
            } | 
						|
            return result; | 
						|
        } | 
						|
        private List<FieldCfg> GetSubField(FieldCfg pField) | 
						|
        { | 
						|
            List<FieldCfg> result = new List<FieldCfg>(); | 
						|
            if (pField != null) | 
						|
            { | 
						|
                for (int i = 0; i < pField.Fields.Count; i++) | 
						|
                { | 
						|
                    result.Add(pField.Fields[i]); | 
						|
                    if (pField.Fields[i].Fields.Count > 0) | 
						|
                    { | 
						|
                        result.AddRange(GetSubField(pField.Fields[i])); | 
						|
                    } | 
						|
                } | 
						|
            } | 
						|
            return result; | 
						|
        } | 
						|
    } | 
						|
}
 | 
						|
 |