internal CategorySchemeUtility(CategorySchemeTypes categorySchemeType, bool completeOrSummaryFlag, string agencyId, string language, Header header, string outputFolder, Dictionary<string, string> DictIndicator, Dictionary<string, string> DictIndicatorMapping, DIConnection DIConnection, DIQueries DIQueries) : base(agencyId, language, header, outputFolder) { this._categorySchemeType = categorySchemeType; this._completeOrSummaryFlag = completeOrSummaryFlag; this._diConnection = DIConnection; this._diQueries = DIQueries; if (string.IsNullOrEmpty(language)) { this.Language = this._diQueries.LanguageCode.Substring(1); this._multiLanguageHandlingRequired = true; } else { if (this._diConnection.IsValidDILanguage(this._diQueries.DataPrefix, language)) { this.Language = language; this._multiLanguageHandlingRequired = false; } else { this.Language = this._diQueries.LanguageCode.Substring(1); this._multiLanguageHandlingRequired = false; } } this._dictIndicator = DictIndicator; this._dictIndicatorMapping = DictIndicatorMapping; }
private void Handle_All_Languages_For_Indicators(CategorySchemeTypes categorySchemeType, CategoryType Category, string IndicatorGId) { DataTable DtTable; DIQueries DIQueriesLanguage; string Query, Language; Query = string.Empty; if (this.MultiLanguageHandlingRequired) { foreach (DataRow LanguageRow in this.DIConnection.DILanguages(this.DIQueries.DataPrefix).Rows) { Language = LanguageRow[DevInfo.Lib.DI_LibDAL.Queries.DIColumns.Language.LanguageCode].ToString(); if (Language != this.DIQueries.LanguageCode.Substring(1)) { DIQueriesLanguage = new DIQueries(this.DIQueries.DataPrefix, Language); Query = DIQueriesLanguage.Indicators.GetIndicator(FilterFieldType.GId, IndicatorGId, FieldSelection.Light); DtTable = this.DIConnection.ExecuteDataTable(Query); if (DtTable.Rows.Count > 0) { Category.Name.Add(new TextType(Language, DtTable.Rows[0][Indicator.IndicatorName].ToString())); } } } } }
private void Handle_All_Languages(CategorySchemeTypes categorySchemeType, CategoryType Category, string ICGId) { DataTable DtTable; string Query, Language; Query = string.Empty; if (this.MultiLanguageHandlingRequired) { foreach (DataRow LanguageRow in this.DIConnection.DILanguages(this.DIQueries.DataPrefix).Rows) { Language = LanguageRow[DevInfo.Lib.DI_LibDAL.Queries.DIColumns.Language.LanguageCode].ToString(); if (Language != this.DIQueries.LanguageCode.Substring(1)) { Query = this.Get_Language_Specific_Query(categorySchemeType, FilterFieldType.GId, Constants.Apostophe + ICGId + Constants.Apostophe, Language); DtTable = this.DIConnection.ExecuteDataTable(Query); if (DtTable.Rows.Count > 0) { Category.Name.Add(new TextType(Language, DtTable.Rows[0][IndicatorClassifications.ICName].ToString())); } } } } }
private string Get_Language_Specific_Query_For_Indicators(CategorySchemeTypes categorySchemeType, string filterText, string language) { string RetVal; DIQueries DIQueriesLanguage; RetVal = string.Empty; // 1. Creating language specific DIQueries object. DIQueriesLanguage = new DIQueries(this.DIQueries.DataPrefix, language); switch (categorySchemeType) { case CategorySchemeTypes.Sector: RetVal = DIQueriesLanguage.Indicators.GetIndicatorByIC(ICType.Sector, filterText, FieldSelection.Light); break; case CategorySchemeTypes.Goal: RetVal = DIQueriesLanguage.Indicators.GetIndicatorByIC(ICType.Goal, filterText, FieldSelection.Light); break; case CategorySchemeTypes.Theme: RetVal = DIQueriesLanguage.Indicators.GetIndicatorByIC(ICType.Theme, filterText, FieldSelection.Light); break; case CategorySchemeTypes.Source: RetVal = DIQueriesLanguage.Indicators.GetIndicatorByIC(ICType.Source, filterText, FieldSelection.Light); break; case CategorySchemeTypes.Convention: RetVal = DIQueriesLanguage.Indicators.GetIndicatorByIC(ICType.Convention, filterText, FieldSelection.Light); break; case CategorySchemeTypes.Framework: RetVal = DIQueriesLanguage.Indicators.GetIndicatorByIC(ICType.CF, filterText, FieldSelection.Light); break; case CategorySchemeTypes.Institution: RetVal = DIQueriesLanguage.Indicators.GetIndicatorByIC(ICType.Institution, filterText, FieldSelection.Light); break; default: break; } return RetVal; }
private string Get_File_Name(CategorySchemeTypes categorySchemeType) { string RetVal; RetVal = string.Empty; switch (categorySchemeType) { case CategorySchemeTypes.Sector: RetVal = Constants.CategoryScheme.Sector.FileName; break; case CategorySchemeTypes.Goal: RetVal = Constants.CategoryScheme.Goal.FileName; break; case CategorySchemeTypes.Theme: RetVal = Constants.CategoryScheme.Theme.FileName; break; case CategorySchemeTypes.Source: RetVal = Constants.CategoryScheme.Source.FileName; break; case CategorySchemeTypes.Convention: RetVal = Constants.CategoryScheme.Convention.FileName; break; case CategorySchemeTypes.Framework: RetVal = Constants.CategoryScheme.Framework.FileName; break; case CategorySchemeTypes.Institution: RetVal = Constants.CategoryScheme.Institution.FileName; break; default: break; } return RetVal; }
private void Add_Children_Categories(CategorySchemeTypes categorySchemeType, CategoryType ParentCategory, string ICParent_NId, DataTable DtICs) { CategoryType ChildCategory; string ICGId, ICNId, ICName, IndicatorNId, IndicatorGId, IndicatorName; DataTable DtIndicators; DataRow[] ICRows; ICRows = DtICs.Select(IndicatorClassifications.ICParent_NId + Constants.EqualsTo + ICParent_NId); if (ICRows.Length > 0) { foreach (DataRow DrICs in ICRows) { ICNId = DrICs[IndicatorClassifications.ICNId].ToString(); ICGId = DrICs[IndicatorClassifications.ICGId].ToString(); ICName = DrICs[IndicatorClassifications.ICName].ToString(); ChildCategory = new CategoryType(ICGId, ICName, string.Empty, this.Language, null); if (this.MultiLanguageHandlingRequired) { this.Handle_All_Languages(categorySchemeType, ChildCategory, ICGId); } this.Add_Annotation(ChildCategory, Constants.Annotations.CategoryType, Constants.Annotations.IC); this.Add_Children_Categories(categorySchemeType, ChildCategory, ICNId, DtICs); ParentCategory.Items.Add(ChildCategory); } } else { DtIndicators = this.DIConnection.ExecuteDataTable(this.Get_Language_Specific_Query_For_Indicators(categorySchemeType, ICParent_NId, this.Language)); foreach (DataRow DrIndicators in DtIndicators.Rows) { IndicatorNId = DrIndicators[Indicator.IndicatorNId].ToString(); IndicatorGId = DrIndicators[Indicator.IndicatorGId].ToString(); IndicatorName = DrIndicators[Indicator.IndicatorName].ToString(); if (this._dictIndicatorMapping == null || this._dictIndicatorMapping.Keys.Count == 0) { ChildCategory = new CategoryType(IndicatorGId, IndicatorName, string.Empty, this.Language, null); if (this.MultiLanguageHandlingRequired) { this.Handle_All_Languages_For_Indicators(categorySchemeType, ChildCategory, IndicatorGId); } this.Add_Annotation(ChildCategory, Constants.Annotations.CategoryType, Constants.Annotations.Indicator); ParentCategory.Items.Add(ChildCategory); } else { if (this._dictIndicatorMapping.ContainsKey(IndicatorGId)) { ChildCategory = new CategoryType(this._dictIndicatorMapping[IndicatorGId], this._dictIndicator[this._dictIndicatorMapping[IndicatorGId]], string.Empty, Constants.DefaultLanguage, null); this.Add_Annotation(ChildCategory, Constants.Annotations.CategoryType, Constants.Annotations.Indicator); ParentCategory.Items.Add(ChildCategory); } } } } }
public static List<ArtefactInfo> Generate_CategoryScheme(SDMXSchemaType schemaType, CategorySchemeTypes categorySchemeType, string agencyId, string language, Header header, string outputFolder, Dictionary<string, string> DictIndicator, Dictionary<string, string> DictIndicatorMapping, DIConnection DIConnection, DIQueries DIQueries) { List<ArtefactInfo> RetVal; CategorySchemeUtility CategorySchemeUtility; RetVal = null; CategorySchemeUtility = null; try { CategorySchemeUtility = new CategorySchemeUtility(categorySchemeType, true, agencyId, language, header, outputFolder, DictIndicator, DictIndicatorMapping, DIConnection, DIQueries); RetVal = CategorySchemeUtility.Generate_Artefact(); CategorySchemeUtility.Save_Artefacts(RetVal); } catch (Exception ex) { RetVal = null; throw ex; } finally { } return RetVal; }