diff --git a/src/WebIndex.App/config/webexpress.config.xml b/src/WebIndex.App/config/webexpress.config.xml
index d56b94c..1336d5b 100644
--- a/src/WebIndex.App/config/webexpress.config.xml
+++ b/src/WebIndex.App/config/webexpress.config.xml
@@ -7,10 +7,10 @@
http://localhost/
-
- 300
- 3000000000
-
+
+ 300
+ 3000000000
+
de-DE
diff --git a/src/WebIndex/WebExpress.Tutorial.WebIndex.csproj b/src/WebIndex/WebExpress.Tutorial.WebIndex.csproj
index b3fc216..168adab 100644
--- a/src/WebIndex/WebExpress.Tutorial.WebIndex.csproj
+++ b/src/WebIndex/WebExpress.Tutorial.WebIndex.csproj
@@ -24,8 +24,11 @@
+
+
+
+
-
diff --git a/src/WebIndex/WebFragment/Content/Catalog/CatalogRestFormAdd.cs b/src/WebIndex/WebFragment/Content/Catalog/CatalogDataFormAdd.cs
similarity index 97%
rename from src/WebIndex/WebFragment/Content/Catalog/CatalogRestFormAdd.cs
rename to src/WebIndex/WebFragment/Content/Catalog/CatalogDataFormAdd.cs
index c5dfe0a..8196c85 100644
--- a/src/WebIndex/WebFragment/Content/Catalog/CatalogRestFormAdd.cs
+++ b/src/WebIndex/WebFragment/Content/Catalog/CatalogDataFormAdd.cs
@@ -14,7 +14,7 @@ namespace WebExpress.Tutorial.WebIndex.WebFragment.Content.Catalog
///
[Section]
[Scope]
- public class CatalogFormAdd : FragmentControlRestFormAdd
+ public class CatalogFormAdd : FragmentControlDataFormAdd
{
///
/// Gets or sets the uir associated with the object.
diff --git a/src/WebIndex/WebFragment/Content/Catalog/CatalogRestFormDelete.cs b/src/WebIndex/WebFragment/Content/Catalog/CatalogDataFormDelete.cs
similarity index 96%
rename from src/WebIndex/WebFragment/Content/Catalog/CatalogRestFormDelete.cs
rename to src/WebIndex/WebFragment/Content/Catalog/CatalogDataFormDelete.cs
index db416c3..bdd2d76 100644
--- a/src/WebIndex/WebFragment/Content/Catalog/CatalogRestFormDelete.cs
+++ b/src/WebIndex/WebFragment/Content/Catalog/CatalogDataFormDelete.cs
@@ -11,7 +11,7 @@ namespace WebExpress.Tutorial.WebIndex.WebFragment.Content.Catalog
///
/// Represents a form for deleting a catalog index item.
///
- public class CatalogFormDelete : FragmentControlRestFormDelete
+ public class CatalogFormDelete : FragmentControlDataFormDelete
{
///
/// Initializes a new instance of the class.
diff --git a/src/WebIndex/WebFragment/Content/Catalog/CatalogRestFormEdit.cs b/src/WebIndex/WebFragment/Content/Catalog/CatalogDataFormEdit.cs
similarity index 97%
rename from src/WebIndex/WebFragment/Content/Catalog/CatalogRestFormEdit.cs
rename to src/WebIndex/WebFragment/Content/Catalog/CatalogDataFormEdit.cs
index 760bca2..1929224 100644
--- a/src/WebIndex/WebFragment/Content/Catalog/CatalogRestFormEdit.cs
+++ b/src/WebIndex/WebFragment/Content/Catalog/CatalogDataFormEdit.cs
@@ -14,7 +14,7 @@ namespace WebExpress.Tutorial.WebIndex.WebFragment.Content.Catalog
///
[Section]
[Scope]
- public class CatalogFormEdit : FragmentControlRestFormEdit
+ public class CatalogFormEdit : FragmentControlDataFormEdit
{
///
/// Gets or sets the uir associated with the object.
diff --git a/src/WebIndex/WebFragment/Content/Catalog/CatalogTable.cs b/src/WebIndex/WebFragment/Content/Catalog/CatalogTable.cs
index 0feffca..06d788e 100644
--- a/src/WebIndex/WebFragment/Content/Catalog/CatalogTable.cs
+++ b/src/WebIndex/WebFragment/Content/Catalog/CatalogTable.cs
@@ -1,4 +1,6 @@
-using WebExpress.WebApp.WebFragment;
+using System.Net.Http;
+using WebExpress.WebApp.WebData;
+using WebExpress.WebApp.WebFragment;
using WebExpress.WebApp.WebSection;
using WebExpress.WebCore.WebAttribute;
using WebExpress.WebCore.WebFragment;
@@ -16,7 +18,7 @@ namespace WebExpress.Tutorial.WebIndex.WebFragment.Content.Catalog
///
[Section]
[Scope]
- public sealed class CatalogTable : FragmentControlRestTable
+ public sealed class CatalogTable : FragmentControlDataTable
{
///
/// Initializes a new instance of the class.
@@ -26,7 +28,15 @@ public sealed class CatalogTable : FragmentControlRestTable
public CatalogTable(ISitemapManager sitemapManager, IFragmentContext fragmentContext)
: base(fragmentContext)
{
- RestUri = _ => sitemapManager.GetUri(fragmentContext.ApplicationContext);
+ // the logical names of the closed query vocabulary map to their
+ // historical wire names through the typed helpers; this endpoint
+ // answers with an item list rather than the table row shape
+ ServiceFactory = renderContext => new DataServiceBuilder("data")
+ .Endpoint()
+ .Method(HttpMethod.Get)
+ .Query(q => q.Search().Wql().Filter().Page().PageSize().OrderBy().OrderDir())
+ .Response(r => r.Items().Total())
+ .Build(renderContext);
}
///
diff --git a/src/WebIndex/WebFragment/Content/Seed/SeedRestFormAdd.cs b/src/WebIndex/WebFragment/Content/Seed/SeedDataFormAdd.cs
similarity index 92%
rename from src/WebIndex/WebFragment/Content/Seed/SeedRestFormAdd.cs
rename to src/WebIndex/WebFragment/Content/Seed/SeedDataFormAdd.cs
index 58fe5e6..25821c8 100644
--- a/src/WebIndex/WebFragment/Content/Seed/SeedRestFormAdd.cs
+++ b/src/WebIndex/WebFragment/Content/Seed/SeedDataFormAdd.cs
@@ -12,7 +12,7 @@ namespace WebExpress.Tutorial.WebIndex.WebFragment.Content.Seed
///
[Section]
[Scope]
- public sealed class SeedRestFormAdd : FragmentControlRestFormAdd
+ public sealed class SeedDataFormAdd : FragmentControlDataFormAdd
{
///
/// Gets the control element for entering the login identifier.
@@ -30,7 +30,7 @@ public sealed class SeedRestFormAdd : FragmentControlRestFormAdd
///
/// The sitemap manager.
/// The context of the fragment.
- public SeedRestFormAdd(ISitemapManager sitemapManager, IFragmentContext fragmentContext)
+ public SeedDataFormAdd(ISitemapManager sitemapManager, IFragmentContext fragmentContext)
: base(fragmentContext)
{
Add(Url);
diff --git a/src/WebIndex/WebFragment/Content/Seed/SeedRestFormDelete.cs b/src/WebIndex/WebFragment/Content/Seed/SeedDataFormDelete.cs
similarity index 93%
rename from src/WebIndex/WebFragment/Content/Seed/SeedRestFormDelete.cs
rename to src/WebIndex/WebFragment/Content/Seed/SeedDataFormDelete.cs
index f2e55cb..7d9f4ad 100644
--- a/src/WebIndex/WebFragment/Content/Seed/SeedRestFormDelete.cs
+++ b/src/WebIndex/WebFragment/Content/Seed/SeedDataFormDelete.cs
@@ -15,14 +15,14 @@ namespace WebExpress.Tutorial.WebIndex.WebFragment.Content.Seed
///
[Section]
[Scope]
- public sealed class SeedRestFormDelete : FragmentControlRestFormDelete
+ public sealed class SeedDataFormDelete : FragmentControlDataFormDelete
{
///
/// Initializes a new instance of the class.
///
/// The sitemap manager.
/// The context of the fragment.
- public SeedRestFormDelete(ISitemapManager sitemapManager, IFragmentContext fragmentContext)
+ public SeedDataFormDelete(ISitemapManager sitemapManager, IFragmentContext fragmentContext)
: base(fragmentContext)
{
Uri = _ => sitemapManager.GetUri(fragmentContext.ApplicationContext);
diff --git a/src/WebIndex/WebFragment/Content/Seed/SeedRestFormEdit.cs b/src/WebIndex/WebFragment/Content/Seed/SeedDataFormEdit.cs
similarity index 94%
rename from src/WebIndex/WebFragment/Content/Seed/SeedRestFormEdit.cs
rename to src/WebIndex/WebFragment/Content/Seed/SeedDataFormEdit.cs
index 1107727..4b589d5 100644
--- a/src/WebIndex/WebFragment/Content/Seed/SeedRestFormEdit.cs
+++ b/src/WebIndex/WebFragment/Content/Seed/SeedDataFormEdit.cs
@@ -15,7 +15,7 @@ namespace WebExpress.Tutorial.WebIndex.WebFragment.Content.Seed
///
[Section]
[Scope]
- public sealed class SeedRestFormEdit : FragmentControlRestFormEdit
+ public sealed class SeedDataFormEdit : FragmentControlDataFormEdit
{
///
/// Gets the control element for entering the login identifier.
@@ -33,7 +33,7 @@ public sealed class SeedRestFormEdit : FragmentControlRestFormEdit
///
/// The sitemap manager.
/// The context of the fragment.
- public SeedRestFormEdit(ISitemapManager sitemapManager, IFragmentContext fragmentContext)
+ public SeedDataFormEdit(ISitemapManager sitemapManager, IFragmentContext fragmentContext)
: base(fragmentContext)
{
Add(Url);
diff --git a/src/WebIndex/WebFragment/Content/Seed/SeedTable.cs b/src/WebIndex/WebFragment/Content/Seed/SeedTable.cs
index 137171e..3831604 100644
--- a/src/WebIndex/WebFragment/Content/Seed/SeedTable.cs
+++ b/src/WebIndex/WebFragment/Content/Seed/SeedTable.cs
@@ -1,4 +1,6 @@
-using WebExpress.WebApp.WebFragment;
+using System.Net.Http;
+using WebExpress.WebApp.WebData;
+using WebExpress.WebApp.WebFragment;
using WebExpress.WebApp.WebSection;
using WebExpress.WebCore.WebAttribute;
using WebExpress.WebCore.WebFragment;
@@ -13,7 +15,7 @@ namespace WebExpress.Tutorial.WebIndex.WebFragment.Content.Seed
///
[Section]
[Scope]
- public sealed class SeedTable : FragmentControlRestTable
+ public sealed class SeedTable : FragmentControlDataTable
{
private readonly ISitemapManager _sitemapManager;
@@ -26,7 +28,16 @@ public SeedTable(ISitemapManager sitemapManager, IFragmentContext fragmentContex
: base(fragmentContext)
{
_sitemapManager = sitemapManager;
- RestUri = _ => _sitemapManager.GetUri(fragmentContext.ApplicationContext);
+
+ // the logical names of the closed query vocabulary map to their
+ // historical wire names through the typed helpers; this endpoint
+ // answers with an item list rather than the table row shape
+ ServiceFactory = renderContext => new DataServiceBuilder("data")
+ .Endpoint()
+ .Method(HttpMethod.Get)
+ .Query(q => q.Search().Wql().Filter().Page().PageSize().OrderBy().OrderDir())
+ .Response(r => r.Items().Total())
+ .Build(renderContext);
}
///