/// <summary> /// Convets Database into template /// </summary> public void ConvertDatabaseToTemplate() { SourceBuilder SrcBuilder; FootnoteBuilder FoonotesBuilder; IndicatorClassificationBuilder ICBuilder; RecommendedSourcesBuilder RecommendedSrcBuilder; DataTable ICTable; string ICNIds = string.Empty; try { // STEP 1: Remove records from DATA table this.DBConnection.ExecuteNonQuery(this.DBQueries.Delete.Data.DeleteRecords(string.Empty)); // STEP 2: Remove records from TIME table this.DBConnection.ExecuteNonQuery(this.DBQueries.Delete.Timeperiod.DeleteRecords(string.Empty)); // STEP 3: Remove records from SOURCE table SrcBuilder = new SourceBuilder(this.DBConnection, this.DBQueries); SrcBuilder.DeleteSources(string.Empty); // STEP 4: Remove source records from Indicator_classification tables ICBuilder = new IndicatorClassificationBuilder(this.DBConnection, this.DBQueries); ICTable = this.DBConnection.ExecuteDataTable(this.DBQueries.IndicatorClassification.GetIC(FilterFieldType.Type, "'SR'", FieldSelection.NId)); if (ICTable != null && ICTable.Rows.Count > 0) { ICNIds = DIConnection.GetDelimitedValuesFromDataTable(ICTable, IndicatorClassifications.ICNId); } ICBuilder.DeleteClassification(ICNIds); // STEP 5: Remove records from Footnotes table FoonotesBuilder = new FootnoteBuilder(this.DBConnection, this.DBQueries); FoonotesBuilder.DeleteFootnote(string.Empty); // STEP 6: Creates DevInfoSP2 tables if missing. DICommon.CheckNCreateDevInfoSP2Database(this.DBConnection, this.DBQueries, false); // STEP 7: remove records from notes table this.ClearNotesTables(); // STEP 8: remove records from RecommendedSources table RecommendedSrcBuilder = new RecommendedSourcesBuilder(this.DBConnection, this.DBQueries); RecommendedSrcBuilder.DeleteRecommendedSources(string.Empty); // STEP 9:Remove Source metadata reports new DI7MetaDataBuilder(this.DBConnection, this.DBQueries).DeleteMetadataReports(MetadataElementType.Source); } catch (Exception ex) { throw new ApplicationException(ex.ToString()); } }