/// <summary>
        /// Handles the primary measure.
        /// </summary>
        /// <param name="whereType">Type of the where.</param>
        /// <param name="complexDataQuerySelectionGroup">The complex data query selection group.</param>
        /// <param name="complexDataQuery">The complex data query.</param>
        private static void HandlePrimaryMeasure(DataParametersType whereType, IComplexDataQuerySelectionGroup complexDataQuerySelectionGroup, IComplexDataQuery complexDataQuery)
        {
            var primaryMeasure = complexDataQuery.DataStructure.PrimaryMeasure;
            foreach (IComplexComponentValue primaryMeasureValue in complexDataQuerySelectionGroup.PrimaryMeasureValue)
            {
                var primaryMeasureValueType = new PrimaryMeasureValueType();
                SetOperatorAndValue(primaryMeasure, primaryMeasureValue, primaryMeasureValueType);

                whereType.PrimaryMeasureValue.Add(primaryMeasureValueType);
            }
        }
        /// <summary>
        /// Handles the last updated time.
        /// </summary>
        /// <param name="complexDataQuery">The complex data query.</param>
        /// <param name="whereType">Type of the where.</param>
        private static void HandleLastUpdatedTime(IComplexDataQuery complexDataQuery, DataParametersType whereType)
        {
            foreach (var timeRange in complexDataQuery.LastUpdatedDateTimeRange)
            {
                var timeRangeValueType = new TimeRangeValueType();

                var startTimePeriodRangeType = new TimePeriodRangeType();

                startTimePeriodRangeType.isInclusive = timeRange.IsStartInclusive;
                startTimePeriodRangeType.TypedValue = timeRange.StartDate.DateInSdmxFormat;

                timeRangeValueType.StartPeriod = startTimePeriodRangeType;

                var endTimePeriodRangeType = new TimePeriodRangeType();

                endTimePeriodRangeType.isInclusive = timeRange.IsEndInclusive;
                endTimePeriodRangeType.TypedValue = timeRange.StartDate.DateInSdmxFormat;

                timeRangeValueType.EndPeriod = endTimePeriodRangeType;

                whereType.Updated.Add(timeRangeValueType);
            }
        }
        /// <summary>
        /// Handles the time.
        /// </summary>
        /// <param name="whereType">Type of the where.</param>
        /// <param name="complexDataQuerySelectionGroup">The complex data query selection group.</param>
        private static void HandleTime(DataParametersType whereType, IComplexDataQuerySelectionGroup complexDataQuerySelectionGroup)
        {
            var timeDimensionValueType = new TimeDimensionValueType();

            if (complexDataQuerySelectionGroup.DateFrom != null)
            {
                var timePeriodValueType = new TimeValue();

                timePeriodValueType.TypedValue = complexDataQuerySelectionGroup.DateFrom.DateInSdmxFormat;
                timePeriodValueType.@operator = complexDataQuerySelectionGroup.DateFromOperator.OrdOperator;
                timeDimensionValueType.TimeValue.Add(timePeriodValueType);
            }

            if (complexDataQuerySelectionGroup.DateTo != null)
            {
                var timePeriodValueType = new TimeValue();
                timePeriodValueType.TypedValue = complexDataQuerySelectionGroup.DateTo.DateInSdmxFormat;
                timePeriodValueType.@operator = complexDataQuerySelectionGroup.DateToOperator.OrdOperator;
                timeDimensionValueType.TimeValue.Add(timePeriodValueType);
            }
            whereType.TimeDimensionValue.Add(timeDimensionValueType);
        }