📄 metadatadbprovider.cs
字号:
"FROM metaViews V INNER JOIN metaPages P ON V.[ViewId] = P.[ViewId] " +
"ORDER BY V.[Name], P.[Position]");
return db.Select(query);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve page", ex);
}
}
*/
/// <summary>
/// Gets all pages belonging to a view
/// </summary>
/// <param name="viewId">Id of the view</param>
/// <returns>Datatable containing page info</returns>
public DataTable GetPagesForView(int viewId)
{
try
{
#region Input Validation
if (viewId < 1)
{
throw new ArgumentOutOfRangeException("ViewId");
}
#endregion
Query query = db.CreateQuery("SELECT [PageId], [ViewId], [Name], [Position], [CheckCodeBefore], [CheckCodeAfter] " +
"FROM metaPages " +
"WHERE [ViewId] = @ViewId " +
"ORDER BY [Position] ASC");
query.Parameters.Add(new QueryParameter("@ViewId", DbType.Int32, viewId));
return db.Select(query);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve page", ex);
}
}
/// <summary>
/// Fetches the collection of pages of a view from metadata database.
/// </summary>
/// <param name="view"></param>
/// <returns></returns>
public virtual List<Page> GetViewPages(View view)
{
try
{
List<Page> pages = new List<Page>();
DataTable table = GetPagesForView(view.Id);
foreach (DataRow row in table.Rows)
{
pages.Add(new Page(row, view));
}
return (pages);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve page collection", ex);
}
}
/// <summary>
/// Gets a view's check code for the "Before" event
/// </summary>
/// <param name="viewID">Id of the view</param>
/// <returns>Datatable containing check code info</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 GetViewCheckCode_Before(int viewID)
{
try
{
#region Input Validation
if (viewID < 1)
{
throw new ArgumentOutOfRangeException("ViewId");
}
#endregion
Query query = db.CreateQuery("SELECT V.[ViewID], V.[Name], V.[CheckCodeBefore] " +
"FROM metaViews V " +
"WHERE V.[ViewId] = @ViewID");
query.Parameters.Add(new QueryParameter("@ViewID", DbType.Int32, viewID));
return db.Select(query);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve view's check code", ex);
}
}
/// <summary>
/// Gets a view's check code for the "After" event
/// </summary>
/// <param name="viewID">Id of the view</param>
/// <returns>Datatable containing check code info</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 GetViewCheckCode_After(int viewID)
{
try
{
#region Input Validation
if (viewID < 1)
{
throw new ArgumentOutOfRangeException("ViewId");
}
#endregion
Query query = db.CreateQuery("SELECT V.[ViewID], V.[Name], V.[CheckCodeAfter] " +
"FROM metaViews V " +
"WHERE V.[ViewId] = @ViewID");
query.Parameters.Add(new QueryParameter("@ViewID", DbType.Int32, viewID));
return db.Select(query);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve view's check code", ex);
}
}
/// <summary>
/// Gets a view's variable check code
/// </summary>
/// <param name="viewID">Id of the view</param>
/// <returns>Datatable containing variable check code info</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 GetCheckCodeVariableDefinition(int viewID)
{
try
{
#region Input Validation
if (viewID < 1)
{
throw new ArgumentOutOfRangeException("ViewId");
}
#endregion
Query query = db.CreateQuery("SELECT V.[ViewID], V.[Name], V.[CheckCodeVariableDefinitions] " +
"FROM metaViews V " +
"WHERE V.[ViewID] = @ViewID");
query.Parameters.Add(new QueryParameter("@ViewID", DbType.Int32, viewID));
return db.Select(query);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve check code variables", ex);
}
}
/// <summary>
/// Gets a view's record check code for the "Before" event
/// </summary>
/// <param name="viewID">Id of the view</param>
/// <returns>Datatable containing record check code info</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 GetRecordCheckCode_Before(int viewID)
{
try
{
#region Input Validation
if (viewID < 1)
{
throw new ArgumentOutOfRangeException("ViewId");
}
#endregion
Query query = db.CreateQuery("SELECT V.[ViewID], V.[Name], V.[RecordCheckCodeBefore] " +
"FROM metaViews V " +
"WHERE v.[ViewID] = @ViewID");
query.Parameters.Add(new QueryParameter("@ViewID", DbType.Int32, viewID));
return db.Select(query);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve record check code", ex);
}
}
/// <summary>
/// Gets a FieldId based on a view name and a field name
/// </summary>
/// <param name="viewName">Name of the view</param>
/// <param name="fieldName">Name of the field</param>
/// <returns>Id of the control</returns>
public DataRow GetFieldByNameAsDataRow(string viewName, string fieldName)
{
try
{
Query query = db.CreateQuery("SELECT [FieldId] FROM (metaFields f INNER JOIN metaViews v ON v.[ViewId] = f.[ViewId]) WHERE v.[Name] = @ViewName AND f.[Name] = @FieldName");
query.Parameters.Add(new QueryParameter("@ViewName", DbType.String, viewName));
query.Parameters.Add(new QueryParameter("@FieldName", DbType.String, fieldName));
DataTable dt = db.Select(query);
if (dt.Rows.Count == 0)
{
throw new GeneralException("Field not found");
}
return dt.Rows[0];
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve control based on view and field name", ex);
}
}
/// <summary>
/// Gets a view object based on view id
/// </summary>
/// <param name="viewId">Id of the view</param>
/// <returns>A view object</returns>
public View GetViewById(int viewId)
{
try
{
Query query = db.CreateQuery("SELECT [ViewId], [Name], [CheckCodeBefore], [CheckCodeAfter], [RecordCheckCodeBefore], [RecordCheckCodeAfter], [CheckCodeVariableDefinitions], [IsRelatedView] " +
"FROM metaViews " +
"WHERE [ViewId] = @ViewId");
query.Parameters.Add(new QueryParameter("@ViewId", DbType.Int32, viewId));
DataTable results = db.Select(query);
if (results.Rows.Count > 0)
{
return new View(results.Rows[0], Project);
}
else
{
return null;
}
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve view", ex);
}
}
/// <summary>
/// Gets a view's record check code for the "After" event
/// </summary>
/// <param name="viewID">Id of the view</param>
/// <returns>Datatable containing record check code info</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 GetRecordCheckCode_After(int viewID)
{
try
{
#region Input Validation
if (viewID < 1)
{
throw new ArgumentOutOfRangeException("ViewId");
}
#endregion
Query query = db.CreateQuery("SELECT V.[ViewID], V.[Name], V.[RecordCheckCodeAfter] " +
"FROM metaViews V " +
"WHERE v.[ViewID] = @ViewID");
query.Parameters.Add(new QueryParameter("@ViewID", DbType.Int32, viewID));
return db.Select(query);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve record check code", ex);
}
}
/// <summary>
/// Gets a page's check code for the "Before" event
/// </summary>
/// <param name="pageID">Id of the page</param>
/// <returns>Datatable containing page check code info</returns>
public DataTable GetPageCheckCode_Before(int pageID)
{
try
{
#region Input Validation
if (pageID < 1)
{
throw new ArgumentOutOfRangeException("PageId");
}
#endregion
Query query = db.CreateQuery("SELECT P.[PageID], P.[Name], P.[CheckCodeBefore] " +
"FROM metaPages P " +
"WHERE P.[PageID] = @PageID");
query.Parameters.Add(new QueryParameter("@PageID", DbType.Int32, pageID));
return db.Select(query);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve page check code", ex);
}
}
/// <summary>
/// Gets a page's check code for the "After" event
/// </summary>
/// <param name="pageID">Id of the page</param>
/// <returns>Datatable containing page check code info</returns>
public DataTable GetPageCheckCode_After(int pageID)
{
try
{
#region Input Validation
if (pageID < 1)
{
throw new ArgumentOutOfRangeException("PageId");
}
#endregion
Query query = db.CreateQuery("SELECT P.[PageID], P.[Name], P.[CheckCodeAfter] " +
"FROM metaPages P " +
"WHERE P.[PageID] = @PageID");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -