79 lines
2.0 KiB
C#
79 lines
2.0 KiB
C#
///
|
|
/// Copyright (c) 2016 Sensus Metering Systems
|
|
///
|
|
using System;
|
|
using System.IO;
|
|
using System.Text;
|
|
using System.Xml.Serialization;
|
|
|
|
namespace ResultsBrowser
|
|
{
|
|
/// <summary>
|
|
/// Class to be serialized to an XML file...
|
|
/// Public members are filters / parts of a query.
|
|
/// </summary>
|
|
[XmlRootAttribute("Query")]
|
|
public class FiltersConfig
|
|
{
|
|
public string[] FilterID;
|
|
public string[] FilterData;
|
|
|
|
[XmlIgnore]
|
|
public int FiltersCount { get { return Math.Min((FilterID != null) ? FilterID.Length : 0,
|
|
(FilterData != null) ? FilterData.Length : 0); } }
|
|
|
|
|
|
public FiltersConfig()
|
|
{
|
|
}
|
|
|
|
public FiltersConfig(int count)
|
|
{
|
|
if (count > 0)
|
|
{
|
|
FilterID = new string[count];
|
|
FilterData = new string[count];
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Load public fields of this class from the XML file.
|
|
/// </summary>
|
|
public static FiltersConfig Load(string fileName)
|
|
{
|
|
try
|
|
{
|
|
using (TextReader reader = new StreamReader(fileName))
|
|
{
|
|
FiltersConfig ls = (new XmlSerializer(typeof(FiltersConfig))).Deserialize(reader) as FiltersConfig;
|
|
// Copy the settings just in case De-serialize() completes OK
|
|
return ls;
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
string msg = e.Message;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Save public fields of this class to the XML file.
|
|
/// </summary>
|
|
public void Save(string fileName)
|
|
{
|
|
try
|
|
{
|
|
using (TextWriter writer = new StreamWriter(fileName))
|
|
{
|
|
(new XmlSerializer(typeof(FiltersConfig))).Serialize(writer, this);
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
string msg = e.Message;
|
|
}
|
|
}
|
|
}
|
|
}
|