private ElectoralIncumbency generateIncumbency(XElement contactPointElement) { ElectoralIncumbency incumbency = null; string incumbencyCommand = @" construct { ?id a parl:ParliamentaryIncumbency. } where { ?id parl:parliamentaryIncumbencyHasMember ?parliamentaryIncumbencyHasMember; parl:parliamentaryIncumbencyStartDate ?parliamentaryIncumbencyStartDate. ?parliamentaryIncumbencyHasMember parl:memberMnisId @memberMnisId. } order by desc(?parliamentaryIncumbencyStartDate) limit 1"; Uri incumbencyUri; string mnisId = contactPointElement.Element(d + "Member_Id").GetText(); if (string.IsNullOrWhiteSpace(mnisId)) { logger.Warning("No member info found"); return(null); } SparqlParameterizedString incumbencySparql = new SparqlParameterizedString(incumbencyCommand); incumbencySparql.Namespaces.AddNamespace("parl", new Uri(schemaNamespace)); incumbencySparql.SetLiteral("memberMnisId", mnisId); incumbencyUri = IdRetrieval.GetSubject(incumbencySparql.ToString(), false, logger); if (incumbencyUri != null) { incumbency = new ElectoralIncumbency() { Id = incumbencyUri } } ; else { logger.Verbose("No contact found"); } return(incumbency); }
public override BaseResource[] TransformSource(XDocument doc) { MnisContactPoint contactPoint = new MnisContactPoint(); XElement contactPointElement = doc.Element(atom + "entry") .Element(atom + "content") .Element(m + "properties"); contactPoint.ContactPointMnisId = contactPointElement.Element(d + "MemberAddress_Id").GetText(); contactPoint.Email = contactPointElement.Element(d + "Email").GetText(); contactPoint.FaxNumber = contactPointElement.Element(d + "Fax").GetText(); contactPoint.PhoneNumber = contactPointElement.Element(d + "Phone").GetText(); contactPoint.ContactPointHasPostalAddress = GeneratePostalAddress(contactPointElement); ElectoralIncumbency incumbency = generateIncumbency(contactPointElement); if (incumbency != null) { contactPoint.ContactPointHasElectoralIncumbency = new ElectoralIncumbency[] { incumbency } } ; return(new BaseResource[] { contactPoint }); }