public override BaseResource[] SynchronizeIds(BaseResource[] source, Uri subjectUri, BaseResource[] target)
        {
            MnisAnsweringBody answeringBody = source.OfType <MnisAnsweringBody>().SingleOrDefault();

            if (answeringBody.Id == null)
            {
                answeringBody.Id = subjectUri;
            }

            return(new BaseResource[] { answeringBody });
        }
        public override BaseResource[] TransformSource(XDocument doc)
        {
            MnisAnsweringBody answeringBody = new MnisAnsweringBody();
            XElement          element       = doc.Descendants(m + "properties").SingleOrDefault();

            answeringBody.AnsweringBodyMnisId = element.Element(d + "AnsweringBody_Id").GetText();

            string GroupHasNameSparqlCommand = @"                
                construct {
                    ?answeringBody parl:groupName ?name.
                }
                where {
                    ?answeringBody 
                        parl:answeringBodyMnisId @id;
                        parl:groupName ?name;
                    .
                }";
            SparqlParameterizedString sparql = new SparqlParameterizedString(GroupHasNameSparqlCommand);

            sparql.SetLiteral("id", answeringBody.AnsweringBodyMnisId);
            sparql.Namespaces.AddNamespace("parl", new Uri(schemaNamespace));

            var  groupNameGraph = GraphRetrieval.GetGraph(sparql.ToString(), logger);
            bool groupHasNoName = groupNameGraph.IsEmpty;

            if (groupHasNoName == true)
            {
                answeringBody.GroupName = element.Element(d + "Name").GetText();
            }
            else
            {
                var currentName = groupNameGraph.GetTriplesWithPredicate(new Uri("https://id.parliament.uk/schema/groupName")).FirstOrDefault().Object.ToString();
                answeringBody.GroupName = currentName;
            }

            string departmentId = element.Element(d + "Department_Id").GetText();

            if (string.IsNullOrWhiteSpace(departmentId) == false)
            {
                Uri departmentUri = IdRetrieval.GetSubject("mnisDepartmentId", departmentId, false, logger);
                if (departmentUri != null)
                {
                    answeringBody.Id = departmentUri;
                }
                else
                {
                    logger.Warning($"Department ({departmentId}) not found for Answering Body ({answeringBody.AnsweringBodyMnisId})");
                    return(null);
                }
            }

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