Skip to content

Commit 4ffb7c8

Browse files
committed
Updated README to reflect recent updates
This should have been made prior to the previous merge of `improvement/model-interfaces` (2f98c39). Apologies, future readers, for the clumsy git history.
1 parent c9fac17 commit 4ffb7c8

1 file changed

Lines changed: 10 additions & 5 deletions

File tree

OnTopic/README.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ The `OnTopic` assembly represents the core domain layer of the OnTopic library.
1616
- [Specialty Collections](#specialty-collections)
1717
- [Editor](#editor-1)
1818
- [View Models](#view-models)
19+
- [Binding Models](#binding-models)
1920

2021
## Entities
2122
- **[`Topic`](Topic.cs)**: This is the core entity in OnTopic, and models all attributes, relationships, and references associated with a topic record.
@@ -74,7 +75,7 @@ The `OnTopic.Collections.Specialized` namespace includes a number of collections
7475
- **[`TopicReferenceCollection`](associations/TopicReferenceCollection.cs)**: A `TrackedRecordCollection` of [`TopicReferenceRecord`](Associations/TopicReferenceRecord.cs) instances keyed by `TopicReference.Key`; exposed by `Topic.References`.
7576
- **[`TopicMultiMap`](Collections/Specialized/TopicMultiMap.cs)**: Provides a multi-map (or collection-of-collections) for topics organized by a collection key.
7677
- **[`ReadOnlyTopicMultiMap`](Collections/Specialized/ReadOnlyTopicMultiMap.cs)**: A read-only interface to the `TopicMultiMap`, thus allowing simple enumeration of the collection withouthout exposing any write access.
77-
- **[`TopicRelationshipMultiMap`](associations/TopicRelationshipMultiMap.cs)**: A `TopicMultiMap` of [`KeyValuesPair`](Collections/Specialized/KeyValuesPair.cs) instances keyed by `KeyValuesPair.Key`; exposed by `Topic.Relationships`.
78+
- **[`TopicRelationshipMultiMap`](associations/TopicRelationshipMultiMap.cs)**: A `TopicMultiMap` of [`KeyValuesPair`](Collections/Specialized/KeyValuesPair{TKey,TValue}.cs) instances keyed by `KeyValuesPair.Key`; exposed by `Topic.Relationships`.
7879

7980
### Editor
8081
The following are intended to provide support for the Editor domain objects, `ContentTypeDescriptor` and `AttributeDescriptor`.
@@ -83,10 +84,14 @@ The following are intended to provide support for the Editor domain objects, `Co
8384

8485
## View Models
8586
The core Topic library has been designed to be view model agnostic; i.e., view models should be defined for the specific presentation framework (e.g., ASP.NET Core) and customer. That said, to facilitate reusability of features that work with view models, several interfaces are defined which can be applied as appropriate. These include:
86-
- **[`ITopicViewModel`](Models/ITopicViewModel.cs)**: Includes universal properties such as `Key`, `UniqueKey`, `Id`, `ContentType`, and `Title`.
87-
- **[`IPageTopicViewModel`](Models/IPageTopicViewModel.cs)**: Includes page-specific properties such as `MetaKeywords` and `MetaDescription`.
88-
- **[`INavigationTopicViewModel<T>`](Models/INavigationTopicViewModel{T}.cs)**: Includes `IPageTopicViewModel`, `Children`, and an `IsSelected()` view logic handler, for use with navigation menus.
87+
- **[`ICoreTopicViewModel`](Models/ICoreTopicViewModel.cs)**: Includes core properties `Key` and `ContentType` necessary for every `Topic`.
88+
- **[`ITopicViewModel`](Models/ITopicViewModel.cs)**: Includes universal properties such as `UniqueKey`, `WebPath`, `Id`, and `Title`.
89+
- **[`IHierarchicalTopicViewModel<T>`](Models/IHierarchicalTopicViewModel{T}.cs)**: Includes a generic `Children` property necessary to model a hierarchical graph.
90+
- **[`INavigableTopicViewModel`](Models/INavigableTopicViewModel.cs)**: Includes core properties `Title`, `ShortTitle`, and `WebPath`, necessary treating a topic as a navigable link.
91+
- **[`INavigationTopicViewModel<T>`](Models/INavigationTopicViewModel{T}.cs)**: Includes `IHierarchicalTopicViewModel<T>` and the `IsSelected()` view logic method, for use with navigation menus.
92+
93+
### Binding Models
8994
- **[`ITopicBindingModel`](Models/ITopicBindingModel.cs)**: Includes the bare minimum properties—namely `Key` and `ContentType`—needed to support a binding model that will be consumed by the `IReverseTopicMappingService`.
90-
- **[`IRelatedTopicBindingModel`](Models/IRelatedTopicBindingModel.cs)**: Includes the bare minimum properties—namely `UniqueKey`—needed to reference another topic on a binding model that will be consumed by the `IReverseTopicMappingService`.
95+
- **[`IAssociatedTopicBindingModel`](Models/IAssociatedTopicBindingModel.cs)**: Includes the bare minimum properties—namely `UniqueKey`—needed to associate another topic on a binding model that will be consumed by the `IReverseTopicMappingService`.
9196

9297
In addition to these interfaces, a set of concrete implementations of view models corresponding to the default schemas for the out-of-the-box content types can be found in the [`OnTopic.ViewModels`](../OnTopic.ViewModels/README.md) package.

0 commit comments

Comments
 (0)