Пример #1
0
        public int GetElementNidByGID(string elementGID, MetaDataType metadataType)
        {
            int    RetVal        = 0;
            string Query         = string.Empty;
            string NIDColumnName = string.Empty;

            try
            {
                elementGID = DIQueries.RemoveQuotesForSqlQuery(elementGID);

                switch (metadataType)
                {
                case MetaDataType.Indicator:
                    Query         = this.DBQueries.Indicators.GetIndicator(FilterFieldType.GId, "'" + elementGID + "'", FieldSelection.NId);
                    NIDColumnName = Indicator.IndicatorNId;
                    break;

                case MetaDataType.Map:
                    Query         = this.DBQueries.Area.GetAreaMapLayer(DevInfo.Lib.DI_LibDAL.Queries.Area.Select.MapFilterFieldType.LayerName, "'" + elementGID + "'", FieldSelection.NId);
                    NIDColumnName = Area_Map_Layer.LayerNId;
                    break;

                case MetaDataType.Source:
                    Query         = this.DBQueries.Source.GetSource(FilterFieldType.Name, "'" + elementGID + "'", FieldSelection.NId, false);
                    NIDColumnName = IndicatorClassifications.ICNId;
                    break;

                //case MetaDataType.Sector:
                //    break;
                //case MetaDataType.Goal:
                //    break;
                //case MetaDataType.CF:
                //    break;
                //case MetaDataType.Theme:
                //    break;
                //case MetaDataType.Institution:
                //    break;
                //case MetaDataType.Convention:
                //    break;
                //case MetaDataType.IndicatorClassification:
                //    break;
                default:
                    break;
                }

                if (!string.IsNullOrEmpty(Query))
                {
                    foreach (DataRow Row in this.DBConnection.ExecuteDataTable(Query).Rows)
                    {
                        RetVal = Convert.ToInt32(Row[NIDColumnName]);
                        break;
                    }
                }
            }
            catch (Exception)
            {
                RetVal = 0;
            }
            return(RetVal);
        }
Пример #2
0
        /// <summary>
        /// Get subgroup Type Nid by  Name
        /// </summary>
        /// <returns> Nid</returns>
        private int GetSubgroupTypeByName(string name)
        {
            int    RetVal   = 0;
            string SqlQuery = string.Empty;

            try
            {
                SqlQuery = this.DBQueries.SubgroupTypes.GetSubgroupTypes(FilterFieldType.Name, "'" +
                                                                         DIQueries.RemoveQuotesForSqlQuery(name) + "'");
                RetVal = Convert.ToInt32(this.DBConnection.ExecuteScalarSqlQuery(SqlQuery));
            }
            catch (Exception)
            {
                RetVal = 0;
            }
            return(RetVal);
        }
Пример #3
0
        private void UpdateMetadataInfo(DIQueries queries, string targetNid, MetadataElementType categoryType, String metadataCategoryInfo)
        {
            switch (categoryType)
            {
            case MetadataElementType.Indicator:
                this._DBConnection.ExecuteNonQuery("update " + queries.TablesName.Indicator + " set " + Indicator.IndicatorInfo + "='" + DIQueries.RemoveQuotesForSqlQuery(metadataCategoryInfo) + "'where " + Indicator.IndicatorNId + "=" + targetNid);
                break;

            case MetadataElementType.Area:
                this._DBConnection.ExecuteNonQuery("update " + queries.TablesName.AreaMapMetadata + " set " + Area_Map_Metadata.MetadataText + "='" + DIQueries.RemoveQuotesForSqlQuery(metadataCategoryInfo) + "' where " + Area_Map_Layer.LayerNId + "=" + targetNid);
                break;

            case MetadataElementType.Source:
                this._DBConnection.ExecuteNonQuery("update " + queries.TablesName.IndicatorClassifications + " set " + IndicatorClassifications.ICInfo + "='" + DIQueries.RemoveQuotesForSqlQuery(metadataCategoryInfo) + "'where " + IndicatorClassifications.ICNId + "=" + targetNid);
                break;

            default:
                break;
            }
        }
Пример #4
0
        /// <summary>
        /// Retruns nid only if GID exists in the database
        /// </summary>
        /// <returns></returns>
        private int GetNidByGID(string GID)
        {
            string SqlQuery = string.Empty;
            int    RetVal   = 0;

            try
            {
                SqlQuery = this.DBQueries.Indicators.GetIndicator(FilterFieldType.GId, "'" + DIQueries.RemoveQuotesForSqlQuery(GID) + "'", FieldSelection.NId);
                RetVal   = Convert.ToInt32(this.DBConnection.ExecuteScalarSqlQuery(SqlQuery));
            }
            catch (Exception)
            {
                RetVal = 0;
            }
            return(RetVal);
        }
        /// <summary>
        /// Retruns nid only if name exists in the database
        /// </summary>
        /// <returns></returns>
        private int GetNidByName(string name, DIQueries dbQueries, string parentNId)
        {
            int    RetVal   = 0;
            string SqlQuery = string.Empty;

            try
            {
                SqlQuery = dbQueries.Metadata_Category.GetMetadataCategories(FilterFieldType.Name, "'" + DIQueries.RemoveQuotesForSqlQuery(name) + "'", parentNId);
                RetVal   = Convert.ToInt32(this.DBConnection.ExecuteScalarSqlQuery(SqlQuery));
            }
            catch (Exception)
            {
                RetVal = 0;
            }
            return(RetVal);
        }
        /// <summary>
        /// Imports all metadata categories from given source database to current database
        /// </summary>
        /// <param name="srcDBConnection"></param>
        /// <param name="srcDBQueries"></param>
        /// <param name="categoryType"></param>
        public void ImportAllMetadataCategories(DIConnection srcDBConnection, DIQueries srcDBQueries, MetadataElementType categoryType)
        {
            // import by GID. If GID exists then update existing category otherwise insert it into current database            // update process will update in current langauge but insert process will insert in all langauges

            DataTable SrcCategoryTable = null;
            DI7MetadataCategoryInfo SrcCategoryInfo = null;
            DataTable TrgCategoryTable     = null;
            int       TrgCategoryNid       = 0;
            int       TrgCategoryParentNid = -1;

            try
            {
                // get source category table
                SrcCategoryTable = srcDBConnection.ExecuteDataTable(srcDBQueries.Metadata_Category.GetMetadataCategories(FilterFieldType.Type, DIQueries.MetadataElementTypeText[categoryType]));

                // get target(current database) category table
                TrgCategoryTable = this.DBConnection.ExecuteDataTable(this.DBQueries.Metadata_Category.GetMetadataCategories(FilterFieldType.Type, DIQueries.MetadataElementTypeText[categoryType]));

                // import categories & sub categories from source database into current database
                foreach (DataRow SrcRow in SrcCategoryTable.Select(Metadata_Category.ParentCategoryNId + "=-1"))
                {
                    // get category from source database
                    SrcCategoryInfo = DI7MetadataCategoryBuilder.GetMetadataCategoryInfo(SrcRow, srcDBConnection, srcDBQueries);
                    // check src category gid exists in current(target) database of not
                    TrgCategoryNid       = 0;
                    TrgCategoryParentNid = -1;

                    foreach (DataRow TrgRow in TrgCategoryTable.Select(Metadata_Category.CategoryGId + "='" + DIQueries.RemoveQuotesForSqlQuery(SrcCategoryInfo.CategoryGID) + "' OR " + Metadata_Category.CategoryName + "='" + DIQueries.RemoveQuotesForSqlQuery(SrcCategoryInfo.CategoryName) + "'"))
                    {
                        // if exists then get nid and parent nid
                        TrgCategoryNid       = Convert.ToInt32(TrgRow[Metadata_Category.CategoryNId]);
                        TrgCategoryParentNid = Convert.ToInt32(TrgRow[Metadata_Category.ParentCategoryNId]);
                    }
                    // update nid & parent nid in  src category info
                    SrcCategoryInfo.CategoryNId = TrgCategoryNid;
                    SrcCategoryInfo.ParentNid   = TrgCategoryParentNid;

                    if (TrgCategoryNid > 0)
                    {
                        // update category info
                        this.UpdateMetadataCategory(SrcCategoryInfo);
                    }
                    else
                    {
                        // insert category into current database
                        TrgCategoryNid = this.InsertIntoDatabase(SrcCategoryInfo);
                    }

                    #region -- insert/update sub categories into current database --

                    // insert/update only if target category parent nid is equal to -1 (means at level1)
                    if (TrgCategoryParentNid == -1)
                    {
                        foreach (DI7MetadataCategoryInfo SrcSubCategory in SrcCategoryInfo.SubCategories.Values)
                        {
                            SrcSubCategory.CategoryNId = 0;
                            SrcSubCategory.ParentNid   = TrgCategoryNid;

                            // check sub category exists ( where gid=<src gid> and parent nid=<trg nid>
                            foreach (DataRow TrgSubCategoryRow in TrgCategoryTable.Select(Metadata_Category.CategoryGId + "='" + DIQueries.RemoveQuotesForSqlQuery(SrcSubCategory.CategoryGID) + "' AND " + Metadata_Category.ParentCategoryNId + "=" + TrgCategoryNid))
                            {
                                // if exists then get nid
                                SrcSubCategory.CategoryNId = Convert.ToInt32(TrgSubCategoryRow[Metadata_Category.CategoryNId]);
                            }

                            if (SrcSubCategory.CategoryNId > 0)
                            {
                                // update sub category into current database
                                this.UpdateMetadataCategory(SrcSubCategory);
                            }
                            else
                            {
                                // insert sub category into current database
                                this.InsertIntoDatabase(SrcSubCategory);
                            }
                        }
                    }

                    #endregion
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler.ExceptionFacade.ThrowException(ex);
            }
        }
Пример #7
0
        /// <summary>
        /// Imports metadata from the source database into current database
        /// </summary>
        /// <param name="srcConnection"></param>
        /// <param name="srcQueries"></param>
        /// <param name="srcElementNid"></param>
        /// <param name="trgElementNid"></param>
        /// <param name="categoryType"></param>
        /// <param name="metadataType"></param>
        /// <param name="iconType"></param>
        public void ImportMetadata(DIConnection srcConnection, DIQueries srcQueries, int srcElementNid, int trgElementNid, MetadataElementType categoryType, MetaDataType metadataType, IconElementType iconType)
        {
            string    SrcCategoryGID   = string.Empty;
            string    MetadataText     = string.Empty;
            int       TrgCategoryNid   = 0;
            DataTable TrgCategoryTable = null;
            Dictionary <String, String> OldIconNIdnNewIconNId = new Dictionary <string, string>();

            try
            {
                // Get target Category table
                TrgCategoryTable = this.DBConnection.ExecuteDataTable(this.DBQueries.Metadata_Category.GetMetadataCategories(FilterFieldType.Type, DIQueries.MetadataElementTypeText[categoryType]));

                // update metadata icon in DICon table
                OldIconNIdnNewIconNId = DIIcons.ImportElement(srcElementNid, trgElementNid, iconType, srcQueries, srcConnection, this.DBQueries, this.DBConnection);



                //get source metadata reports
                foreach (DataRow SrcRow in srcConnection.ExecuteDataTable(srcQueries.MetadataReport.GetMetadataReportsByTargetNid(srcElementNid.ToString(), categoryType)).Rows)
                {
                    SrcCategoryGID = Convert.ToString(SrcRow[Metadata_Category.CategoryGId]);

                    // check source category GID exists in current database
                    // Import metadta report only if category exists in current database
                    foreach (DataRow TrgCategoryRow in TrgCategoryTable.Select(Metadata_Category.CategoryGId + "='" + DIQueries.RemoveQuotesForSqlQuery(SrcCategoryGID) + "' "))
                    {
                        MetadataText = Convert.ToString(SrcRow[MetadataReport.Metadata]);

                        // Update IconNids in metadata if exists
                        foreach (string OldIconName in OldIconNIdnNewIconNId.Keys)
                        {
                            MetadataText = MetadataText.Replace(OldIconName, OldIconNIdnNewIconNId[OldIconName].ToString());
                        }

                        TrgCategoryNid = Convert.ToInt32(TrgCategoryRow[Metadata_Category.CategoryNId]);
                        this.InsertORUpdateMetadataInfo(metadataType, TrgCategoryNid.ToString(), trgElementNid, MetadataText);
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler.ExceptionFacade.ThrowException(ex);
            }
        }
Пример #8
0
        /// <summary>
        /// Get source nid
        /// </summary>
        /// <param name="sourceName">source Name</param>
        /// <returns>Source Nid</returns>
        private int GetSourceNid(string sourceName)
        {
            int RetVal = 0;

            try
            {
                RetVal = Convert.ToInt32(this.DBConnection.ExecuteScalarSqlQuery(this.DBQueries.Source.GetSource(FilterFieldType.Name, "'" + DIQueries.RemoveQuotesForSqlQuery(sourceName) + "'", FieldSelection.NId, false)));
            }
            catch (Exception)
            {
                RetVal = 0;
            }

            return(RetVal);
        }