www.pudn.com > Fetion.rar > LogHeader.cs


namespace Imps.Client.Logger 
{ 
    using System; 
    using System.Collections.Generic; 
    using System.IO; 
    using System.Text; 
    using System.Xml; 
 
    public class LogHeader 
    { 
        private AppEnvironment _appEnv = new AppEnvironment(); 
        private string _ExtData = string.Empty; 
        private MachineEnvironment _MachineEnv = new MachineEnvironment(); 
        private DateTime _TimeStamp; 
        private string _Version = string.Empty; 
 
        internal LogHeader() 
        { 
        } 
 
        public byte[] ToArray() 
        { 
            using (MemoryStream stream = new MemoryStream()) 
            { 
                XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8); 
                writer.Formatting = Formatting.Indented; 
                writer.WriteStartElement("LogHeader"); 
                writer.WriteStartElement("TimeStamp"); 
                writer.WriteString(DateTime.Now.ToString()); 
                writer.WriteEndElement(); 
                if (!string.IsNullOrEmpty(this.Version)) 
                { 
                    writer.WriteStartElement("Version"); 
                    writer.WriteString(this.Version); 
                    writer.WriteEndElement(); 
                } 
                writer.WriteStartElement("MachineEnv"); 
                if (!string.IsNullOrEmpty(this.MachineEnv.OS)) 
                { 
                    writer.WriteStartElement("OS"); 
                    writer.WriteString(this.MachineEnv.OS); 
                    writer.WriteEndElement(); 
                } 
                if (!string.IsNullOrEmpty(this.MachineEnv.Language)) 
                { 
                    writer.WriteStartElement("Language"); 
                    writer.WriteString(this.MachineEnv.Language); 
                    writer.WriteEndElement(); 
                } 
                if (!string.IsNullOrEmpty(this.MachineEnv.IE)) 
                { 
                    writer.WriteStartElement("IE"); 
                    writer.WriteString(this.MachineEnv.IE); 
                    writer.WriteEndElement(); 
                } 
                if (this.MachineEnv.MemorySize != 0) 
                { 
                    writer.WriteStartElement("MemorySize"); 
                    writer.WriteString(this.MachineEnv.MemorySize.ToString()); 
                    writer.WriteEndElement(); 
                } 
                if (this.MachineEnv.IpList.Count > 0) 
                { 
                    writer.WriteStartElement("IpList"); 
                    foreach (string str in this.MachineEnv.IpList) 
                    { 
                        writer.WriteStartElement("Ip"); 
                        writer.WriteString(str); 
                        writer.WriteEndElement(); 
                    } 
                    writer.WriteEndElement(); 
                } 
                if (this.MachineEnv.OwnerGroups.Count > 0) 
                { 
                    writer.WriteStartElement("OwnerGroups"); 
                    foreach (string str2 in this.MachineEnv.OwnerGroups) 
                    { 
                        writer.WriteStartElement("Group"); 
                        writer.WriteString(str2); 
                        writer.WriteEndElement(); 
                    } 
                    writer.WriteEndElement(); 
                } 
                writer.WriteEndElement(); 
                writer.WriteStartElement("AppEnv"); 
                if (!string.IsNullOrEmpty(this.AppEnv.AppName)) 
                { 
                    writer.WriteStartElement("AppName"); 
                    writer.WriteString(this.AppEnv.AppName); 
                    writer.WriteEndElement(); 
                } 
                if (!string.IsNullOrEmpty(this.AppEnv.Version)) 
                { 
                    writer.WriteStartElement("AppVerion"); 
                    writer.WriteString(this.AppEnv.Version); 
                    writer.WriteEndElement(); 
                } 
                if (this.AppEnv.Modules.Count > 0) 
                { 
                    writer.WriteStartElement("Modules"); 
                    foreach (string str3 in this.AppEnv.Modules) 
                    { 
                        writer.WriteStartElement("Module"); 
                        writer.WriteString(str3); 
                        writer.WriteEndElement(); 
                    } 
                    writer.WriteEndElement(); 
                } 
                writer.WriteEndElement(); 
                if (!string.IsNullOrEmpty(this.ExtData)) 
                { 
                    writer.WriteStartElement("ExtData"); 
                    writer.WriteCData(this.ExtData); 
                    writer.WriteEndElement(); 
                } 
                writer.WriteEndElement(); 
                writer.Flush(); 
                return stream.ToArray(); 
            } 
        } 
 
        public override string ToString() 
        { 
            return Encoding.UTF8.GetString(this.ToArray()); 
        } 
 
        public AppEnvironment AppEnv 
        { 
            get 
            { 
                return this._appEnv; 
            } 
        } 
 
        public string ExtData 
        { 
            get 
            { 
                return this._ExtData; 
            } 
            set 
            { 
                this._ExtData = value; 
            } 
        } 
 
        public MachineEnvironment MachineEnv 
        { 
            get 
            { 
                return this._MachineEnv; 
            } 
        } 
 
        public DateTime TimeStamp 
        { 
            get 
            { 
                return this._TimeStamp; 
            } 
            set 
            { 
                this._TimeStamp = value; 
            } 
        } 
 
        public string Version 
        { 
            get 
            { 
                return this._Version; 
            } 
            set 
            { 
                this._Version = value; 
            } 
        } 
 
        public class AppEnvironment 
        { 
            private List _modules = new List(); 
            private string _name = string.Empty; 
            private string _version = string.Empty; 
 
            internal AppEnvironment() 
            { 
            } 
 
            public string AppName 
            { 
                get 
                { 
                    return this._name; 
                } 
                set 
                { 
                    this._name = value; 
                } 
            } 
 
            public List Modules 
            { 
                get 
                { 
                    return this._modules; 
                } 
                set 
                { 
                    this._modules = value; 
                } 
            } 
 
            public string Version 
            { 
                get 
                { 
                    return this._version; 
                } 
                set 
                { 
                    this._version = value; 
                } 
            } 
        } 
 
        public class MachineEnvironment 
        { 
            private string _HostName; 
            private string _IE = string.Empty; 
            private List _IpList = new List(); 
            private string _Language = string.Empty; 
            private uint _MemorySize; 
            private string _OS = string.Empty; 
            private List _OwnerGroups = new List(); 
            private string _VideoCard = string.Empty; 
 
            internal MachineEnvironment() 
            { 
            } 
 
            public string HostName 
            { 
                get 
                { 
                    return this._HostName; 
                } 
                set 
                { 
                    this._HostName = value; 
                } 
            } 
 
            public string IE 
            { 
                get 
                { 
                    return this._IE; 
                } 
                set 
                { 
                    this._IE = value; 
                } 
            } 
 
            public List IpList 
            { 
                get 
                { 
                    return this._IpList; 
                } 
            } 
 
            public string Language 
            { 
                get 
                { 
                    return this._Language; 
                } 
                set 
                { 
                    this._Language = value; 
                } 
            } 
 
            public uint MemorySize 
            { 
                get 
                { 
                    return this._MemorySize; 
                } 
                set 
                { 
                    this._MemorySize = value; 
                } 
            } 
 
            public string OS 
            { 
                get 
                { 
                    return this._OS; 
                } 
                set 
                { 
                    this._OS = value; 
                } 
            } 
 
            public List OwnerGroups 
            { 
                get 
                { 
                    return this._OwnerGroups; 
                } 
                set 
                { 
                    this._OwnerGroups = value; 
                } 
            } 
 
            public string VideoCard 
            { 
                get 
                { 
                    return this._VideoCard; 
                } 
                set 
                { 
                    this._VideoCard = value; 
                } 
            } 
        } 
    } 
}