public static async Task WriteStreetName( this ISyndicationFeedWriter writer, IOptions <ResponseOptions> responseOptions, AtomFormatter formatter, string category, StreetNameSyndicationQueryResult streetName) { var item = new SyndicationItem { Id = streetName.Position.ToString(CultureInfo.InvariantCulture), Title = $"{streetName.ChangeType}-{streetName.Position}", Published = streetName.RecordCreatedAt.ToBelgianDateTimeOffset(), LastUpdated = streetName.LastChangedOn.ToBelgianDateTimeOffset(), Description = BuildDescription(streetName, responseOptions.Value.Naamruimte) }; // TODO: Hier moet prolly version nog ergens in if (streetName.PersistentLocalId.HasValue) { item.AddLink( new SyndicationLink( new Uri($"{responseOptions.Value.Naamruimte}/{streetName.PersistentLocalId.Value}"), AtomLinkTypes.Related)); item.AddLink( new SyndicationLink( new Uri(string.Format(responseOptions.Value.DetailUrl, streetName.PersistentLocalId.Value)), AtomLinkTypes.Self)); item.AddLink( new SyndicationLink( new Uri(string.Format($"{responseOptions.Value.DetailUrl}.xml", streetName.PersistentLocalId.Value)), AtomLinkTypes.Alternate) { MediaType = MediaTypeNames.Application.Xml }); item.AddLink( new SyndicationLink( new Uri(string.Format($"{responseOptions.Value.DetailUrl}.json", streetName.PersistentLocalId.Value)), AtomLinkTypes.Alternate) { MediaType = MediaTypeNames.Application.Json }); } item.AddCategory( new SyndicationCategory(category)); item.AddContributor( new SyndicationPerson( "agentschap Informatie Vlaanderen", "*****@*****.**", AtomContributorTypes.Author)); await writer.Write(item); }
public static async Task WriteStreetName( this ISyndicationFeedWriter writer, IOptions <ResponseOptions> responseOptions, AtomFormatter formatter, string category, StreetNameSyndicationQueryResult streetName) { var item = new SyndicationItem { Id = streetName.Position.ToString(CultureInfo.InvariantCulture), Title = $"{streetName.ChangeType}-{streetName.Position}", Published = streetName.RecordCreatedAt.ToBelgianDateTimeOffset(), LastUpdated = streetName.LastChangedOn.ToBelgianDateTimeOffset(), Description = BuildDescription(streetName, responseOptions.Value.Naamruimte) }; if (streetName.PersistentLocalId.HasValue) { item.AddLink( new SyndicationLink( new Uri($"{responseOptions.Value.Naamruimte}/{streetName.PersistentLocalId.Value}"), AtomLinkTypes.Related)); //item.AddLink( // new SyndicationLink( // new Uri(string.Format(responseOptions.Value.DetailUrl, streetName.PersistentLocalId.Value)), // AtomLinkTypes.Self)); //item.AddLink( // new SyndicationLink( // new Uri(string.Format($"{responseOptions.Value.DetailUrl}.xml", streetName.PersistentLocalId.Value)), // AtomLinkTypes.Alternate) // { MediaType = MediaTypeNames.Application.Xml }); //item.AddLink( // new SyndicationLink( // new Uri(string.Format($"{responseOptions.Value.DetailUrl}.json", streetName.PersistentLocalId.Value)), // AtomLinkTypes.Alternate) // { MediaType = MediaTypeNames.Application.Json }); } item.AddCategory( new SyndicationCategory(category)); item.AddContributor( new SyndicationPerson( streetName.Organisation == null ? Organisation.Unknown.ToName() : streetName.Organisation.Value.ToName(), string.Empty, AtomContributorTypes.Author)); await writer.Write(item); }
private static string BuildDescription(StreetNameSyndicationQueryResult streetName, string naamruimte) { if (!streetName.ContainsEvent && !streetName.ContainsObject) { return("No data embedded"); } var content = new SyndicationContent(); if (streetName.ContainsObject) { content.Object = new StreetNameSyndicationContent( streetName.StreetNameId.Value, naamruimte, streetName.PersistentLocalId, streetName.Status, streetName.NisCode, streetName.NameDutch, streetName.NameFrench, streetName.NameGerman, streetName.NameEnglish, streetName.HomonymAdditionDutch, streetName.HomonymAdditionFrench, streetName.HomonymAdditionEnglish, streetName.HomonymAdditionGerman, streetName.IsComplete, streetName.LastChangedOn.ToBelgianDateTimeOffset(), streetName.Organisation, streetName.Reason); } if (streetName.ContainsEvent) { var doc = new XmlDocument(); doc.LoadXml(streetName.EventDataAsXml); content.Event = doc.DocumentElement; } return(content.ToXml()); }