Exemplo n.º 1
0
 internal BaseQueryUtility(Dictionary<string, string> dictUserSelections, DataReturnDetailTypes dataReturnDetailType, string agencyId, DIConnection DIConnection, DIQueries DIQueries)
 {
     this._dictUserSelections = dictUserSelections;
     this._dataReturnDetailType = dataReturnDetailType;
     this._agencyId = agencyId;
     this._diConnection = DIConnection;
     this._diQueries = DIQueries;
 }
Exemplo n.º 2
0
        internal void Parse_Query(DataParametersAndType DataWhere, DataReturnDetailsType ReturnDetails)
        {
            string IndicatorGId, UnitGId, SubgroupValGId, AreaId, SourceText, TimePeriodText, Language, IUSNId;
            List<string> IUSNIds, AreaIds, SourceTexts, TimePeriods;
            Dictionary<string, string> DictSubgroupBreakup;
            DataTable DtSubgroupBreakup, DtIUS;

            IndicatorGId = string.Empty;
            UnitGId = string.Empty;
            SubgroupValGId = string.Empty;
            AreaId = string.Empty;
            SourceText = string.Empty;
            TimePeriodText = string.Empty;
            Language = string.Empty;
            IUSNId = string.Empty;

            IUSNIds = new List<string>();
            AreaIds = new List<string>();
            SourceTexts = new List<string>();
            TimePeriods = new List<string>();
            DictSubgroupBreakup = new Dictionary<string, string>();

            DtSubgroupBreakup = this._diConnection.ExecuteDataTable(this._diQueries.SubgroupValSubgroup.GetSubgroupValsWithSubgroups());
            DtSubgroupBreakup = DtSubgroupBreakup.DefaultView.ToTable(true, DevInfo.Lib.DI_LibDAL.Queries.DIColumns.SubgroupVals.SubgroupValGId, DevInfo.Lib.DI_LibDAL.Queries.DIColumns.SubgroupTypes.SubgroupTypeGID, DevInfo.Lib.DI_LibDAL.Queries.DIColumns.Subgroup.SubgroupGId);

            DtIUS = this._diConnection.ExecuteDataTable(this._diQueries.IUS.GetIUS(FilterFieldType.None, string.Empty, FieldSelection.Light));
            DtIUS = DtIUS.DefaultView.ToTable(true, DevInfo.Lib.DI_LibDAL.Queries.DIColumns.Indicator_Unit_Subgroup.IUSNId, DevInfo.Lib.DI_LibDAL.Queries.DIColumns.Indicator.IndicatorGId, DevInfo.Lib.DI_LibDAL.Queries.DIColumns.Unit.UnitGId, DevInfo.Lib.DI_LibDAL.Queries.DIColumns.SubgroupVals.SubgroupValGId);

            if ((DataReturnDetailTypes)Enum.Parse(typeof(DataReturnDetailTypes), ReturnDetails.detail) == DataReturnDetailTypes.Full)
            {
                if (DataWhere != null)
                {
                    foreach (DataParametersOrType ORItem in DataWhere.Or)
                    {
                        if (ORItem.DimensionValue.Count > 0)
                        {
                            foreach (DimensionValueType Dimension in ORItem.DimensionValue)
                            {
                                switch (Dimension.ID)
                                {
                                    case Constants.Concept.AREA.Id:
                                        AreaId = ((SDMXObjectModel.Query.SimpleValueType)Dimension.Items[0]).Value;
                                        AreaIds.Add(AreaId);
                                        break;
                                    case Constants.Concept.SOURCE.Id:
                                        SourceText = ((SDMXObjectModel.Query.SimpleValueType)Dimension.Items[0]).Value;
                                        SourceTexts.Add(SourceText);
                                        break;
                                    case Constants.Concept.TIME_PERIOD.Id:
                                        TimePeriodText = ((SDMXObjectModel.Query.SimpleValueType)Dimension.Items[0]).Value;
                                        if (this._isMRD == false)
                                        {
                                            if (TimePeriodText == Constants.MRD)
                                            {
                                                this._isMRD = true;
                                                TimePeriods = null;
                                            }
                                            else
                                            {
                                                TimePeriods.Add(TimePeriodText);
                                            }
                                        }
                                        break;
                                    default:
                                        break;
                                }
                            }
                        }
                        else if (ORItem.AttributeValue.Count > 0)
                        {
                            switch (ORItem.AttributeValue[0].ID)
                            {
                                case Constants.Concept.FOOTNOTES.Id:
                                    Language = ((QueryTextType)ORItem.AttributeValue[0].Items[0]).lang;
                                    break;
                            }
                        }
                        else if (ORItem.And.Count > 0)
                        {
                            IUSNIds.Add(Constants.MinusOne);

                            foreach (DataParametersAndType ANDItem in ORItem.And)
                            {
                                DictSubgroupBreakup = new Dictionary<string, string>();

                                foreach (DimensionValueType Dimension in ANDItem.DimensionValue)
                                {
                                    switch (Dimension.ID)
                                    {
                                        case Constants.Concept.INDICATOR.Id:
                                            IndicatorGId = ((SDMXObjectModel.Query.SimpleValueType)Dimension.Items[0]).Value;
                                            break;
                                        case Constants.Concept.UNIT.Id:
                                            UnitGId = ((SDMXObjectModel.Query.SimpleValueType)Dimension.Items[0]).Value;
                                            break;
                                        default:
                                            DictSubgroupBreakup.Add(Dimension.ID, ((SDMXObjectModel.Query.SimpleValueType)Dimension.Items[0]).Value);
                                            break;
                                    }
                                }

                                SubgroupValGId = this.Get_SubgroupVal_GId(DictSubgroupBreakup, DtSubgroupBreakup);
                                IUSNId = this.Get_IUSNId_From_GIds(IndicatorGId, UnitGId, SubgroupValGId, DtIUS);
                                IUSNIds.Add(IUSNId);
                            }
                        }
                    }

                    if (DataWhere.DataStructure != null && DataWhere.DataStructure.Count > 0 && DataWhere.DataStructure[0].Items != null &&
                        DataWhere.DataStructure[0].Items.Count > 0)
                    {
                        this._agencyID = ((DataStructureRefType)DataWhere.DataStructure[0].Items[0]).agencyID;
                    }
                    else
                    {
                        throw new Exception(Constants.SDMXWebServices.Exceptions.InvalidSyntax.Message);
                    }
                }
                else
                {
                    throw new Exception(Constants.SDMXWebServices.Exceptions.InvalidSyntax.Message);
                }
            }
            else if ((DataReturnDetailTypes)Enum.Parse(typeof(DataReturnDetailTypes), ReturnDetails.detail) == DataReturnDetailTypes.SeriesKeyOnly)
            {
                this._agencyID = "agency";
            }

            this._iusNIds = String.Join(Constants.Comma, IUSNIds.ToArray());
            this._areaIds = AreaIds;
            this._sourceTexts = SourceTexts;

            if (this.IsMRD == false)
            {
                this._timeperiodNIds = this.Get_TimePeriodNIds_From_Text(TimePeriods);
            }

            this._languages = new List<string>();

            if (string.IsNullOrEmpty(Language))
            {
                foreach (DataRow LanguageRow in this._diConnection.DILanguages(this._diQueries.DataPrefix).Rows)
                {
                    this._languages.Add(LanguageRow[DevInfo.Lib.DI_LibDAL.Queries.DIColumns.Language.LanguageCode].ToString());
                }
            }
            else
            {
                if (this._diConnection.IsValidDILanguage(this._diQueries.DataPrefix, Language))
                {
                    this._languages.Add(Language);
                }
                else
                {
                    this._languages.Add(this._diQueries.LanguageCode.Substring(1));
                }
            }

            this._dataReturnDetailType = (DataReturnDetailTypes)Enum.Parse(typeof(DataReturnDetailTypes), ReturnDetails.detail);
        }
 internal StructureSpecificTimeSeriesQueryUtility(Dictionary<string, string> dictUserSelections, DataReturnDetailTypes dataReturnDetailType, string agencyId, DIConnection DIConnection, DIQueries DIQueries)
     : base(dictUserSelections, dataReturnDetailType, agencyId, DIConnection, DIQueries)
 {
 }
Exemplo n.º 4
0
 internal GenericQueryUtility(Dictionary<string, string> dictUserSelections, DataReturnDetailTypes dataReturnDetailType, string agencyId, DIConnection DIConnection, DIQueries DIQueries)
     : base(dictUserSelections, dataReturnDetailType, agencyId, DIConnection, DIQueries)
 {
 }
Exemplo n.º 5
0
        public static XmlDocument Get_Query(SDMXSchemaType schemaType, Dictionary<string, string> dictUserSelections, QueryFormats format, DataReturnDetailTypes dataReturnDetailType, string agencyId, DIConnection DIConnection, DIQueries DIQueries)
        {
            XmlDocument RetVal;
            BaseQueryUtility BaseQueryUtility;

            RetVal = null;
            BaseQueryUtility = null;

            try
            {
                switch (format)
                {
                    case QueryFormats.Generic:
                        BaseQueryUtility = new GenericQueryUtility(dictUserSelections, dataReturnDetailType, agencyId, DIConnection, DIQueries);
                        break;
                    case QueryFormats.GenericTS:
                        BaseQueryUtility = new GenericTimeSeriesQueryUtility(dictUserSelections, dataReturnDetailType, agencyId, DIConnection, DIQueries);
                        break;
                    case QueryFormats.StructureSpecific:
                        BaseQueryUtility = new StructureSpecificQueryUtility(dictUserSelections, dataReturnDetailType, agencyId, DIConnection, DIQueries);
                        break;
                    case QueryFormats.StructureSpecificTS:
                        BaseQueryUtility = new StructureSpecificTimeSeriesQueryUtility(dictUserSelections, dataReturnDetailType, agencyId, DIConnection, DIQueries);
                        break;
                    default:
                        break;
                }

                RetVal = BaseQueryUtility.Get_Query();
            }
            catch (Exception ex)
            {
                RetVal = null;
                throw ex;
            }
            finally
            {
            }

            return RetVal;
        }