/// <summary> /// Insert Indicator record into database /// </summary> /// <param name="indicatorInfo">object of IndicatorInfo</param> /// <returns>Ture/False. Return true after successful insertion otherwise false</returns> private bool InsertIntoDatabase(IndicatorInfo indicatorInfo) { bool RetVal = false; string IndicatorName = indicatorInfo.Name; string IndicatorGId = Guid.NewGuid().ToString(); string LanguageCode = string.Empty; string DefaultLanguageCode = string.Empty; string IndicatorForDatabase = string.Empty; try { DefaultLanguageCode = this.DBQueries.LanguageCode; //replace GID only if given gid is not empty or null. if (!string.IsNullOrEmpty(indicatorInfo.GID)) { IndicatorGId = indicatorInfo.GID; } foreach (DataRow languageRow in this.DBConnection.DILanguages(this.DBQueries.DataPrefix).Rows) { LanguageCode = languageRow[Language.LanguageCode].ToString(); if (LanguageCode == DefaultLanguageCode.Replace("_", String.Empty)) { IndicatorForDatabase = IndicatorName; } else { IndicatorForDatabase = Constants.PrefixForNewValue + IndicatorName; } //-- indicatorInfo.Info = DICommon.CheckNConvertMetadataXml(indicatorInfo.Info); this.DBConnection.ExecuteNonQuery(DevInfo.Lib.DI_LibDAL.Queries.Indicator.Insert.InsertIndicator(this.DBQueries.DataPrefix, "_" + LanguageCode, IndicatorForDatabase, IndicatorGId, indicatorInfo.Info, indicatorInfo.Global, indicatorInfo.HighIsGood, this.DBConnection.ConnectionStringParameters.ServerType)); } RetVal = true; } catch (Exception) { RetVal = false; } return(RetVal); }
private void ConvertIndicatorMetadata() { DataTable IndicatorTable = null; string IndicatorMetadata = string.Empty; IndicatorTable = this.DBConnection.ExecuteDataTable(this.DBQueries.Indicators.GetIndicator(FilterFieldType.Search, Indicator.IndicatorInfo + " IS NOT NULL AND " + Indicator.IndicatorInfo + " <> '' ", FieldSelection.Heavy)); foreach (DataRow Row in IndicatorTable.Rows) { IndicatorMetadata = Convert.ToString(Row[Indicator.IndicatorInfo]); if (!string.IsNullOrEmpty(IndicatorMetadata)) { IndicatorMetadata = DICommon.CheckNConvertMetadataXml(IndicatorMetadata); // Update IndicatorInfo(Metadata) this.DBConnection.ExecuteNonQuery(DALQueries.Indicator.Update.UpdateIndicatorInfo(this.DBQueries.DataPrefix, this.DBQueries.LanguageCode, DICommon.RemoveQuotes(IndicatorMetadata), FilterFieldType.NId, Convert.ToString(Row[Indicator.IndicatorNId]))); } } }
private void ConvertAreaMapMetadata() { DataTable MapTable = null; string MetadataText = string.Empty; // Get Area_Map Metadata Table MapTable = this.DBConnection.ExecuteDataTable(this.DBQueries.Area.GetAreaMapMetadata(FilterFieldType.Search, Area_Map_Metadata.MetadataText + " IS NOT NULL AND " + Area_Map_Metadata.MetadataText + " <> '' ", FieldSelection.Heavy)); foreach (DataRow Row in MapTable.Rows) { MetadataText = Convert.ToString(Row[Area_Map_Metadata.MetadataText]); if (!string.IsNullOrEmpty(MetadataText)) { MetadataText = DICommon.CheckNConvertMetadataXml(MetadataText); // Update IndicatorClassificationInfo(Metadata) this.DBConnection.ExecuteNonQuery(this.DBQueries.Update.Area.UpdateAreaMetadataInfo(DICommon.RemoveQuotes(MetadataText), Convert.ToString(Row[Area_Map_Metadata.LayerName]))); } } }
/// <summary> /// To import indicator information from mapped indicator /// </summary> /// <param name="indicatorInfo"></param> /// <param name="NidInSourceDB"></param> /// <param name="NidInTrgDB"></param> /// <param name="sourceQurey"></param> /// <param name="sourceDBConnection"></param> /// <returns></returns> public int ImportIndicatorFrmMappedIndicator(IndicatorInfo indicatorInfo, int NidInSourceDB, int NidInTrgDB, DIQueries sourceQurey, DIConnection sourceDBConnection) { int RetVal = -1; string metadataInfo = string.Empty; string SqlString = string.Empty; DataRow Row; DataTable TempTable; Dictionary <String, String> OldIconNId_NewIconNId = new Dictionary <string, string>(); MetaDataBuilder MetaDataBuilderObj; IndicatorInfo TrgIndicatorInfo; try { // set RetVal to targetNID RetVal = NidInTrgDB; if (RetVal > 0) { TrgIndicatorInfo = this.GetIndicatorInfo(FilterFieldType.NId, RetVal.ToString(), FieldSelection.Light); // dont import if trg indicator is global but source indicator is local if (TrgIndicatorInfo.Global & indicatorInfo.Global == false) { // dont import if trg indicator is global but source indicator is local } else { //update the gid,name and global on the basis of nid this.DBConnection.ExecuteNonQuery(DevInfo.Lib.DI_LibDAL.Queries.Indicator.Update.UpdateByNid(this.DBQueries.DataPrefix, this.DBQueries.LanguageCode, indicatorInfo.Name, indicatorInfo.GID, indicatorInfo.Global, indicatorInfo.Info, RetVal)); } } //update/insert icon DIIcons.ImportElement(NidInSourceDB, RetVal, IconElementType.Indicator, sourceQurey, sourceDBConnection, this.DBQueries, this.DBConnection); OldIconNId_NewIconNId = DIIcons.ImportElement(NidInSourceDB, RetVal, IconElementType.MetadataIndicator, sourceQurey, sourceDBConnection, this.DBQueries, this.DBConnection); // get metadata info. metadataInfo = indicatorInfo.Info; // Update IconNids in xml if exists foreach (string OldIconName in OldIconNId_NewIconNId.Keys) { metadataInfo = metadataInfo.Replace(OldIconName, OldIconNId_NewIconNId[OldIconName].ToString()); } metadataInfo = DICommon.CheckNConvertMetadataXml(metadataInfo); // Update Metadata this.DBConnection.ExecuteNonQuery(DALQueries.Indicator.Update.UpdateIndicatorInfo(this.DBQueries.DataPrefix, this.DBQueries.LanguageCode, DICommon.RemoveQuotes(metadataInfo), FilterFieldType.GId, indicatorInfo.GID)); // -- insert records in xslt tables SqlString = sourceQurey.Xslt.GetXSLT(NidInSourceDB.ToString(), MetadataElementType.Indicator); TempTable = sourceDBConnection.ExecuteDataTable(SqlString); if (TempTable.Rows.Count > 0) { Row = TempTable.Rows[0]; MetaDataBuilderObj = new MetaDataBuilder(this.DBConnection, this.DBQueries); MetaDataBuilderObj.ImportTransformInfo(Row[XSLT.XSLTText].ToString(), Row[XSLT.XSLTFile].ToString(), RetVal.ToString(), MetadataElementType.Indicator); } } catch (Exception ex) { throw new ApplicationException(ex.Message); } return(RetVal); }
/// <summary> /// To import indicator into template or database /// </summary> /// <param name="indicatorInfo"></param> /// <param name="NidInSourceDB"></param> /// <param name="sourceQurey"></param> /// <param name="sourceDBConnection"></param> /// <returns></returns> public int ImportIndicator(IndicatorInfo sourceIndicatorInfo, int NidInSourceDB, DIQueries sourceQurey, DIConnection sourceDBConnection, bool importIndicatorInfoAlso) { int RetVal = -1; string metadataInfo = string.Empty; string SqlString = string.Empty; DataRow Row; DataTable TempTable; //Dictionary<String, String> OldIconNId_NewIconNId = new Dictionary<string, string>(); //MetaDataBuilder MetaDataBuilderObj; DI7MetaDataBuilder MetadataBuilderObj = null; IndicatorInfo TrgIndicatorInfo; try { //check Indicator already exists in database or not RetVal = this.GetIndicatorNid(sourceIndicatorInfo.GID, sourceIndicatorInfo.Name); if (RetVal > 0) { TrgIndicatorInfo = this.GetIndicatorInfo(FilterFieldType.NId, RetVal.ToString(), FieldSelection.Heavy); // dont import if trg indicator is global but source indicator is local if (TrgIndicatorInfo.Global & sourceIndicatorInfo.Global == false) { // dont import if trg indicator is global but source indicator is local } else { sourceIndicatorInfo.Info = DICommon.CheckNConvertMetadataXml(sourceIndicatorInfo.Info); //update the gid,name and global on the basis of nid this.DBConnection.ExecuteNonQuery(DevInfo.Lib.DI_LibDAL.Queries.Indicator.Update.UpdateByNid(this.DBQueries.DataPrefix, this.DBQueries.LanguageCode, sourceIndicatorInfo.Name, sourceIndicatorInfo.GID, sourceIndicatorInfo.Global, sourceIndicatorInfo.Info, RetVal, sourceIndicatorInfo.HighIsGood)); } } else if (importIndicatorInfoAlso) { if (this.InsertIntoDatabase(sourceIndicatorInfo)) { //get nid RetVal = Convert.ToInt32(this.DBConnection.ExecuteScalarSqlQuery("SELECT @@IDENTITY")); } } if (RetVal > 0) { //update/insert icon DIIcons.ImportElement(NidInSourceDB, RetVal, IconElementType.Indicator, sourceQurey, sourceDBConnection, this.DBQueries, this.DBConnection); // import metadata MetadataBuilderObj = new DI7MetaDataBuilder(this.DBConnection, this.DBQueries); MetadataBuilderObj.ImportMetadata(sourceDBConnection, sourceQurey, NidInSourceDB, RetVal, MetadataElementType.Indicator, MetaDataType.Indicator, IconElementType.MetadataIndicator); //////// -- insert records in xslt tables //////SqlString = sourceQurey.Xslt.GetXSLT(NidInSourceDB.ToString(), MetadataElementType.Indicator); //////TempTable = sourceDBConnection.ExecuteDataTable(SqlString); //////if (TempTable.Rows.Count > 0) //////{ ////// Row = TempTable.Rows[0]; ////// MetaDataBuilderObj = new MetaDataBuilder(this.DBConnection, this.DBQueries); ////// MetaDataBuilderObj.ImportTransformInfo(Row[XSLT.XSLTText].ToString(), Row[XSLT.XSLTFile].ToString(), RetVal.ToString(), MetadataElementType.Indicator); //////} } } catch (Exception ex) { throw new ApplicationException(ex.Message); } return(RetVal); }