/// <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); }
/////////////////////////////////////////////////////////////////////////////////////////////////// ////////////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(); }