Example #1
0
        public override BaseResource[] TransformSource(XDocument doc)
        {
            Member   member = new Member();
            XElement seatIncumbencyElement = doc.Element(atom + "entry")
                                             .Element(atom + "content")
                                             .Element(m + "properties");

            ParliamentaryIncumbency incumbency = new ParliamentaryIncumbency();

            incumbency.ParliamentaryIncumbencyStartDate = seatIncumbencyElement.Element(d + "StartDate").GetDate();
            incumbency.ParliamentaryIncumbencyEndDate   = seatIncumbencyElement.Element(d + "EndDate").GetDate();
            string memberId  = seatIncumbencyElement.Element(d + "Member_Id").GetText();
            Uri    memberUri = IdRetrieval.GetSubject("memberMnisId", memberId, false, logger);

            if (memberUri == null)
            {
                logger.Warning($"No member found for {memberId}");
                return(null);
            }
            incumbency.ParliamentaryIncumbencyHasMember = new Member()
            {
                Id = memberUri
            };
            incumbency.CommonsSeatIncumbencyMnisId = seatIncumbencyElement.Element(d + "MemberConstituency_Id").GetText();
            ParliamentPeriod parliamentPeriod = generateSeatIncumbencyParliamentPeriod(incumbency.ParliamentaryIncumbencyStartDate.Value, incumbency.ParliamentaryIncumbencyEndDate);

            if (parliamentPeriod != null)
            {
                incumbency.SeatIncumbencyHasParliamentPeriod = new ParliamentPeriod[] { parliamentPeriod }
            }
            ;

            string constituencyId   = seatIncumbencyElement.Element(d + "Constituency_Id").GetText();
            string houseSeatCommand = @"
        construct {
            ?id a parl:HouseSeat.
        }
        where {
            ?id parl:houseSeatHasConstituencyGroup ?houseSeatHasConstituencyGroup.
            ?houseSeatHasConstituencyGroup parl:constituencyGroupMnisId @constituencyGroupMnisId.
        }";
            SparqlParameterizedString seatSparql = new SparqlParameterizedString(houseSeatCommand);

            seatSparql.Namespaces.AddNamespace("parl", new Uri(schemaNamespace));
            seatSparql.SetLiteral("constituencyGroupMnisId", constituencyId);
            Uri houseSeatUri = IdRetrieval.GetSubject(seatSparql.ToString(), false, logger);

            if (houseSeatUri != null)
            {
                incumbency.SeatIncumbencyHasHouseSeat = new HouseSeat()
                {
                    Id = houseSeatUri
                }
            }
            ;

            return(new BaseResource[] { incumbency });
        }
        private ParliamentaryIncumbency generateIncumbency(XElement contactPointElement)
        {
            ParliamentaryIncumbency 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 ParliamentaryIncumbency()
                {
                    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);
            ParliamentaryIncumbency incumbency = generateIncumbency(contactPointElement);

            if (incumbency != null)
            {
                contactPoint.ContactPointHasParliamentaryIncumbency = new ParliamentaryIncumbency[] { incumbency }
            }
            ;

            return(new BaseResource[] { contactPoint });
        }
Example #4
0
        public override BaseResource[] TransformSource(JObject jsonResponse)
        {
            ParliamentaryIncumbency parliamentaryIncumbency = new ParliamentaryIncumbency();

            string id  = ((JValue)jsonResponse.SelectToken("OData__x0049_D0")).GetText();
            Uri    uri = null;

            if (string.IsNullOrWhiteSpace(id))
            {
                logger.Warning("No Id info found");
                return(null);
            }
            else
            {
                if (Uri.TryCreate($"{idNamespace}{id}", UriKind.Absolute, out uri))
                {
                    parliamentaryIncumbency.Id = uri;
                }
                else
                {
                    logger.Warning($"Invalid url '{id}' found");
                    return(null);
                }
            }
            Uri houseSeatUri = giveMeUri(jsonResponse, "Seat_x0020_ID_x0020__x0028_for_x");

            if (houseSeatUri == null)
            {
                return(null);
            }
            else
            {
                parliamentaryIncumbency.SeatIncumbencyHasHouseSeat = new HouseSeat()
                {
                    Id = houseSeatUri
                }
            };

            Uri personUri = giveMeUri(jsonResponse, "Person_x0020_ID_x0020__x0028_for");

            if (personUri == null)
            {
                return(null);
            }
            else
            {
                parliamentaryIncumbency.ParliamentaryIncumbencyHasMember = new Member()
                {
                    Id = personUri
                }
            };

            float?mnisId = ((JValue)jsonResponse.SelectToken("MNIS_x0020_ID")).GetFloat();

            if (mnisId.HasValue)
            {
                parliamentaryIncumbency.LordsSeatIncumbencyMnisId = Convert.ToInt32(mnisId.Value).ToString();
            }
            parliamentaryIncumbency.ParliamentaryIncumbencyStartDate  = ((JValue)jsonResponse.SelectToken("Start_x0020_Date")).GetDate();
            parliamentaryIncumbency.ParliamentaryIncumbencyEndDate    = ((JValue)jsonResponse.SelectToken("End_x0020_Date")).GetDate();
            parliamentaryIncumbency.SeatIncumbencyHasParliamentPeriod = giveMeParliamentPeriods(parliamentaryIncumbency.ParliamentaryIncumbencyStartDate.Value, parliamentaryIncumbency.ParliamentaryIncumbencyEndDate);
            if (parliamentaryIncumbency.SeatIncumbencyHasParliamentPeriod == null)
            {
                return(null);
            }

            return(new BaseResource[] { parliamentaryIncumbency });
        }