/// <summary>
        /// Build the registry interface document.
        /// </summary>
        /// <param name="buildFrom">
        /// The build from.
        /// </param>
        /// <param name="action">
        /// The action.
        /// </param>
        /// <returns>
        /// The <see cref="RegistryInterface"/>.
        /// </returns>
        public RegistryInterface BuildRegistryInterfaceDocument(
            ICollection<IRegistrationObject> buildFrom, DatasetActionEnumType action)
        {
            var registryInterface = new RegistryInterface();
            RegistryInterfaceType interfaceType = registryInterface.Content;
            V21Helper.Header = interfaceType;
            var submitRegistrationRequest = new SubmitRegistrationsRequestType();
            interfaceType.SubmitRegistrationsRequest = submitRegistrationRequest;

            /* foreach */
            foreach (IRegistrationObject currentRegistration in buildFrom)
            {
                RegistrationType registrationType = this._registrationXmlBuilder.Build(currentRegistration);
                var registrationRequest = new RegistrationRequestType();
                submitRegistrationRequest.RegistrationRequest.Add(registrationRequest);
                registrationRequest.Registration = registrationType;
                switch (action)
                {
                    case DatasetActionEnumType.Append:
                        registrationRequest.action = ActionTypeConstants.Append;
                        break;
                    case DatasetActionEnumType.Replace:
                        registrationRequest.action = ActionTypeConstants.Replace;
                        break;
                    case DatasetActionEnumType.Delete:
                        registrationRequest.action = ActionTypeConstants.Delete;
                        break;
                    case DatasetActionEnumType.Information:
                        registrationRequest.action = ActionTypeConstants.Information;
                        break;
                }
            }

            return registryInterface;
        }
        /// <summary>
        /// The build registry interface document.
        /// </summary>
        /// <param name="buildFrom">
        /// The build from.
        /// </param>
        /// <param name="action">
        /// The action.
        /// </param>
        /// <returns>
        /// The <see cref="RegistryInterface"/>.
        /// </returns>
        public RegistryInterface BuildRegistryInterfaceDocument(
            ICollection<ISubscriptionObject> buildFrom, DatasetActionEnumType action)
        {
            var rid = new RegistryInterface();
            RegistryInterfaceType rit = rid.Content;
            V21Helper.Header = rit;
            var submitSubscriptionsRequest = new SubmitSubscriptionsRequestType();
            rit.SubmitSubscriptionsRequest = submitSubscriptionsRequest;

            /* foreach */
            foreach (ISubscriptionObject currentSubscription in buildFrom)
            {
                SubscriptionType subscriptionType = this._subscriptionXmlBuilder.Build(currentSubscription);
                var subscriptionRequest = new SubscriptionRequestType();
                submitSubscriptionsRequest.SubscriptionRequest.Add(subscriptionRequest);
                subscriptionRequest.Subscription = subscriptionType;
                switch (action)
                {
                    case DatasetActionEnumType.Append:
                        subscriptionRequest.action = ActionTypeConstants.Append;
                        break;
                    case DatasetActionEnumType.Replace:
                        subscriptionRequest.action = ActionTypeConstants.Replace;
                        break;
                    case DatasetActionEnumType.Delete:
                        subscriptionRequest.action = ActionTypeConstants.Delete;
                        break;
                    case DatasetActionEnumType.Information:
                        subscriptionRequest.action = ActionTypeConstants.Information;
                        break;
                }
            }

            return rid;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ParseException"/> class.
 /// </summary>
 /// <param name="innerException">The inner exception.</param>
 /// <param name="action">The action.</param>
 /// <param name="isQuery">if set to <c>true</c> [is query].</param>
 /// <param name="artifact">The artifact.</param>
 /// <param name="args">The arguments.</param>
 public ParseException(
     Exception innerException, DatasetActionEnumType action, bool isQuery, ArtifactType artifact, params object[] args)
     : base(innerException, null, null, args)
 {
     this._action = action;
     this._isQuery = isQuery;
     this._artifact = artifact;
 }
 public void TestGetDataSetAction(string file, DatasetActionEnumType expectedResult)
 {
     using (var readable = new FileReadableDataLocation(file))
     {
         Assert.AreEqual(expectedResult, SdmxMessageUtil.GetDataSetAction(readable));
     }
 }