/// <summary> /// Converts DevInfo Database into DevInfo6.0.0.5 format /// </summary> /// <param name="forOnlineDB"></param> /// <returns></returns> public override bool DoConversion(bool forOnlineDB) { bool RetVal = false; int TotalSteps = 9; DBVersionBuilder VersionBuilder; DIDatabase DBDatabase; System.Globalization.CultureInfo oldCI = System.Threading.Thread.CurrentThread.CurrentCulture; System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); // Do the conversion only if database has different Schema try { if (!this.IsValidDB(forOnlineDB)) { DITables.ICIUSTableName = "Indicator_Classifications_IUS"; this._DBQueries = new DIQueries(this._DBQueries.DataPrefix, this._DBQueries.LanguageCode); if (!base.IsValidDB(forOnlineDB)) { RetVal = base.DoConversion(forOnlineDB); } DITables.ICIUSTableName = "IC_IUS"; this._DBQueries = new DIQueries(this._DBQueries.DataPrefix, this._DBQueries.LanguageCode); if (this._ConvertDatabase) { this.RaiseProcessStartedEvent(TotalSteps); this.RaiseProcessInfoEvent(0); // Step 1: insert version info into database VersionBuilder = new DBVersionBuilder(this._DBConnection, this._DBQueries); VersionBuilder.InsertVersionInfo(Constants.Versions.DI7_0_0_0, Constants.VersionsChangedDates.DI7_0_0_0, Constants.VersionComments.DI7_0_0_0); this.RaiseProcessInfoEvent(1); // Step 2: Add new columns into IC, Indicator, IUS & area table and create document table this.UpdateDBSchema(forOnlineDB); } RetVal = true; } else { RetVal = true; } } catch (Exception ex) { throw new ApplicationException(ex.ToString()); } finally { System.Threading.Thread.CurrentThread.CurrentCulture = oldCI; } return(RetVal); }
/// <summary> /// Returns true/false. True if Database is in valid format otherwise false. /// </summary> /// <param name="forOnlineDB"></param> /// <returns></returns> public override bool IsValidDB(bool forOnlineDB) { bool RetVal = false; DBVersionBuilder VersionBuilder = new DBVersionBuilder(this._DBConnection, this._DBQueries); RetVal = VersionBuilder.IsVersionTableExists(); return(RetVal); }
/// <summary> /// Converts DevInfo Database into DevInfo6.0.0.4 format /// </summary> /// <param name="forOnlineDB"></param> /// <returns></returns> public override bool DoConversion(bool forOnlineDB) { bool RetVal = false; int TotalSteps = 4; DBVersionBuilder VersionBuilder; //do the conversion only if database has different shcema try { if (!this.IsValidDB(forOnlineDB)) { if (!base.IsValidDB(forOnlineDB)) { RetVal = base.DoConversion(forOnlineDB); } // Step1: insert version info into database VersionBuilder = new DBVersionBuilder(this._DBConnection, this._DBQueries); VersionBuilder.InsertVersionInfo(Constants.Versions.DI6_0_0_4, Constants.VersionsChangedDates.DI6_0_0_4, Constants.VersionComments.DI6_0_0_4); this.RaiseProcessStartedEvent(TotalSteps); // Step2: remove empty records from recommended sources this.RemoveEmptyRecordsFrmRecommendedSources(forOnlineDB); this.RaiseProcessInfoEvent(1); // Step3: change datatype of Data_NID column to Long Integer under RecommendedSources table table this.UpdateDataNIdTypeForRecommendedSourcesTable(forOnlineDB); this.RaiseProcessInfoEvent(2); // Step4: remove duplicate records from dbVersion table this.DeleteDuplicateRecordsFrmDBVersion(); this.RaiseProcessInfoEvent(3); RetVal = true; } else { RetVal = true; } } catch (Exception ex) { throw new ApplicationException(ex.ToString()); RetVal = false; } return(RetVal); }
public override bool DoConversion(bool forOnlineDB) { bool RetVal = false; int TotalSteps = 10; DBVersionBuilder VersionBuilder; // Do the conversion only if database has different Schema try { if (DICommon.IsDI7Database(this.DBConnection.ConnectionStringParameters.DbName)) { this._DBQueries = new DIQueries(this._DBQueries.DataPrefix, this._DBQueries.LanguageCode); if (this._ConvertDatabase) { this.RaiseProcessStartedEvent(TotalSteps); this.RaiseProcessInfoEvent(1); this.SetAllLanguageCodes(); this.RaiseProcessInfoEvent(2); if (this.UpdateDBSchema(forOnlineDB)) { this.RaiseProcessInfoEvent(9); // Insert version info into database after conversion VersionBuilder = new DBVersionBuilder(this._DBConnection, this._DBQueries); //Delete newer version from table keep 6.0.0.5 record and delete which greater than 6.0.0.5 as like 7 version VersionBuilder.DeleteVersionsFromVersionNumberToEnd(Constants.Versions.DI6_0_0_5); this.RaiseProcessInfoEvent(10); RetVal = true; } } } else { RetVal = true; } } catch (Exception ex) { throw new ApplicationException(ex.ToString()); } return(RetVal); }
public override bool DoConversion(bool forOnlineDB) { bool RetVal = false; int TotalSteps = 6; DBVersionBuilder VersionBuilder; // Do the conversion only if database has different Schema try { if (!this.IsValidDB(forOnlineDB)) { this._DBQueries = new DIQueries(this._DBQueries.DataPrefix, this._DBQueries.LanguageCode); if (!base.IsValidDB(forOnlineDB)) { RetVal = base.DoConversion(forOnlineDB); } if (this._ConvertDatabase) { this.RaiseProcessStartedEvent(TotalSteps); this.RaiseProcessInfoEvent(0); if (this.UpdateDBSchema(forOnlineDB)) { this.RaiseProcessInfoEvent(4); // Insert version info into database after conversion VersionBuilder = new DBVersionBuilder(this._DBConnection, this._DBQueries); VersionBuilder.InsertVersionInfo(Constants.Versions.DI7_0_0_1, Constants.VersionsChangedDates.DI7_0_0_1, Constants.VersionComments.DI7_0_0_1); this.RaiseProcessInfoEvent(5); RetVal = true; } } } else { RetVal = true; } } catch (Exception ex) { throw new ApplicationException(ex.ToString()); } return(RetVal); }
private void DeleteDuplicateRecordsFrmDBVersion() { DBVersionBuilder DBVersion; try { DBVersion = new DBVersionBuilder(this._DBConnection, this._DBQueries); DBVersion.DeleteDuplicateRecords(); } catch (Exception ex) { throw new ApplicationException(ex.ToString()); } }
/// <summary> /// Converts DevInfo Database into DevInfo6.0.0.3 format /// </summary> /// <param name="forOnlineDB"></param> /// <returns></returns> public override bool DoConversion(bool forOnlineDB) { bool RetVal = false; int TotalSteps = 4; DBVersionBuilder VersionBuilder; //do the conversion only if database has different shcema try { if (!this.IsValidDB(forOnlineDB)) { if (!base.IsValidDB(forOnlineDB)) { RetVal = base.DoConversion(forOnlineDB); } // Step1: insert version info into database VersionBuilder = new DBVersionBuilder(this._DBConnection, this._DBQueries); VersionBuilder.InsertVersionInfo(Constants.Versions.DI6_0_0_3, Constants.VersionsChangedDates.DI6_0_0_3, Constants.VersionComments.DI6_0_0_3); this.RaiseProcessStartedEvent(TotalSteps); // Step2: create Recommended sources table and insert IC_IUS_Label into RecommendedSources table from IC_IUS table this.CreateNUpdateRecommendedSourcesTable(forOnlineDB); this.RaiseProcessInfoEvent(1); // Step3: add ICIUSOrder column in UT_Data table this.AddICIUSOrderColumn(forOnlineDB); this.RaiseProcessInfoEvent(2); // Step4: update ICIUSOrder into UT_Data table from IC_IUS table this.UpdateICIUSOrderInDataTable(); this.RaiseProcessInfoEvent(3); RetVal = true; } else { RetVal = true; } } catch (Exception ex) { throw new ApplicationException(ex.ToString()); RetVal = false; } return(RetVal); }
private void InsertVersionInfo() { string VersionNumber = Constants.Versions.DI6_0_0_1; string VersionChangeDate = Constants.VersionsChangedDates.DI6_0_0_1; string VersionComments = Constants.VersionComments.DI6_0_0_1; DBVersionBuilder VersionBuilder; try { VersionBuilder = new DBVersionBuilder(this._DBConnection, this._DBQueries); VersionBuilder.InsertVersionInfo(VersionNumber, VersionChangeDate, VersionComments); } catch (Exception ex) { throw new ApplicationException(ex.ToString()); } }
/// <summary> /// Converts DevInfo Database into DevInfo6.0.0.2 format /// </summary> /// <param name="forOnlineDB"></param> /// <returns></returns> public override bool DoConversion(bool forOnlineDB) { bool RetVal = false; int TotalSteps = 2; DBVersionBuilder VersionBuilder; //do the conversion only if database has different shcema try { if (!this.IsValidDB(forOnlineDB)) { if (!base.IsValidDB(forOnlineDB)) { RetVal = base.DoConversion(forOnlineDB); } // Step1: insert version info into database VersionBuilder = new DBVersionBuilder(this._DBConnection, this._DBQueries); VersionBuilder.InsertVersionInfo(Constants.Versions.DI6_0_0_2, Constants.VersionsChangedDates.DI6_0_0_2, Constants.VersionComments.DI6_0_0_2); this.RaiseProcessStartedEvent(TotalSteps); // Step2: create DB_MetaData table this.CreateDBMetaTable(forOnlineDB); this.RaiseProcessInfoEvent(1); RetVal = true; } else { RetVal = true; } } catch (Exception ex) { throw new ApplicationException(ex.ToString()); RetVal = false; } return(RetVal); }
/// <summary> /// Converts DevInfo Database into DevInfo6.0.0.5 format /// </summary> /// <param name="forOnlineDB"></param> /// <returns></returns> public override bool DoConversion(bool forOnlineDB) { bool RetVal = false; int TotalSteps = 7; DBVersionBuilder VersionBuilder; DIDatabase DBDatabase; // Do the conversion only if database has different Schema try { if (!this.IsValidDB(forOnlineDB)) { if (!base.IsValidDB(forOnlineDB)) { RetVal = base.DoConversion(forOnlineDB); } // Step 1: insert version info into database VersionBuilder = new DBVersionBuilder(this._DBConnection, this._DBQueries); VersionBuilder.InsertVersionInfo(Constants.Versions.DI6_0_0_5, Constants.VersionsChangedDates.DI6_0_0_5, Constants.VersionComments.DI6_0_0_5); this.RaiseProcessStartedEvent(TotalSteps); // Step 2: Add new columns into IC, Indicator, IUS & area table and create document table this.UpdateDBSchema(forOnlineDB); // Step 3: Create Metadata_Category Table this.CreateMetadatCategoryTable(forOnlineDB); this.RaiseProcessInfoEvent(1); // Step 4: Add Order Column into Subgroup, SubgrouVal,IC this.AddOrderColumn(forOnlineDB, this._DBConnection.ConnectionStringParameters.ServerType); this.RaiseProcessInfoEvent(2); // Step 5: Convert Metadata Values of Indicator,Area,Source this.ConvertMetadataXmlIntoDatabse(); this.RaiseProcessInfoEvent(3); // Step 6: Update Metadata Values of Indicator,Area,Source and Set Category values from Mask Files this.ConvertMetataCategoryIntoDatabase(); this.RaiseProcessInfoEvent(4); // Step 7: Update Order value SubgroupVal this.UpdateSortOrderIntoSubgroupVal(); this.RaiseProcessInfoEvent(5); // Step 8: Update Sortt Column for Subgroup Dimension Values this.UpdateSortOrderIntoSubgroup(); this.RaiseProcessInfoEvent(6); // Step 9: Update Order value for Indicator Classification(for Sector,Goal,Source... etc. and IC_IUS_Order IN IC_IUS table this.UpdateSortOrderIntoIC(-1, ICType.Sector); this.UpdateSortOrderIntoIC(-1, ICType.Source); this.UpdateSortOrderIntoIC(-1, ICType.Theme); this.UpdateSortOrderIntoIC(-1, ICType.Goal); this.UpdateSortOrderIntoIC(-1, ICType.Institution); this.UpdateSortOrderIntoIC(-1, ICType.Convention); this.UpdateSortOrderIntoIC(-1, ICType.CF); this.RaiseProcessInfoEvent(7); RetVal = true; // Step 10: update auto calcualted fields DBDatabase = new DIDatabase(this._DBConnection, this._DBQueries); DBDatabase.UpdateAutoCalculatedFieldsInTables(); } else { RetVal = true; } } catch (Exception ex) { throw new ApplicationException(ex.ToString()); } return(RetVal); }