internal CodelistUtility(CodelistTypes codelistType, bool completeOrSummaryFlag, string agencyId, string language, Header header, string outputFolder, DIConnection DIConnection, DIQueries DIQueries) : base(agencyId, language, header, outputFolder) { this._codelistType = codelistType; 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; } } }
private void Handle_All_Languages(CodeType Code, CodelistTypes codelistType, FilterFieldType filterField, string filterText, string nameColumn) { 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(codelistType, filterField, filterText, Language); DtTable = this.DIConnection.ExecuteDataTable(Query); Add_Language_Specific_Details(Code, codelistType, DtTable, nameColumn, Language); } } } }
private string Get_ParentID(CodelistTypes codelistType, string parentNid, string idColumn, string language) { string RetVal; string Query; DataTable DtParent; try { Query = this.Get_Language_Specific_Query(codelistType, FilterFieldType.NId, parentNid, language); DtParent = this.DIConnection.ExecuteDataTable(Query); if (DtParent.Rows.Count > 0) { RetVal = DtParent.Rows[0][idColumn].ToString(); } else { RetVal = Constants.MinusOne; } } catch (Exception ex) { RetVal = string.Empty; throw ex; } return RetVal; }
private string Get_Language_Specific_Query(CodelistTypes codelistType, FilterFieldType filterField, string filterText, string language) { string RetVal; string[] IUSSplits; DIQueries DIQueriesLanguage; RetVal = string.Empty; if ((filterField == FilterFieldType.GId || filterField == FilterFieldType.ID) && codelistType != CodelistTypes.IUS) { filterText = Constants.Apostophe + filterText + Constants.Apostophe; } // 1. Creating language specific DIQueries object. DIQueriesLanguage = new DIQueries(this.DIQueries.DataPrefix, language); switch (codelistType) { case CodelistTypes.Area: RetVal = DIQueriesLanguage.Area.GetArea(filterField, filterText); break; case CodelistTypes.Indicator: RetVal = DIQueriesLanguage.Indicators.GetIndicator(filterField, filterText, FieldSelection.Heavy); break; case CodelistTypes.Subgroups: RetVal = DIQueriesLanguage.Subgroup.GetSubgroup(filterField, filterText); break; case CodelistTypes.SubgroupType: RetVal = DIQueriesLanguage.SubgroupTypes.GetSubgroupTypes(filterField, filterText); break; case CodelistTypes.SubgroupVal: RetVal = DIQueriesLanguage.SubgroupVals.GetSubgroupVals(filterField, filterText); break; case CodelistTypes.Unit: RetVal = DIQueriesLanguage.Unit.GetUnit(filterField, filterText); break; case CodelistTypes.IUS: IUSSplits = this.SplitString(filterText, Constants.AtTheRate); RetVal = DIQueriesLanguage.IUS.GetIUSNIdsByGID(IUSSplits[0], IUSSplits[1], IUSSplits[2]); break; default: break; } return RetVal; }
private string Get_File_Name(CodelistTypes codelistType) { string RetVal; RetVal = string.Empty; switch (codelistType) { case CodelistTypes.Area: RetVal = Constants.CodeList.Area.FileName; break; case CodelistTypes.Indicator: RetVal = Constants.CodeList.Indicator.FileName; break; case CodelistTypes.Unit: RetVal = Constants.CodeList.Unit.FileName; break; case CodelistTypes.SubgroupType: RetVal = Constants.CodeList.SubgroupType.FileName; break; case CodelistTypes.SubgroupVal: RetVal = Constants.CodeList.SubgroupVal.FileName; break; case CodelistTypes.IUS: RetVal = Constants.CodeList.IUS.FileName; break; default: break; } return RetVal; }
private void Add_Language_Specific_Details(CodeType Code, CodelistTypes codelistType, DataTable DtTable, string nameColumn, string language) { string[] IUSSplits; if (DtTable.Rows.Count > 0) { if (codelistType != CodelistTypes.IUS) { Code.Name.Add(new TextType(language, DtTable.Rows[0][nameColumn].ToString())); } else { IUSSplits = this.SplitString(nameColumn, Constants.AtTheRate); Code.Name.Add(new TextType(language, DtTable.Rows[0][IUSSplits[0]].ToString() + Constants.Dash + DtTable.Rows[0][IUSSplits[1]].ToString() + Constants.Dash + DtTable.Rows[0][IUSSplits[2]].ToString())); } } }
public static List<ArtefactInfo> Generate_Codelist(SDMXSchemaType schemaType, CodelistTypes codelistType, bool completeOrSummaryFlag, string agencyId, string language, Header header, string outputFolder, DIConnection DIConnection, DIQueries DIQueries) { List<ArtefactInfo> RetVal; CodelistUtility CodelistUtility; RetVal = null; CodelistUtility = null; try { if (language.Contains("_")) { language = language.Replace("_", ""); } CodelistUtility = new CodelistUtility(codelistType, completeOrSummaryFlag, agencyId, language, header, outputFolder, DIConnection, DIQueries); RetVal = CodelistUtility.Generate_Artefact(); CodelistUtility.Save_Artefacts(RetVal); } catch (Exception ex) { RetVal = null; throw ex; } finally { } return RetVal; }