using System.Xml.Linq; using VRH.Log4Pro.MultiLanguageManager; using Vrh.XmlProcessing; using System.Collections.Generic; using System.Linq; namespace Vrh.OneReport { /// /// A "DefaultFormat" elemet reprezentáló osztály. /// "General" és "Report" elemben is előfordul. /// public class PresetElement : XmlLinqBase { #region ElementNames static class public new class ElementNames : XmlLinqBase.ElementNames { /// /// 'CommonPresets' elem név. /// public const string PRESET = "Preset"; } #endregion ElementNames static class #region AttributeNames static class /// /// Az XML fájlban ilyen attribútum nevek találhatóak egy "Output" elemben. /// public static class AttributeNames { /// /// 'DisplayName' attribútum név. /// public const string DISPLAYNAME = "DisplayName"; /// /// 'Name' attribútum név. /// public const string ID = "Id"; } #endregion AttributeNames static class #region Properties /// /// Preset azonosítója. /// public string Id { get; set; } /// /// Preset megnevezése (leírása). /// public string DisplayName { get; set; } #endregion Properties #region Constructor /// /// Példány létrehozása egy XElement alapján. /// /// A "Preset" elem. public PresetElement(XElement xelement) { if (xelement != null) { this.Id = GetValue(AttributeNames.ID, xelement, "", true, true); this.DisplayName = GetValue(xelement.Attribute(AttributeNames.DISPLAYNAME), ""); } } #endregion Constructor #region PresetElementList static constructor /// /// Egy preset xml elemlistát tartalmazó xml elemből előállítja a PresetElement listát /// Ha nincs preset lista, akkor üres listával tér vissza /// /// /// public static List PresetElementList(XElement presetlistContainerXelement) { List rl = new List(); if (presetlistContainerXelement != null) { var presetsXmlList = presetlistContainerXelement.Elements(XName.Get(ElementNames.PRESET)).ToList(); if (presetsXmlList != null && presetsXmlList.Any()) { foreach (var presetXE in presetsXmlList) { rl.Add(new PresetElement(presetXE)); } } } return rl; } #endregion PresetElementList static constructor } }