Ejemplo n.º 1
0
        /// <summary>
        /// set the header.
        /// </summary>
        /// <param name="header">
        /// The header.
        /// </param>
        /// <param name="beans">
        /// The beans.
        /// </param>
        /// <param name="receivers">
        /// The receivers.
        /// </param>
        public static void SetHeader(BaseHeaderType header, ISdmxObjects beans, params string[] receivers)
        {
            header.ID = "IDREF" + refNumber;
            refNumber++;
            header.Test = false;
            header.Prepared = DateTime.Now;
            var sender = new SenderType();
            header.Sender = sender;

            string senderId;
            if (beans != null && beans.Header != null && beans.Header.Sender != null)
            {
                // Get header information from the supplied beans
                senderId = beans.Header.Sender.Id;
            }
            else
            {
                // Get header info from HeaderHelper
                senderId = HeaderHelper.Instance.SenderId;
            }

            sender.id = senderId;

            if (ObjectUtil.ValidArray(receivers))
            {
                /* foreach */
                foreach (string currentReviever in receivers)
                {
                    var receiver = new PartyType();
                    header.Receiver.Add(receiver);
                    receiver.id = currentReviever;
                }
            }
            else
            {
                var receiver0 = new PartyType();
                header.Receiver.Add(receiver0);
                receiver0.id = HeaderHelper.Instance.ReceiverId;
            }
        }
 /// <summary>
 /// Process the header.
 /// </summary>
 /// <param name="baseHeaderType">
 /// The base header type.
 /// </param>
 /// <returns>
 /// The <see cref="IHeader"/>.
 /// </returns>
 private static IHeader ProcessHeader(BaseHeaderType baseHeaderType)
 {
     return new HeaderImpl(baseHeaderType);
 }
Ejemplo n.º 3
0
        ///////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////BUILD FROM V2.1 SCHEMA                ////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Initializes a new instance of the <see cref="HeaderImpl"/> class.
        /// </summary>
        /// <param name="headerType">
        /// The header type. 
        /// </param>
        public HeaderImpl(BaseHeaderType headerType)
        {
            this._additionalAttributes = new Dictionary<string, string>();
            this._name = new List<ITextTypeWrapper>();
            this._source = new List<ITextTypeWrapper>();
            this._receiver = new List<IParty>();
            this._structureReferences = new List<IDatasetStructureReference>();
            this._test = headerType.Test;
            if (headerType.DataProvider != null)
            {
                this._dataProviderReference = RefUtil.CreateReference(headerType.DataProvider);
            }

            if (headerType.DataSetAction != null)
            {
                switch (headerType.DataSetAction)
                {
                    case ActionTypeConstants.Append:
                        this._datasetAction = DatasetAction.GetFromEnum(DatasetActionEnumType.Append);
                        break;
                    case ActionTypeConstants.Replace:
                        this._datasetAction = DatasetAction.GetFromEnum(DatasetActionEnumType.Replace);
                        break;
                    case ActionTypeConstants.Delete:
                        this._datasetAction = DatasetAction.GetFromEnum(DatasetActionEnumType.Delete);
                        break;
                }
            }

            if (ObjectUtil.ValidCollection(headerType.DataSetID))
            {
                this._datasetId = headerType.DataSetID[0];
            }

            this._id = headerType.ID;
            if (headerType.EmbargoDate != null)
            {
                this._embargoDate = headerType.EmbargoDate.Value;
            }

            if (headerType.Extracted != null)
            {
                this._extracted = headerType.Extracted;
            }

            if (ObjectUtil.ValidCollection(headerType.Name))
            {
                foreach (Name tt in headerType.Name)
                {
                    this._name.Add(new TextTypeWrapperImpl(tt, null));
                }
            }

            var prepared = headerType.Prepared as DateTime?;
            if (prepared != null)
            {
                this._prepared = prepared;
            }

            if (ObjectUtil.ValidCollection(headerType.Receiver))
            {
                foreach (PartyType party in headerType.Receiver)
                {
                    this._receiver.Add(new PartyCore(party));
                }
            }

            if (headerType.ReportingBegin != null)
            {
                this._reportingBegin = DateUtil.FormatDate(headerType.ReportingBegin, true);
            }

            if (headerType.ReportingEnd != null)
            {
                this._reportingEnd = DateUtil.FormatDate(headerType.ReportingEnd, true);
            }

            if (headerType.Sender != null)
            {
                this._sender = new PartyCore(headerType.Sender);
            }

            if (ObjectUtil.ValidCollection(headerType.Source))
            {
                foreach (TextType textType in headerType.Source)
                {
                    this._source.Add(new TextTypeWrapperImpl(textType, null));
                }
            }

            if (ObjectUtil.ValidCollection(headerType.Structure))
            {
                foreach (PayloadStructureType payloadSt in headerType.Structure)
                {
                    this._structureReferences.Add(new DatasetStructureReferenceCore(payloadSt));
                }
            }

            this.Validate();
        }