Skip to content

Commit 2df59ad

Browse files
committed
Merge branch 'maintenance/documentation-updates' into develop
2 parents df23797 + 67296a8 commit 2df59ad

File tree

7 files changed

+45
-2
lines changed

7 files changed

+45
-2
lines changed

OnTopic.Data.Caching/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ The `CachedTopicRepository` provides an in-memory wrapper around an `ITopicRepos
44
[![OnTopic.Data.Caching package in Internal feed in Azure Artifacts](https://igniasoftware.feeds.visualstudio.com/_apis/public/Packaging/Feeds/46d5f49c-5e1e-47bb-8b14-43be6c719ba8/Packages/3dfb3a0a-c049-407d-959e-546f714dcd0f/Badge)](https://igniasoftware.visualstudio.com/OnTopic/_packaging?_a=package&feed=46d5f49c-5e1e-47bb-8b14-43be6c719ba8&package=3dfb3a0a-c049-407d-959e-546f714dcd0f&preferRelease=true)
55
[![Build Status](https://igniasoftware.visualstudio.com/OnTopic/_apis/build/status/OnTopic-CI-V3?branchName=master)](https://igniasoftware.visualstudio.com/OnTopic/_build/latest?definitionId=7&branchName=master)
66

7+
### Contents
8+
- [Functionality](#functionality)
9+
- [Installation](#installation)
10+
- [Usage](#usage)
11+
712
## Functionality
813
When topics are requested, they are pulled from the cache, if they exist; otherwise, they are pulled from the underlying `ITopicRepository` implementation, and then cached. Similarly, when topics are e.g. saved, the updated versions are persisted to the underlying `ITopicRepository`, and then updated in the cache.
914

OnTopic.Data.Sql.Database/README.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
# SQL Schema
22
The `OnTopic.Data.Sql.Database` provides a default schema for supporting the [`SqlTopicRepository`](../OnTopic.Data.Sql).
33

4-
> *Note:* Not all SQL objects are documented here. Missing objects are primarily intended for infrastructure support and used exclusively by stored procedures or administrators.
4+
> *Note:* In addition to the objects below—which are all part of the default `[dbo]` schema—there is also a [`[Utilities]`](Utilities/README.md) schema which provides stored procedures for use by administrators in maintening the database.
5+
6+
### Contents
7+
- [Tables](#tables)
8+
- [Stored Procedures](#stored-procedures)
9+
- [Querying](#querying)
10+
- [Updating](#updating)
11+
- [Functions](#functions)
12+
- [Views](#views)
13+
- [Types](#types)
514

615
## Tables
716
The following is a summary of the most relevant tables.
@@ -40,4 +49,4 @@ The majority of the views provide records corresponding to the latest version of
4049
## Types
4150
User-defined table valued types are used to relay arrays of information to (and between) the stored procedures. These can be mimicked in C# using e.g. a `DataTable`. These include:
4251
- **[`AttributeValues`](Types/AttributeValues.sql)**: Defines a table with an `AttributeKey` `Varchar(128)` and `AttributeValue` `Varchar(255)` columns.
43-
- **[`TopicList`](Types/TopicList.sql)**: Defines a table with a single `TopicId` `Int` column for passing lists of topics.
52+
- **[`TopicList`](Types/TopicList.sql)**: Defines a table with a single `TopicId` `Int` column for passing lists of topics.
5.08 KB

SQL Schema

In addition to the objects which are part of the default [dbo] schema, the database project also includes a [utilities] schema for internal maintenance-oriented procedures.

Note: Not all SQL objects are documented here. Missing objects are primarily intended for infrastructure support and used exclusively by stored procedures or administrators.

Stored Procedures

The following is a summary of the most relevant stored procedures.

  • CompressHierarchy: Occassionally, gaps can occur in the nested set ranges. These don't hurt anything, but they can make it difficult to troubleshoot issues. This procedure removes any gaps.
  • ConsolidateVersions: Given two dates, will consolidate all versions within the range to a single version. This is useful for reducing the resolution of old versions.
  • DeleteConsecutiveAttributes: In previous versions of OnTopic, some indexed attributes could end up with duplicate versions even though their values hadn't changed. This procedure identifies and removes these without losing any relevant version information.
  • DeleteConsecutiveExtendedAttributes*: In previous versions of OnTopic, the extended attributes XML was duplicated for every version, which can significantly increase the size of the database. This procedure identified and removes consecutive duplicates without losing any relevant version information.
  • DeleteOrphanedLastModifiedAttributes: Whenever a topic is saved via the OnTopic Editor, a new dateline (LastModified) attribute is saved—even if no (other) attributes were modified. This can artificially bloat the history with phantom versions. This procedure removes LastModified attributes that don't map to other attribute changes.
  • ValidateHierarchy*: The nested set hierarchy can be sensitive to concurrency issues. To mitigate against that, newer versions of OnTopic use transactions to avoid potential corruption when deleting or moving topics in the hierarchy. This procedure identies potential sources of corruption, but does not resolve them.

Note: Procedures marked with an asterisk (*) can be very resource intensive, and may require upwards of ten minutes to complete, depending on the database size.

OnTopic.Data.Sql/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ The `SqlTopicRepository` provides an implementation of the `ITopicRepository` in
66

77
> *Note:* The schema for the Microsoft SQL Server implementation can be found at [`OnTopic.Data.Sql.Database`](../OnTopic.Data.Sql.Database/README.md). It is not currently distributed as part of the `SqlTopicRepository` and must be deployed separately.
88
9+
### Contents
10+
- [Installation](#installation)
11+
- [Usage](#usage)
12+
913
## Installation
1014
Installation can be performed by providing a `<PackageReference /`> to the `OnTopic.Data.Sql` **NuGet** package.
1115
```xml

OnTopic.TestDoubles/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ Provides common test doubles for use in testing the **OnTopic Library**.
44
[![OnTopic.TestDoubles package in Internal feed in Azure Artifacts](https://igniasoftware.feeds.visualstudio.com/_apis/public/Packaging/Feeds/46d5f49c-5e1e-47bb-8b14-43be6c719ba8/Packages/3a741b7a-7fa1-4bdb-bc55-efbac3f04e6c/Badge)](https://igniasoftware.visualstudio.com/OnTopic/_packaging?_a=package&feed=46d5f49c-5e1e-47bb-8b14-43be6c719ba8&package=3a741b7a-7fa1-4bdb-bc55-efbac3f04e6c&preferRelease=true)
55
[![Build Status](https://igniasoftware.visualstudio.com/OnTopic/_apis/build/status/OnTopic-CI-V3?branchName=master)](https://igniasoftware.visualstudio.com/OnTopic/_build/latest?definitionId=7&branchName=master)
66

7+
### Contents
8+
- [Installation](#installation)
9+
- [Inventory](#inventory)
10+
- [Dummies](#dummies)
11+
- [Stubs](#stubs)
12+
713
## Installation
814
Installation can be performed by providing a `<PackageReference /`> to the `OnTopic.TestDoubles` **NuGet** package.
915
```xml

OnTopic.ViewModels/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,15 @@ The `OnTopic.ViewModels` assembly includes default implementations of basic view
66

77
> *Note:* It is not necessary to use or derive from these view models. They are provided exclusively for convenience so implementers don't need to recreate basic data models.
88
9+
### Contents
10+
- [Installation](#installation)
11+
- [Inventory](#inventory)
12+
- [Usage](#usage)
13+
- [`DynamicTopicViewModelLookupService`](#DynamicTopicViewModelLookupService)
14+
- [Design Considerations](#design-considerations)
15+
- [Default Constructor](#default-constructor)
16+
- [Inheritance](#inheritance)
17+
918
## Installation
1019
Installation can be performed by providing a `<PackageReference /`> to the `OnTopic.ViewModels` **NuGet** package.
1120
```xml

OnTopic/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,16 @@
66

77
The `OnTopic` assembly represents the core domain layer of the OnTopic library. It includes the primary entity ([`Topic`](Topic.cs)), abstractions (e.g., [`ITopicRepository`](Repositories/ITopicRepository.cs)), and associated classes (e.g., [`TopicCollection<>`](Collections/TopicCollection{T}.cs)).
88

9+
### Contents
10+
- [Entities](#entities)
11+
- [Editor](#editor)
12+
- [Key Abstractions](#key-abstractions)
13+
- [Implementation](#implementation)
14+
- [Extension Methods](#extension-methods)
15+
- [Collections](#collections)
16+
- [Editor](#editor-1)
17+
- [View Models](#view-models)
18+
919
## Entities
1020
- **[`Topic`](Topic.cs)**: This is the core business object in OnTopic.
1121

0 commit comments

Comments
 (0)