📄 metadataxmlprovider.cs
字号:
{
throw new GeneralException("Layer not found");
}
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve layer", ex);
}
}
/// <summary>
/// Adds a layer to a map using default parameters
/// </summary>
/// <param name="mapId">Map Id</param>
/// <param name="layerId">Layer Id</param>
public void AddLayerToMap(int mapId, int layerId)
{
try
{
Query query = db.CreateQuery("INSERT INTO metaMapLayers ([MapId], [LayerId], [LayerRenderTypeId]) VALUES (@MapId, @LayerId, @LayerRenderTypeId)");
query.Parameters.Add(new QueryParameter("@MapId", DbType.Int32, mapId));
query.Parameters.Add(new QueryParameter("@LayerId", DbType.Int32, layerId));
query.Parameters.Add(new QueryParameter("@LayerRenderTypeId", DbType.Int32, 1));
db.ExecuteNonQuery(query);
}
catch (Exception ex)
{
throw new GeneralException("Could not add layer", ex);
}
}
/// <summary>
/// Gets all field types for grid columns
/// </summary>
/// <returns>Datatable containing field type info</returns>
public DataTable GetGridFieldTypes()
{
try
{
Query query = db.CreateQuery("SELECT F.[FieldTypeId], D.[DataTypeId], F.[Name], D.[HasPattern], D.[HasSize], F.[HasRepeatLast], F.[HasRequired], F.[HasReadOnly], F.[HasRetainImageSize], D.[HasRange], F.[HasFont], F.[IsGridColumn], F.[IsDropDown] " +
"FROM metaFieldTypes F LEFT OUTER JOIN metaDatatypes D ON F.[DataTypeId] = D.[DataTypeId] " +
"WHERE F.[IsGridColumn] = @IsGridColumn");
query.Parameters.Add(new QueryParameter("@IsGridColumn", System.Data.DbType.Boolean, true));
return db.Select(query);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve field types", ex);
}
}
/// <summary>
/// Gets all groups for a page
/// </summary>
/// <param name="pageId">Id of the page</param>
/// <returns>Datatable containing group info</returns>
public DataTable GetGroupsForPage(int pageId)
{
try
{
#region Input Validation
if (pageId < 1)
{
throw new ArgumentOutOfRangeException("PageId");
}
#endregion
Query query = db.CreateQuery("SELECT [GroupId], [Name], [Title], [TopPositionPercentage], [LeftPositionPercentage], [HeightPercentage], [WidthPercentage], [BackgroundColor] " +
"FROM metaGroups " +
"WHERE PageId = @PageId");
query.Parameters.Add(new QueryParameter("@PageId", DbType.Int32, pageId));
return db.Select(query);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve group", ex);
}
}
public NamedObjectCollection<FieldGroup> GetFieldGroups(Page page)
{
try
{
NamedObjectCollection<FieldGroup> groups = new NamedObjectCollection<FieldGroup>();
DataTable table = GetGroupsForPage(page.Id);
foreach (DataRow row in table.Rows)
{
groups.Add(new FieldGroup(row, page));
}
return (groups);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve field groups", ex);
}
}
public DataTable GetPatterns()
{
try
{
Query query = db.CreateQuery("SELECT [PatternId], [DataTypeId], [Expression], [Mask], [FormattedExpression] " +
"FROM metaPatterns ");
return db.Select(query);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve patterns", ex);
}
}
public DataTable GetTextFieldsForPage(int viewId, int pageId)
{
try
{
#region Input Validation
if (viewId < 1)
{
throw new ArgumentOutOfRangeException("ViewId");
}
if (pageId < 1)
{
throw new ArgumentOutOfRangeException("PageId");
}
#endregion
Query query = db.CreateQuery("SELECT [Name], [FieldId] " +
"FROM metaFields " +
"WHERE [PageId] = @pageID AND [FieldTypeId] IN (1,3,4) " +
" AND [ViewId] = @viewID " +
"ORDER BY [Name]");
query.Parameters.Add(new QueryParameter("@pageID", DbType.Int32, pageId));
query.Parameters.Add(new QueryParameter("@viewID", DbType.Int32, viewId));
return db.Select(query);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve text fields for a page.", ex);
}
}
/// <summary>
/// Get the tab order for fields on a page
/// </summary>
/// <param name="pageId">The page Id</param>
/// <returns>A data table containing tab order info</returns>
public DataSets.TabOrders.TabOrderDataTable GetTabOrderForFields(int pageId)
{
try
{
#region Input Validation
if (pageId < 1)
{
throw new ArgumentOutOfRangeException("PageId");
}
#endregion
Query query = db.CreateQuery("SELECT [FieldId],[Name],[PromptText], [TabIndex],[HasTabStop] " +
"FROM metaFields " +
"WHERE [PageId] = @pageID AND [FieldTypeId] NOT IN (2,15,21) " +
"ORDER BY [TabIndex]");
query.Parameters.Add(new QueryParameter("@pageID", DbType.Int32, pageId));
DataTable table = db.Select(query);
DataSets.TabOrders tabOrders = new TabOrders();
tabOrders.TabOrder.Merge(table);
return tabOrders.TabOrder;
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve text fields for a page.", ex);
}
}
///// <summary>
///// Gets the tab index for a field name in metaFields
///// </summary>
///// <param name="viewId">The Id of the view</param>
///// <param name="fieldName">The field name in MetaFields</param>
///// <returns></returns>
//public int GetColumnTabIndex(int viewId, string fieldName)
//{
// try
// {
// #region Input Validation
// if (viewId < 0)
// {
// throw new ArgumentOutOfRangeException("View ID");
// }
// if (string.IsNullOrEmpty(fieldName))
// {
// throw new ArgumentNullException("Field Name");
// }
// #endregion //Input Validation
// DbQuery query = db.CreateQuery("SELECT [TabIndex] FROM metaFields WHERE [ViewId] = @viewId And [Name] = @FieldName");
// query.Parameters.Add(new DbParameter("@viewId", DbType.Int32, viewId));
// query.Parameters.Add(new DbParameter("@fieldName", DbType.String, fieldName));
// return (int)db.ExecuteScalar(query);
// }
// catch (Exception ex)
// {
// throw new GeneralException("Could not retrieve tab index for a column", ex);
// }
//}
///// <summary>
/////
///// </summary>
///// <param name="viewID"></param>
///// <param name="fieldName"></param>
///// <returns></returns>
//public bool FieldExists(int viewID, string fieldName)
//{
// try
// {
// #region Input Validation
// if (viewID < 1)
// {
// throw new ArgumentOutOfRangeException("ViewId");
// }
// if (string.IsNullOrEmpty(fieldName))
// {
// throw new ArgumentNullException("Field Name");
// }
// #endregion
// DbQuery query = db.CreateQuery("SELECT F.[Name] " +
// "FROM (metaViews V INNER JOIN metaPages P ON V.[ViewId] = P.[ViewId]) INNER JOIN metaFields F ON P.[PageId] = F.[PageId] " +
// "WHERE V.[ViewID] = @ViewID AND " +
// "F.[Name] = @FieldName") ;
// query.Parameters.Add(new DbParameter("@ViewID", DbType.Int32, viewID));
// query.Parameters.Add(new DbParameter("@FieldName", DbType.String, fieldName));
// DataTable result = db.Select(query);
// if (result.Rows.Count == 0)
// {
// return (false);
// }
// else
// {
// return (true);
// }
// }
// catch (Exception ex)
// {
// throw new GeneralException("Could not retrieve field names.", ex);
// }
//}
public virtual DataTable GetNonViewTablesAsDataTable()
{
try
{
DataRow dataRow;
DataTable tables = db.GetTableSchema(); //now GetTableSchema only gets user tables /zack 1/30/08
DataTable viewsAndTables = new DataTable("ViewsAndTables");
viewsAndTables.Columns.Add(ColumnNames.NAME);
DataRow[] rows = tables.Select("TABLE_NAME not like 'meta%'");
foreach (DataRow row in rows)
{
string tableName = row["Table_Name"].ToString();
//if (!tableName.ToLower().StartsWith("sys")) //This probably only works with Microsoft database, zack 1/29/08
//{
dataRow = viewsAndTables.NewRow();
dataRow[ColumnNames.NAME] = tableName;
viewsAndTables.Rows.Add(dataRow);
//}
}
return (viewsAndTables);
}
catch (Exception ex)
{
throw new GeneralException("Could not retrieve Views and Tables.", ex);
}
}
/// <summary>
/// Gets a view object based on view name
/// </summary>
/// <param name="viewFullName">Name of the view</param>
/// <returns>A view object</returns>
public View GetViewByFullName(string viewFullName)
{
#region Input Validation
if (string.IsNullOrEmpty(viewFullName))
{
throw new ArgumentNullException("View Full Name");
}
#endregion
try
{
string viewName = viewFullName.Substring(viewFullName.LastIndexOf(":") + 1);
Query query = db.CreateQuery("SELECT [ViewId], [Name],[CheckCodeBefore], [CheckCodeAfter], [RecordCheckCodeBefore], [RecordCheckCodeAfter], [CheckCodeVariableDefinitions], [IsRelatedView] " +
"FROM metaViews " +
"WHERE [Name] = @ViewName");
query.Paramet
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -