⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 metadataxmlprovider.cs

📁 EpiInfo 开源的导航系统远程序,不知道在哪里下的了,分享一下,有兴趣的
💻 CS
📖 第 1 页 / 共 5 页
字号:
                {
                    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 + -