Пример #1
0
        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 });
        }
Пример #2
0
        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);
        }
    }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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 });
        }