/// <summary> /// The method is called every time a new element is encountered during parsing /// </summary> /// <param name="parent"> /// The parent SDMX Model object from Common API namespace /// </param> /// <param name="localName"> /// The name of the element /// </param> /// <returns> /// The handle element. /// </returns> private object HandleElement(object parent, object localName) { object current = null; if (NameTableCache.IsElement(localName, ElementNameTable.Receiver)) { PartyMutable party = this.CreatePartyType(); this._headerObject.Receiver.Add(party); current = party; } else if (NameTableCache.IsElement(localName, ElementNameTable.Sender)) { PartyMutable party = this.CreatePartyType(); this._headerObject.Sender = party; current = party; } else if (NameTableCache.IsElement(localName, ElementNameTable.Contact)) { var party = parent as PartyMutable; IContactMutableObject c = new ContactMutableObjectCore(); //TODO: hack var contact = new ContactCore(c); if (party != null) { party.Contacts.Add(contact); } current = contact; } return current; }
/// <summary> /// This method initializes the log file name. /// The value for this property is configured in the web.config file in the "appSettings" section /// under the "logFileName" key. /// </summary> private void InitialiseHeader() { IList<ITextTypeWrapper> name = new List<ITextTypeWrapper>(); name.Add(new TextTypeWrapperImpl(HeaderSettings.Default.lang, HeaderSettings.Default.name, null)); IList<ITextTypeWrapper> textTypeWrapperSender = new List<ITextTypeWrapper>(); textTypeWrapperSender.Add(new TextTypeWrapperImpl(HeaderSettings.Default.lang, HeaderSettings.Default.sendername, null)); IContactMutableObject senderContact = new ContactMutableObjectCore(); senderContact.AddName(new TextTypeWrapperMutableCore(HeaderSettings.Default.lang, HeaderSettings.Default.sendercontactname)); senderContact.AddDepartment(new TextTypeWrapperMutableCore(HeaderSettings.Default.lang, HeaderSettings.Default.sendercontactdepartment)); senderContact.AddRole(new TextTypeWrapperMutableCore(HeaderSettings.Default.lang, HeaderSettings.Default.sendercontactrole)); if (!string.IsNullOrEmpty(HeaderSettings.Default.sendercontacttelephone)) { senderContact.AddTelephone(HeaderSettings.Default.sendercontacttelephone); } if (!string.IsNullOrEmpty(HeaderSettings.Default.sendercontactfax)) { senderContact.AddFax(HeaderSettings.Default.sendercontactfax); } if (!string.IsNullOrEmpty(HeaderSettings.Default.sendercontactx400)) { senderContact.AddX400(HeaderSettings.Default.sendercontactx400); } if (!string.IsNullOrEmpty(HeaderSettings.Default.sendercontacturi)) { senderContact.AddUri(HeaderSettings.Default.sendercontacturi); } if (!string.IsNullOrEmpty(HeaderSettings.Default.sendercontactemail)) { senderContact.AddEmail(HeaderSettings.Default.sendercontactemail); } // SENDER IContact contactImmutableSender = new ContactCore(senderContact); IList<IContact> contactsSender = new List<IContact>(); contactsSender.Add(contactImmutableSender); IParty sender = new PartyCore(textTypeWrapperSender, HeaderSettings.Default.senderid, contactsSender, null); IList<ITextTypeWrapper> textTypeWrapperReceiver = new List<ITextTypeWrapper>(); textTypeWrapperReceiver.Add(new TextTypeWrapperImpl(HeaderSettings.Default.lang, HeaderSettings.Default.receivername, null)); IContactMutableObject receiverContact = new ContactMutableObjectCore(); receiverContact.AddName(new TextTypeWrapperMutableCore(HeaderSettings.Default.lang, HeaderSettings.Default.receivercontactname)); receiverContact.AddDepartment(new TextTypeWrapperMutableCore(HeaderSettings.Default.lang, HeaderSettings.Default.receivercontactdepartment)); receiverContact.AddRole(new TextTypeWrapperMutableCore(HeaderSettings.Default.lang, HeaderSettings.Default.receivercontactrole)); if (!string.IsNullOrEmpty(HeaderSettings.Default.receivercontacttelephone)) { receiverContact.AddTelephone(HeaderSettings.Default.receivercontacttelephone); } if (!string.IsNullOrEmpty(HeaderSettings.Default.receivercontactfax)) { receiverContact.AddFax(HeaderSettings.Default.receivercontactfax); } if (!string.IsNullOrEmpty(HeaderSettings.Default.receivercontactx400)) { receiverContact.AddX400(HeaderSettings.Default.receivercontactx400); } if (!string.IsNullOrEmpty(HeaderSettings.Default.receivercontacturi)) { receiverContact.AddUri(HeaderSettings.Default.receivercontacturi); } if (!string.IsNullOrEmpty(HeaderSettings.Default.receivercontactemail)) { receiverContact.AddEmail(HeaderSettings.Default.receivercontactemail); } // RECEIVER IContact contactImmutableReceiver = new ContactCore(receiverContact); IList<IContact> contactsReceiver = new List<IContact>(); contactsReceiver.Add(contactImmutableReceiver); IParty receiver = new PartyCore(textTypeWrapperReceiver, HeaderSettings.Default.receiverid, contactsReceiver, null); IList<IParty> receiverList = new List<IParty>(); receiverList.Add(receiver); IDictionary<string, string> additionalAttributes = new Dictionary<string, string>(); additionalAttributes.Add(NameTableCache.GetElementName(ElementNameTable.KeyFamilyRef), HeaderSettings.Default.keyfamilyref); additionalAttributes.Add(NameTableCache.GetElementName(ElementNameTable.KeyFamilyAgency), HeaderSettings.Default.keyfamilyagency); additionalAttributes.Add(NameTableCache.GetElementName(ElementNameTable.DataSetAgency), HeaderSettings.Default.datasetagency); DateTime extracted, prepared, reportingBegin, reportingEnd; bool isValid = DateTime.TryParse(HeaderSettings.Default.extracted, out extracted); if (!isValid) { extracted = DateTime.Now; } isValid = DateTime.TryParse(HeaderSettings.Default.reportingbegin, out reportingBegin); if (!isValid) { reportingBegin = DateTime.Now; } isValid = DateTime.TryParse(HeaderSettings.Default.reportingend, out reportingEnd); if (!isValid) { reportingEnd = DateTime.Now; } isValid = DateTime.TryParse(HeaderSettings.Default.prepared, out prepared); if (!isValid) { prepared = DateTime.Now; } IList<ITextTypeWrapper> source = new List<ITextTypeWrapper>(); if (!string.IsNullOrEmpty(HeaderSettings.Default.source)) { source.Add(new TextTypeWrapperImpl(HeaderSettings.Default.lang, HeaderSettings.Default.source, null)); } this._header = new HeaderImpl( additionalAttributes, null, null, DatasetAction.GetAction(HeaderSettings.Default.datasetaction), HeaderSettings.Default.id, HeaderSettings.Default.datasetid, null, extracted, prepared, reportingBegin, reportingEnd, name, source, receiverList, sender, bool.Parse(HeaderSettings.Default.test)); }
/// <summary> /// Builds the receivers. /// </summary> /// <returns>The senders </returns> private static IList<IParty> BuildReceivers() { var receiverNames = new ITextTypeWrapper[] { new TextTypeWrapperImpl("en", "receiver name", null) }; var mutableContactReceiver = new ContactMutableObjectCore(); mutableContactReceiver.AddEmail("*****@*****.**"); IList<IContact> receiverContacts = new IContact[] { new ContactCore(mutableContactReceiver) }; string timeZone = "+02:00"; var receiver = new PartyCore(receiverNames, "RC0", receiverContacts, timeZone); return new IParty[] { receiver }; }
/// <summary> /// This method populates the Contacts. /// </summary> /// <param name="mappingStoreDb"> /// The <see cref="Database"/> instance for Mapping Store database /// </param> /// <param name="partySysId"> /// The party system identifier. In the database the column PARTY.PARTY_ID /// </param> /// <param name="contacts"> /// The list of contacts to be populated i /// </param> private static void PopulatePartyContacts(Database mappingStoreDb, long partySysId, ICollection<IContact> contacts) { string paramId = mappingStoreDb.BuildParameterName(ParameterNameConstants.IdParameter); var sqlCommand = new StringBuilder(); sqlCommand.Append("SELECT CONTACT.CONTACT_ID, CONTACT.PARTY_ID "); sqlCommand.Append("FROM CONTACT "); sqlCommand.AppendFormat("WHERE CONTACT.PARTY_ID = {0} ", paramId); using (DbCommand command = mappingStoreDb.GetSqlStringCommand(sqlCommand.ToString())) { mappingStoreDb.AddInParameter(command, ParameterNameConstants.IdParameter, DbType.Int64, partySysId); using (IDataReader dataReader = mappingStoreDb.ExecuteReader(command)) { while (dataReader.Read()) { var contact = new ContactMutableObjectCore(); long contactSysId = DataReaderHelper.GetInt64(dataReader, "CONTACT_ID"); PopulateContactLocalisedStrings(mappingStoreDb, contactSysId, contact); PopulateContactDetails(mappingStoreDb, contactSysId, contact); contacts.Add(new ContactCore(contact)); } } } }
/// <summary> /// Builds the sender. /// </summary> /// <returns> /// The <see cref="PartyCore"/>. /// </returns> private static PartyCore BuildSender() { var senderContact1Mutable = new ContactMutableObjectCore(); senderContact1Mutable.AddDepartment(new TextTypeWrapperMutableCore("en", "A department")); senderContact1Mutable.AddName(new TextTypeWrapperMutableCore("en", "a contact name")); senderContact1Mutable.AddName(new TextTypeWrapperMutableCore("it", "a contact name")); senderContact1Mutable.AddEmail("*****@*****.**"); senderContact1Mutable.AddTelephone("+12 (0)34567890"); var senderContact2Mutable = new ContactMutableObjectCore(); senderContact2Mutable.AddRole(new TextTypeWrapperMutableCore("en", "A role")); senderContact2Mutable.AddRole(new TextTypeWrapperMutableCore("it", "A role")); senderContact1Mutable.AddEmail("*****@*****.**"); IContact senderContact1 = new ContactCore(senderContact1Mutable); IContact senderContact2 = new ContactCore(senderContact2Mutable); IList<IContact> senderContacts = new[] { senderContact1, senderContact2 }; var sender = new PartyCore(null, "TestSender", senderContacts, null); return sender; }