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
}
}