public static async Task WriteMunicipality(
            this ISyndicationFeedWriter writer,
            IOptions <ResponseOptions> responseOptions,
            AtomFormatter formatter,
            string category,
            MunicipalitySyndicationQueryResult municipality)
        {
            var item = new SyndicationItem
            {
                Id          = municipality.Position.ToString(CultureInfo.InvariantCulture),
                Title       = $"{municipality.ChangeType}-{municipality.Position}",
                Published   = municipality.RecordCreatedAt.ToBelgianDateTimeOffset(),
                LastUpdated = municipality.LastChangedOn.ToBelgianDateTimeOffset(),
                Description = BuildDescription(municipality, responseOptions.Value.Naamruimte)
            };

            if (!string.IsNullOrWhiteSpace(municipality.NisCode))
            {
                item.AddLink(
                    new SyndicationLink(
                        new Uri($"{responseOptions.Value.Naamruimte}/{municipality.NisCode}"),
                        AtomLinkTypes.Related));

                //item.AddLink(
                //    new SyndicationLink(
                //        new Uri(string.Format(responseOptions.Value.DetailUrl, municipality.NisCode)),
                //        AtomLinkTypes.Self));

                //item.AddLink(
                //    new SyndicationLink(
                //        new Uri(string.Format($"{responseOptions.Value.DetailUrl}.xml", municipality.NisCode)),
                //        AtomLinkTypes.Alternate)
                //    { MediaType = MediaTypeNames.Application.Xml });

                //item.AddLink(
                //    new SyndicationLink(
                //            new Uri(string.Format($"{responseOptions.Value.DetailUrl}.json", municipality.NisCode)),
                //        AtomLinkTypes.Alternate)
                //    { MediaType = MediaTypeNames.Application.Json });
            }

            item.AddCategory(
                new SyndicationCategory(category));

            item.AddContributor(
                new SyndicationPerson(
                    municipality.Organisation == null ? Organisation.Unknown.ToName() : municipality.Organisation.Value.ToName(),
                    string.Empty,
                    AtomContributorTypes.Author));

            await writer.Write(item);
        }
        private static string BuildDescription(MunicipalitySyndicationQueryResult municipality, string naamruimte)
        {
            if (!municipality.ContainsEvent && !municipality.ContainsObject)
            {
                return("No data embedded");
            }

            var content = new SyndicationContent();

            if (municipality.ContainsObject)
            {
                content.Object = new MunicipalitySyndicationContent(
                    municipality.MunicipalityId.Value,
                    naamruimte,
                    municipality.Status,
                    municipality.NisCode,
                    municipality.OfficialLanguages,
                    municipality.FacilitiesLanguages,
                    municipality.NameDutch,
                    municipality.NameFrench,
                    municipality.NameGerman,
                    municipality.NameEnglish,
                    municipality.LastChangedOn.ToBelgianDateTimeOffset(),
                    municipality.Organisation,
                    municipality.Reason);
            }

            if (municipality.ContainsEvent)
            {
                var doc = new XmlDocument();
                doc.LoadXml(municipality.EventDataAsXml);
                content.Event = doc.DocumentElement;
            }

            return(content.ToXml());
        }