📄 phinvsprovider.cs
字号:
using System;
using System.Data;
using System.Data.Common;
using Epi.Data;
namespace Epi.Data.Services
{
/// <summary>
/// Providers an interface into PHIN vocabulary definitions database.
/// </summary>
public class PHINVSProvider
{
#region Fields
private IDbDriver db;
private static PHINVSProvider instance;
private static Object classLock = typeof(PHINVSProvider);
#endregion Fields
#region Constructors
//public PHINVSProvider()
// : this(DatabaseFactory.CreateDatabaseInstanceByConfiguredName(DatabaseFactory.KnownDatabaseNames.Phin))
//{
//}
//private PHINVSProvider(IDbDriver db)
//{
// this.db = db;
//}
private PHINVSProvider()
{
IDbDriverFactory dbFactory = DbDriverFactoryCreator.GetDbDriverFactory(Configuration.AccessDriver);
//this.db = DatabaseFactoryCreator.CreateDatabaseInstanceByConfiguredName(DatabaseFactoryCreator.KnownDatabaseNames.Phin);
this.db = dbFactory.CreateDatabaseObjectByConfiguredName(DbDriverFactoryCreator.KnownDatabaseNames.Phin);
}
#endregion Constructors
#region Public Properties
/// <summary>
/// Gets an instance of this singleton class
/// </summary>
public static PHINVSProvider Instance
{
get
{
lock (classLock)
{
if (instance == null)
{
instance = new PHINVSProvider();
}
return instance;
}
}
}
#endregion Public Properties
#region Protected Properties
/// <summary>
/// Gets or Sets the datatabase.
/// </summary>
protected virtual IDbDriver Db
{
get
{
return db;
}
set
{
db = value;
}
}
#endregion Protected Properties
#region Public Methods
/// <summary>
///
/// </summary>
/// <returns></returns>
//[Obsolete("Use of DataTable in this context is no different than the use of a multidimensional System.Object array (not recommended).", false)]
public DataTable GetDomains()
{
string queryString = " SELECT [Code], [Name] FROM DOMAINS ORDER BY [Name]";
Query query = Db.CreateQuery(queryString);
return Db.Select(query);
}
/// <summary>
///
/// </summary>
/// <param name="domainCode"></param>
/// <returns></returns>
//[Obsolete("Use of DataTable in this context is no different than the use of a multidimensional System.Object array (not recommended).", false)]
public DataTable GetValueSets(string domainCode)
{
string queryString = " SELECT [Code], [Name] FROM ValueSets V INNER JOIN ValueSets_Domains VD ON V.Code = VD.ValueSetCode Where [VD.DomainCode] = @DomainCode ORDER BY [Name]";
Query query = Db.CreateQuery(queryString);
query.Parameters.Add(new QueryParameter("@DomainCode", DbType.String, domainCode));
return Db.Select(query);
}
/// <summary>
///
/// </summary>
/// <param name="valueSetCode"></param>
/// <returns></returns>
//[Obsolete("Use of DataTable in this context is no different than the use of a multidimensional System.Object array (not recommended).", false)]
public DataTable GetConcepts(string valueSetCode)
{
try
{
string queryString = " SELECT [Code], [Name] FROM [" + valueSetCode + "] ORDER BY [Name] ";
Query query = Db.CreateQuery(queryString);
return Db.Select(query);
}
finally
{
}
}
#endregion Public Methods
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -