using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using Vrh.XmlProcessing;
namespace Vrh.OneReport
{
///
/// A OneReport xml-ben a "General"-ben megadott helyen a "AutoPurge" elemet reprezentálja.
///
public class AutoPurgeElement : XmlLinqBase
{
#region Constants
///
/// AutoPurge Timout alapértelmezett értéke
///
public const int DEFAULT_TIMOUT = 300;
///
/// AutoPurge tmp folder alapértelmezett értéke
///
public const string DEFAULT_TMPFOLDER = "";
#endregion Constants
#region AttributeNames static class
///
/// Az XML fájlban ilyen attribútum nevek találhatóak egy "general.Timout" elemben.
///
public static class AttributeNames
{
///
/// 'TmpFolder' attribútum név.
///
public const string TMPFOLDER = "TmpFolder";
///
/// 'Timeout' attributum név.
///
public const string TIMEOUT = "Timeout";
}
#endregion AttributeNames static class
#region Properties
///
/// Auto purge timeout érték másodpercben.
/// Alapértelmezett értéke: 60
///
public int Timeout { get; set; } = DEFAULT_TIMOUT;
///
/// Ideiglenes fileok tárolási mappája
///
public string TmpFolder { get; set; } = DEFAULT_TMPFOLDER;
#endregion Properties
#region Constructors
///
/// Alapértelmezett konstructor
///
public AutoPurgeElement()
{
this.TmpFolder = DEFAULT_TMPFOLDER;
this.Timeout = DEFAULT_TIMOUT;
}
///
/// Konstruktor az XElement feldolgozásával.
///
/// Egy "AutoPurge" XElement.
/// Az éppen érvényes alapértelmezés.
public AutoPurgeElement(XElement xelement=null, AutoPurgeElement defaultAutoPurge = null)
{
if (defaultAutoPurge == null) { defaultAutoPurge = new AutoPurgeElement(); }
if (xelement != null)
{
this.TmpFolder = GetValue(xelement.Attribute(AttributeNames.TMPFOLDER), defaultAutoPurge.TmpFolder);
this.Timeout= GetValue(xelement.Attribute(AttributeNames.TIMEOUT), defaultAutoPurge.Timeout);
}
else
{
this.TmpFolder = defaultAutoPurge.TmpFolder;
this.Timeout = defaultAutoPurge.Timeout;
}
}
#endregion Constructors
}
}