Example #1
0
        public async Task <QueryResponse <string> > Query(BlogQueryRequest query, CancellationToken cancellationToken = default)
        {
            switch (query.Type)
            {
            case BlogQueryRequestStrings.Sitemap:
            {
                var baseAddress    = query.GetBaseAddress() ?? string.Empty;
                var siteMapBuilder = await this.BuildSitemap(baseAddress);

                StringBuilder sb = new StringBuilder();
                await using (var writer = XmlWriter.Create(sb, new XmlWriterSettings {
                        Async = true
                    }))
                    siteMapBuilder.Build().WriteTo(writer);
                return(QueryResponse.Success(sb.ToString()));
            }

            case BlogQueryRequestStrings.AtomFeed:
            {
                var baseAddress = query.GetBaseAddress() ?? string.Empty;
                var feed        = await this.BuildSyndication(baseAddress);

                StringBuilder sb = new StringBuilder();
                using (var writer = XmlWriter.Create(sb, new XmlWriterSettings {
                        Async = true
                    }))
                    feed.GetAtom10Formatter().WriteTo(writer);
                return(QueryResponse.Success(sb.ToString()));
            }

            default:
                return(QueryResponse.Error <string>());
            }
        }
Example #2
0
 public Task <QueryResponse <string> > Query(BlogQueryRequest query, CancellationToken cancellationToken = default)
 {
     return(Task.FromResult(QueryResponse.Error <string>())); // TODO: use generated sitemap
 }