private void ConvertMetadataXmlIntoDatabse() { MetadataCategoryBuilder MetadataCatBuilder = new MetadataCategoryBuilder(this._DBConnection, this._DBQueries); DIQueries TempDBQueries = null; string DataPrefix = string.Empty; string LanguageCode = string.Empty; try { // step1: create table for all dataset foreach (DataRow DataPrefixRow in this._DBConnection.DIDataSets().Rows) { DataPrefix = DataPrefixRow[DBAvailableDatabases.AvlDBPrefix].ToString() + "_"; // get language for all available langauges foreach (DataRow LanguageRow in this._DBConnection.DILanguages(DataPrefix).Rows) { LanguageCode = "_" + LanguageRow[Language.LanguageCode].ToString(); // check table already exists or not TempDBQueries = new DIQueries(DataPrefix, LanguageCode); MetadataCatBuilder = new MetadataCategoryBuilder(this._DBConnection, TempDBQueries); // convert Indicator,Map and Source Info MetadataCatBuilder.ConvertIndicatorMapICAndXsltMetadataIntoNewFormat(); } } } catch (Exception) { } }
private void ConvertMetataCategoryIntoDatabase() { MetadataCategoryBuilder MetadataCatBuilder = new MetadataCategoryBuilder(this._DBConnection, this._DBQueries); DIQueries TempDBQueries = null; string DataPrefix = string.Empty; string LanguageCode = string.Empty; try { // step1: create table for all dataset foreach (DataRow DataPrefixRow in this._DBConnection.DIDataSets().Rows) { DataPrefix = DataPrefixRow[DBAvailableDatabases.AvlDBPrefix].ToString() + "_"; // get language for all available langauges foreach (DataRow LanguageRow in this._DBConnection.DILanguages(DataPrefix).Rows) { LanguageCode = "_" + LanguageRow[Language.LanguageCode].ToString(); // check table already exists or not TempDBQueries = new DIQueries(DataPrefix, LanguageCode); MetadataCatBuilder = new MetadataCategoryBuilder(this._DBConnection, TempDBQueries); // Populate Metadata_Category Table from mask file or default values MetadataCatBuilder.UpdateMetadataCategoryTableFromMaskFile(); } } } catch { } }
private void CheckNCreateMetadataCategoryTable(bool forOnlineDB, DITables tablesName) { string DataPrefix = string.Empty; string LanguageCode = string.Empty; MetadataCategoryBuilder MetadataCategoryBuilderObj = null; DIQueries TempQueries; try { // check table already exists or not TempQueries = new DIQueries(tablesName.CurrentDataPrefix, tablesName.CurrentLanguageCode); MetadataCategoryBuilderObj = new MetadataCategoryBuilder(this._DBConnection, TempQueries); if (MetadataCategoryBuilderObj.IsMetadataCategoryTableExists() == false) { this.AddMissingMetadataCategoryTables(tablesName.MetadataCategory); this._DBConnection.ExecuteNonQuery(DevInfo.Lib.DI_LibDAL.Queries.MetadataCategory.Insert.CreateTable(tablesName.MetadataCategory, forOnlineDB, this._DBConnection.ConnectionStringParameters.ServerType)); } } catch (Exception ex) { throw new ApplicationException(ex.ToString()); } }
private void ConvertDI7MetadataIntoDI6Metadata() { MetadataCategoryBuilder metadataCategoryBuilder; DIQueries queries; foreach (string LanguageCode in AllLanguageCodes) { queries = new DIQueries(this.DBQueries.DataPrefix, LanguageCode); metadataCategoryBuilder = new MetadataCategoryBuilder(this._DBConnection, queries); //for Indicator, Area, Source this.UpdateMetadataInfoByCategoryType(MetadataElementType.Indicator, metadataCategoryBuilder, queries); this.UpdateMetadataInfoByCategoryType(MetadataElementType.Area, metadataCategoryBuilder, queries); this.UpdateMetadataInfoByCategoryType(MetadataElementType.Source, metadataCategoryBuilder, queries); } }
private void CreateMetadatCategoryTable(bool forOnlineDB) { string DataPrefix = string.Empty; string LanguageCode = string.Empty; DITables TableNames; MetadataCategoryBuilder MetadataCategoryBuilderObj = null; DIQueries TempQueries; try { // step1: create table for all dataset foreach (DataRow DataPrefixRow in this._DBConnection.DIDataSets().Rows) { DataPrefix = DataPrefixRow[DBAvailableDatabases.AvlDBPrefix].ToString() + "_"; // create table for all available langauges foreach (DataRow LanguageRow in this._DBConnection.DILanguages(DataPrefix).Rows) { LanguageCode = "_" + LanguageRow[Language.LanguageCode].ToString(); // check table already exists or not TempQueries = new DIQueries(DataPrefix, LanguageCode); MetadataCategoryBuilderObj = new MetadataCategoryBuilder(this._DBConnection, TempQueries); if (MetadataCategoryBuilderObj.IsMetadataCategoryTableExists() == false) { TableNames = new DITables(DataPrefix, LanguageCode); this._DBConnection.ExecuteNonQuery(DevInfo.Lib.DI_LibDAL.Queries.MetadataCategory.Insert.CreateTable(TableNames.MetadataCategory, forOnlineDB, this._DBConnection.ConnectionStringParameters.ServerType)); } } } } catch (Exception ex) { throw new ApplicationException(ex.ToString()); } }
private void CreateMetadataXML(DataRow[] metadataCategoryRows, ref StringBuilder xmlInfo, MetadataCategoryBuilder metadataCategoryBuilder, string categoryType) { string MetadataCategoryName = string.Empty; try { xmlInfo = new StringBuilder(); xmlInfo.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); xmlInfo.Append("<metadata>"); foreach (DataRow metadataCategoryRow in metadataCategoryRows) { MetadataCategoryName = Convert.ToString(metadataCategoryRow[Metadata_Category.CategoryName]); //Step 1 Check and create metadata category if (!metadataCategoryBuilder.IsAlreadyExists(MetadataCategoryName, categoryType, -1)) { MetadataCategoryInfo metadataCategoryInfo = new MetadataCategoryInfo(); metadataCategoryInfo.CategoryName = MetadataCategoryName; metadataCategoryInfo.CategoryType = categoryType; metadataCategoryBuilder.CheckNCreateMetadataCategory(metadataCategoryInfo); } //Step 2 Add category into metadata xml xmlInfo.Append("<Category name=\"" + MetadataCategoryName + "\">"); xmlInfo.Append("<para>" + Convert.ToString(metadataCategoryRow[MetadataReport.Metadata]) + "</para></Category>"); } xmlInfo.Append("</metadata>"); } catch (Exception ex) { } }
private void UpdateMetadataInfoByCategoryType(MetadataElementType categoryType, MetadataCategoryBuilder metadataCategoryBuilder, DIQueries queries) { List <string> TargetNids; DataTable SrcCategoryTable = null; StringBuilder Metadata_Category_Info = new StringBuilder(); SrcCategoryTable = this._DBConnection.ExecuteDataTable(queries.MetadataReport.GetAllMetadataReportsByCategoryType(categoryType)); TargetNids = DICommon.GetCommaSeperatedListOfGivenColumn(SrcCategoryTable, MetadataReport.TargetNid, false, string.Empty); //for every target like for indicator one there is many metadata category may be definition, Classification, Method of Computation foreach (string targetNid in TargetNids) { Metadata_Category_Info.Remove(0, Metadata_Category_Info.Length); //Step 1 Create metadata Info in xml format this.CreateMetadataXML(SrcCategoryTable.Select(MetadataReport.TargetNid + "='" + targetNid + "'"), ref Metadata_Category_Info, metadataCategoryBuilder, DIQueries.MetadataElementTypeText[categoryType].Trim("'".ToCharArray())); //Step 2 Update metadata Info in xml format this.UpdateMetadataInfo(queries, targetNid, categoryType, Metadata_Category_Info.ToString()); } }
private void UpdateCategoryTable() { MetadataCategoryBuilder CategoryBuilder; DIQueries TempDBQueries = null; string DataPrefix = string.Empty; string LanguageCode = string.Empty; string CategoryNid = string.Empty; string CategoryGID = string.Empty; string SourceCategoryTable = string.Empty; DataTable CategoryTable; try { // step1: create table for all dataset foreach (DataRow DataPrefixRow in this._DBConnection.DIDataSets().Rows) { DataPrefix = DataPrefixRow[DBAvailableDatabases.AvlDBPrefix].ToString() + "_"; // get language for all available languages foreach (DataRow LanguageRow in this._DBConnection.DILanguages(DataPrefix).Rows) { LanguageCode = "_" + LanguageRow[Language.LanguageCode].ToString(); // check table already exists or not TempDBQueries = new DIQueries(DataPrefix, LanguageCode); if (string.IsNullOrEmpty(SourceCategoryTable)) { // update GID in only one language table and for other language tables, use this language table CategoryBuilder = new MetadataCategoryBuilder(this._DBConnection, TempDBQueries); CategoryTable = CategoryBuilder.GetAllRecordsFromMetadataCategory(); foreach (DataRow Row in CategoryTable.Rows) { //update metdata category table (set parent_nid to -1 and update gids) //CategoryGID = Convert.ToString(Row[Metadata_Category.CategoryName]).ToUpper().Replace(" ", "_"); //CategoryGID = MetaDataBuilder.GetNewMetaDataCategoryGID(); CategoryNid = Convert.ToString(Row[Metadata_Category.CategoryNId]); CategoryGID = DICommon.GetValidGIdForSDMXRule(Convert.ToString(Row[Metadata_Category.CategoryName]).ToUpper()) + "_" + CategoryNid; this.DBConnection.ExecuteNonQuery(DevInfo.Lib.DI_LibDAL.Queries.MetadataCategory.Update.UpdateMetadataCategory(TempDBQueries.TablesName.MetadataCategory, Convert.ToInt32(CategoryNid), CategoryGID, "-1", false, false)); } SourceCategoryTable = TempDBQueries.TablesName.MetadataCategory; } else { // use first language table to update other language table this.DBConnection.ExecuteNonQuery("UPDATE " + SourceCategoryTable + " AS src INNER JOIN " + TempDBQueries.TablesName.MetadataCategory + " AS trg ON src." + Metadata_Category.CategoryNId + " = trg." + Metadata_Category.CategoryNId + " SET trg." + Metadata_Category.CategoryGId + "=src." + Metadata_Category.CategoryGId + " and trg." + Metadata_Category.ParentCategoryNId + "=src." + Metadata_Category.ParentCategoryNId + ";"); } } } } catch (Exception ex) { ExceptionFacade.ThrowException(ex); } }