public override BaseResource[] TransformSource(XDocument doc) { FormalBody formalBody = new FormalBody(); XElement formalBodyElement = doc.Element(atom + "entry") .Element(atom + "content") .Element(m + "properties"); formalBody.FormalBodyMnisId = formalBodyElement.Element(d + "Committee_Id").GetText(); formalBody.FormalBodyName = formalBodyElement.Element(d + "Name").GetText(); formalBody.FormalBodyStartDate = formalBodyElement.Element(d + "StartDate").GetDate(); formalBody.FormalBodyHasHouse = generateHouseMembership(formalBodyElement); string parentId = formalBodyElement.Element(d + "ParentCommittee_Id").GetText(); if (string.IsNullOrWhiteSpace(parentId) == false) { Uri parentUri = IdRetrieval.GetSubject("formalBodyMnisId", parentId, false, logger); if (parentId != null) { formalBody.FormalBodyHasParentFormalBody = new List <FormalBody> { new FormalBody() { Id = parentUri } } } ; } formalBody.FormalBodyEndDate = formalBodyElement.Element(d + "EndDate").GetDate(); return(new BaseResource[] { formalBody }); }
public override BaseResource[] SynchronizeIds(BaseResource[] source, Uri subjectUri, BaseResource[] target) { foreach (BaseResource formalBody in source) { formalBody.Id = subjectUri; } FormalBody mnisFormalBody = source.OfType <FormalBody>().SingleOrDefault(); FormalBodyChair targetFormalBodyChair = target.OfType <FormalBodyChair>().SingleOrDefault(); if ((targetFormalBodyChair != null) && (targetFormalBodyChair.Id != null)) { mnisFormalBody.FormalBodyHasFormalBodyChair = new FormalBodyChair() { Id = targetFormalBodyChair.Id } } ; else { mnisFormalBody.FormalBodyHasFormalBodyChair = new FormalBodyChair() { Id = GenerateNewId() } }; return(source); } }
private FormalBody generateFormalBodyMembership(XElement formalBodyElement) { FormalBody formalBody = null; string committeeId = formalBodyElement.Element(d + "Committee_Id").GetText(); if (string.IsNullOrWhiteSpace(committeeId) == false) { Uri formalBodyUri = IdRetrieval.GetSubject("formalBodyMnisId", committeeId, false, logger); if (formalBodyUri != null) { formalBody = new FormalBody() { Id = formalBodyUri } } ; else { logger.Warning($"No committee found for id {committeeId}"); } } else { logger.Warning("No committee data"); } return(formalBody); }
public override BaseResource[] SynchronizeIds(BaseResource[] source, Uri subjectUri, BaseResource[] target) { FormalBody formalBody = source.OfType <FormalBody>().SingleOrDefault(); formalBody.Id = subjectUri; if (formalBody.FormalBodyHasContactPoint != null) { ContactPoint contactPoint = target.OfType <ContactPoint>().SingleOrDefault(); if (contactPoint != null) { formalBody.FormalBodyHasContactPoint.SingleOrDefault().Id = contactPoint.Id; } } return(source); }
public override BaseResource[] TransformSource(JObject jsonResponse) { FormalBody formalBody = new FormalBody(); string id = ((JValue)jsonResponse.SelectToken("ResourceUri")).GetText(); if (string.IsNullOrWhiteSpace(id)) { logger.Warning("No Id info found"); return(null); } else { if (Uri.TryCreate($"{idNamespace}{id}", UriKind.Absolute, out Uri idUri)) { formalBody.Id = idUri; } else { logger.Warning($"Invalid url '{id}' found"); return(null); } } List <FormalBodyType> formalBodyTypes = new List <FormalBodyType>(); Uri committeeTypeUri; foreach (JObject commiteeType in (JArray)jsonResponse.SelectToken("CommitteeType_x003a_TripleStoreI")) { string committeeTypeId = commiteeType["Value"].ToString(); if (string.IsNullOrWhiteSpace(committeeTypeId)) { continue; } if (Uri.TryCreate($"{idNamespace}{committeeTypeId}", UriKind.Absolute, out committeeTypeUri)) { formalBodyTypes.Add(new FormalBodyType() { Id = committeeTypeUri }); } } formalBody.FormalBodyHasFormalBodyType = formalBodyTypes; bool?isCommons = ((JValue)jsonResponse.SelectToken("IsCommons")).GetBoolean(); bool?isLords = ((JValue)jsonResponse.SelectToken("IsLords")).GetBoolean(); if ((isCommons == true) && (isLords == true)) { string houseId = ((JValue)jsonResponse.SelectToken("LeadHouse_x003a_TripleStoreId.Value")).GetText(); if (string.IsNullOrWhiteSpace(houseId) == false) { if (Uri.TryCreate($"{idNamespace}{houseId}", UriKind.Absolute, out Uri houseUri)) { formalBody.FormalBodyHasLeadHouse = new House() { Id = houseUri } } ; else { logger.Warning($"Invalid url '{houseId}' found"); return(null); } } } formalBody.FormalBodyRemit = ((JValue)jsonResponse.SelectToken("Description")).GetText(); formalBody.FormalBodyHasContactPoint = new ContactPoint[] { new ContactPoint() { Id = GenerateNewId(), Email = ((JValue)jsonResponse.SelectToken("Email")).GetText(), PhoneNumber = ((JValue)jsonResponse.SelectToken("Phone")).GetText() } }; return(new BaseResource[] { formalBody }); }