Skip to content

Commit 1b81215

Browse files
committed
Merge branch 'improvement/generic-file-names' into develop
Ensured that the file names reflected the generic type parameters, where appropriate. This was typically used, but not universally. It's a best practice for avoiding ambiguity, and clearly reflecting the class contained within a file.
2 parents 2f98c39 + 4ffb7c8 commit 1b81215

File tree

4 files changed

+10
-5
lines changed

4 files changed

+10
-5
lines changed

OnTopic.ViewModels/_collections/TopicViewModelCollection.cs renamed to OnTopic.ViewModels/_collections/TopicViewModelCollection{TItem}.cs

File renamed without changes.

OnTopic/Collections/Specialized/KeyValuesPair.cs renamed to OnTopic/Collections/Specialized/KeyValuesPair{TKey,TValue}.cs

File renamed without changes.

OnTopic/Internal/Reflection/TopicPropertyDispatcher.cs renamed to OnTopic/Internal/Reflection/TopicPropertyDispatcher{TItem,TValue,TAttributeType}.cs

File renamed without changes.

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)