Introduction
Document Manager is an internal web app that enables LMCU admins to view and update members' documents (to correct issues that happened during the ingestion process, exclude documents from members, resend failed notifications, etc), reprocess documents, and add/update DocCodeDetails.
Pages
Document Lookup
Used to lookup documents and modify authorizations.
Reprocessing Table
Used to reprocess documents that had an issue during the ingestion process. If a user has the permission, documents may be downloaded, assigned an owner, or set to unknown.
IT Reprocessing Table
Similar to the Reprocessing Table page, however, there is added functionality to update notification statuses, reprocess notification failures, and reprocess critical failures that have happened during the ingestion process.
DocCodeDetails
Used to create and modify DocCodeDetails. The fields that can be updated are the names, member view exclusion dates, and retention times.
Fluent Validation
Reference on GitHub
FluentValidation allows for form validation by creating RuleSets that allow validation rules to be grouped (by a name) and executed together while ignoring other rules.
Through Dependency Injection and Reflection, FluentValidation is able to find Validators which are located in the Validators folder (Shared/DocumentGridView/Validators)
Currently, there is one form that is using FluentValidation on the ReprocessingTable named SearchCriteria.
If another validator is added, the options for this form may need to be updated as it is set to IncludeAllRuleSets()
Validation is called by executing await fluentValidationValidator.ValidateAsync() which will check that the form and return a boolean.
Check the reference link above for more information and examples of how FluentValidation works.
Security Groups
There are 5 groups that are used to control permissions within DocumentManager:
- Doc_Mgr_Bus_Admin
- Doc_Mgr_Bus_Edit
- Doc_Mgr_Bus_View_Only
- Doc_Mgr_IT_Admin
- QA_Testing
- Should only contain the user [email protected]
Permissions are managed in appsettings.json for local environments. QA, UAT, and PROD utilize pipeline variables, which can be found and updated here.
Important Notes
-
"View" permissions for individual pages are set with the initial Groups value, i.e.
DocumentLookup.Groups. -
Nested groups are meant to manage specific features, i.e.
DocumentLookup.Download.Groups -
There are IT and QC roles within DocumentIngestor (here) and DocumentTypeRetriever (here) that are required to be checked and updated when changing permissions for DocumentManager
-
Visibility of the Admin dropdown menu is managed with pipeline variables and needs to be updated if a specific group has permissions to any of the admin pages
Updating Permissions
When permissions need to be changed/updated, utilize the Excel file in the docs folder (except for Admin menu permissions)
The Excel file contains two tabs: first, a grid of all permissions and second, the values for the pipeline variables which auto-update when the first tab is changed. The screenshot below is an example of both pages:
Dependencies
- LCU.Library.DocumentType
- LCU.Library.Internal.CoreApiWrapperModel
- LCU.Library.Internal.DocumentIngestorModels
- LCU.Library.Internal.DocumentModels
- LCU.Library.Internal.Logging
- LCU.Library.Internal.RazorComponents
- Components used
- CardDisplay
- CollapsibleComponent
- DataTable
- LCUFooter
- RowBody
- TableFilter
- TablePaging
- TableSort
- Components used


