Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        private void DeleteDuplicateRecordsFrmDBVersion()
        {
            DBVersionBuilder DBVersion;

            try
            {
                DBVersion = new DBVersionBuilder(this._DBConnection, this._DBQueries);
                DBVersion.DeleteDuplicateRecords();
            }
            catch (Exception ex)
            {
                throw new ApplicationException(ex.ToString());
            }
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        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());
            }
        }
Пример #9
0
        /// <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);
        }
Пример #10
0
        /// <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);
        }