|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ReflectionStudio.Core.Helpers;
using System.IO;
using ReflectionStudio.Core.FileManagement;
using System.Reflection;
using ReflectionStudio.Core.Events;
using System.Xml.Serialization;
namespace ReflectionStudio.Core.Database
{
public class QueryManager
{
private List<Query> _Queries = null;
internal List<Query> Queries
{
get { return _Queries; }
set { _Queries = value; }
}
public QueryManager(string strAssembly, string strResName)
{
ReadQueryResources(strAssembly, strResName);
}
/// <summary>
/// When no version specified, return the most recent query
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public string GetQuery(string key)
{
return (from q in Queries
where q.Key == key && q.Version == Queries.Max(v => v.Version)
select q).First().Content;
}
/// <summary>
///
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public string GetQuery(string key, string version)
{
return (from q in Queries
where q.Key == key && q.Version == version.ToString()
select q).First().Content;
//return Queries.Find(p => p.Key == key && p.Version == version.ToString() ).Content;
}
private void ReadQueryResources(string strAssembly, string strResName)
{
Stream resourceStream = null;
try
{
resourceStream = new ResourceHelper().ReadResourceAsStream(strAssembly, strResName);
if (resourceStream != null)
_Queries = ((Queries)SerializeHelper.Deserialize(resourceStream, typeof(Queries), true)).ListOfQuery;
}
catch (Exception Error)
{
}
finally
{
if( resourceStream != null )
resourceStream.Close();
}
}
}
[Serializable]
public class Queries
{
public List<Query> ListOfQuery { get; set; }
}
[Serializable]
public class Query
{
[XmlAttribute]
public string Key { get; set; }
[XmlAttribute]
public string Version { get; set; }
public string Content { get; set; }
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
WPF and MVVM fan, I practice C # in all its forms from the beginning of the NET Framework without mentioning C ++ / MFC and other software packages such as databases, ASP, WCF, Web & Windows services, Application, and now Core and UWP.
In my wasted hours, I am guilty of having fathered C.B.R. and its cousins C.B.R. for WinRT and UWP on the Windows store.
But apart from that, I am a great handyman ... the house, a rocket stove to heat the jacuzzi and the last one: a wood oven for pizza, bread, and everything that goes inside
https://guillaumewaser.wordpress.com/
https://fouretcompagnie.wordpress.com/