Initial commit
This commit is contained in:
parent
75fae0580d
commit
5aa0151c59
BIN
.NCrunch_eSuite/eSuite.crunchsolution.cache
Normal file
BIN
.NCrunch_eSuite/eSuite.crunchsolution.cache
Normal file
Binary file not shown.
BIN
.NCrunch_eSuite/eSuite.executiontimes.cache
Normal file
BIN
.NCrunch_eSuite/eSuite.executiontimes.cache
Normal file
Binary file not shown.
BIN
.vs/ProjectEvaluation/esuite.metadata.v10.bin
Normal file
BIN
.vs/ProjectEvaluation/esuite.metadata.v10.bin
Normal file
Binary file not shown.
BIN
.vs/ProjectEvaluation/esuite.projects.v10.bin
Normal file
BIN
.vs/ProjectEvaluation/esuite.projects.v10.bin
Normal file
Binary file not shown.
BIN
.vs/ProjectEvaluation/esuite.strings.v10.bin
Normal file
BIN
.vs/ProjectEvaluation/esuite.strings.v10.bin
Normal file
Binary file not shown.
BIN
.vs/eSuite/CopilotIndices/18.0.988.22099/CodeChunks.db
Normal file
BIN
.vs/eSuite/CopilotIndices/18.0.988.22099/CodeChunks.db
Normal file
Binary file not shown.
BIN
.vs/eSuite/CopilotIndices/18.0.988.22099/SemanticSymbols.db
Normal file
BIN
.vs/eSuite/CopilotIndices/18.0.988.22099/SemanticSymbols.db
Normal file
Binary file not shown.
BIN
.vs/eSuite/DesignTimeBuild/.dtbcache.v2
Normal file
BIN
.vs/eSuite/DesignTimeBuild/.dtbcache.v2
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
1016
.vs/eSuite/config/applicationhost.config
Normal file
1016
.vs/eSuite/config/applicationhost.config
Normal file
File diff suppressed because it is too large
Load Diff
BIN
.vs/eSuite/v17/.futdcache.v2
Normal file
BIN
.vs/eSuite/v17/.futdcache.v2
Normal file
Binary file not shown.
BIN
.vs/eSuite/v17/.suo
Normal file
BIN
.vs/eSuite/v17/.suo
Normal file
Binary file not shown.
37
.vs/eSuite/v17/DocumentLayout.backup.json
Normal file
37
.vs/eSuite/v17/DocumentLayout.backup.json
Normal file
@ -0,0 +1,37 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{4A704FA7-4E3A-4CFA-B043-434A0C49AF89}|e-suite.API\\eSuite.API\\eSuite.API.csproj|c:\\users\\me\\onedrive\\code\\sun\\e-suite\\e-suite.api\\esuite.api\\dependencyinjection\\coreregistrationmodule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{4A704FA7-4E3A-4CFA-B043-434A0C49AF89}|e-suite.API\\eSuite.API\\eSuite.API.csproj|solutionrelative:e-suite.api\\esuite.api\\dependencyinjection\\coreregistrationmodule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 1,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedHeight": 200,
|
||||
"SelectedChildIndex": 0,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "CoreRegistrationModule.cs",
|
||||
"DocumentMoniker": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API\\eSuite.API\\DependencyInjection\\CoreRegistrationModule.cs",
|
||||
"RelativeDocumentMoniker": "e-suite.API\\eSuite.API\\DependencyInjection\\CoreRegistrationModule.cs",
|
||||
"ToolTip": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API\\eSuite.API\\DependencyInjection\\CoreRegistrationModule.cs",
|
||||
"RelativeToolTip": "e-suite.API\\eSuite.API\\DependencyInjection\\CoreRegistrationModule.cs",
|
||||
"ViewState": "AgIAABIAAAAAAAAAAAAAwCMAAABIAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-12-26T13:06:45.739Z",
|
||||
"EditorCaption": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
37
.vs/eSuite/v17/DocumentLayout.json
Normal file
37
.vs/eSuite/v17/DocumentLayout.json
Normal file
@ -0,0 +1,37 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{4A704FA7-4E3A-4CFA-B043-434A0C49AF89}|e-suite.API\\eSuite.API\\eSuite.API.csproj|c:\\users\\me\\onedrive\\code\\sun\\e-suite\\e-suite.api\\esuite.api\\dependencyinjection\\coreregistrationmodule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{4A704FA7-4E3A-4CFA-B043-434A0C49AF89}|e-suite.API\\eSuite.API\\eSuite.API.csproj|solutionrelative:e-suite.api\\esuite.api\\dependencyinjection\\coreregistrationmodule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 1,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedHeight": 200,
|
||||
"SelectedChildIndex": 0,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "CoreRegistrationModule.cs",
|
||||
"DocumentMoniker": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API\\eSuite.API\\DependencyInjection\\CoreRegistrationModule.cs",
|
||||
"RelativeDocumentMoniker": "e-suite.API\\eSuite.API\\DependencyInjection\\CoreRegistrationModule.cs",
|
||||
"ToolTip": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API\\eSuite.API\\DependencyInjection\\CoreRegistrationModule.cs",
|
||||
"RelativeToolTip": "e-suite.API\\eSuite.API\\DependencyInjection\\CoreRegistrationModule.cs",
|
||||
"ViewState": "AgIAABIAAAAAAAAAAAAAwCMAAABIAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-12-26T13:06:45.739Z",
|
||||
"EditorCaption": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
.vs/eSuite/v18/.futdcache.v2
Normal file
BIN
.vs/eSuite/v18/.futdcache.v2
Normal file
Binary file not shown.
BIN
.vs/eSuite/v18/.suo
Normal file
BIN
.vs/eSuite/v18/.suo
Normal file
Binary file not shown.
215
.vs/eSuite/v18/DocumentLayout.backup.json
Normal file
215
.vs/eSuite/v18/DocumentLayout.backup.json
Normal file
@ -0,0 +1,215 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{974467C0-14E3-D020-066A-74EDE1567927}|e-suite.API.Common\\e-suite.API.Common\\e-suite.API.Common.csproj|c:\\users\\me\\onedrive\\code\\sun\\e-suite\\e-suite.api.common\\e-suite.api.common\\models\\readperformancereportsummary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{974467C0-14E3-D020-066A-74EDE1567927}|e-suite.API.Common\\e-suite.API.Common\\e-suite.API.Common.csproj|solutionrelative:e-suite.api.common\\e-suite.api.common\\models\\readperformancereportsummary.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{974467C0-14E3-D020-066A-74EDE1567927}|e-suite.API.Common\\e-suite.API.Common\\e-suite.API.Common.csproj|c:\\users\\me\\onedrive\\code\\sun\\e-suite\\e-suite.api.common\\e-suite.api.common\\models\\readperformancereport.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{974467C0-14E3-D020-066A-74EDE1567927}|e-suite.API.Common\\e-suite.API.Common\\e-suite.API.Common.csproj|solutionrelative:e-suite.api.common\\e-suite.api.common\\models\\readperformancereport.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{7DC1F493-76A5-3740-E774-C8DAA51ED83A}|e-suite.API.Common\\e-suite.API.Common.UnitTests\\e-suite.API.Common.UnitTests.csproj|c:\\users\\me\\onedrive\\code\\sun\\e-suite\\e-suite.api.common\\e-suite.api.common.unittests\\dtoautotester.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{7DC1F493-76A5-3740-E774-C8DAA51ED83A}|e-suite.API.Common\\e-suite.API.Common.UnitTests\\e-suite.API.Common.UnitTests.csproj|solutionrelative:e-suite.api.common\\e-suite.api.common.unittests\\dtoautotester.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{4A704FA7-4E3A-4CFA-B043-434A0C49AF89}|e-suite.API\\eSuite.API\\eSuite.API.csproj|c:\\users\\me\\onedrive\\code\\sun\\e-suite\\e-suite.api\\esuite.api\\swagger\\swaggerextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{4A704FA7-4E3A-4CFA-B043-434A0C49AF89}|e-suite.API\\eSuite.API\\eSuite.API.csproj|solutionrelative:e-suite.api\\esuite.api\\swagger\\swaggerextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{4A704FA7-4E3A-4CFA-B043-434A0C49AF89}|e-suite.API\\eSuite.API\\eSuite.API.csproj|c:\\users\\me\\onedrive\\code\\sun\\e-suite\\e-suite.api\\esuite.api\\swagger\\hasallowanonymousoperationsfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{4A704FA7-4E3A-4CFA-B043-434A0C49AF89}|e-suite.API\\eSuite.API\\eSuite.API.csproj|solutionrelative:e-suite.api\\esuite.api\\swagger\\hasallowanonymousoperationsfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{CE69D868-8B81-B043-A340-E8F23683C0A2}|e-suite.Modules.SpecificationManager\\e-suite.Modules.SpecificationManager.UnitTests\\e-suite.Modules.SpecificationManager.UnitTests.csproj|c:\\users\\me\\onedrive\\code\\sun\\e-suite\\e-suite.modules.specificationmanager\\e-suite.modules.specificationmanager.unittests\\helpers\\fakeformrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{CE69D868-8B81-B043-A340-E8F23683C0A2}|e-suite.Modules.SpecificationManager\\e-suite.Modules.SpecificationManager.UnitTests\\e-suite.Modules.SpecificationManager.UnitTests.csproj|solutionrelative:e-suite.modules.specificationmanager\\e-suite.modules.specificationmanager.unittests\\helpers\\fakeformrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{B612A69B-3F3A-C33C-77F5-DE6A915E4E7D}|e-suite.Modules.OrganisationManager\\e-Suite.Modules.OrganisationManger.UnitTests\\e-suite.Modules.OrganisationsManager.UnitTests.csproj|c:\\users\\me\\onedrive\\code\\sun\\e-suite\\e-suite.modules.organisationmanager\\e-suite.modules.organisationmanger.unittests\\repository\\fakeorganisationmanagerrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{B612A69B-3F3A-C33C-77F5-DE6A915E4E7D}|e-suite.Modules.OrganisationManager\\e-Suite.Modules.OrganisationManger.UnitTests\\e-suite.Modules.OrganisationsManager.UnitTests.csproj|solutionrelative:e-suite.modules.organisationmanager\\e-suite.modules.organisationmanger.unittests\\repository\\fakeorganisationmanagerrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{5419EC24-755C-4D26-A6F1-90F478734EC3}|e-suite.MessageProcessor\\e-suite.MessageProcessor\\e-suite.MessageProcessor.csproj|c:\\users\\me\\onedrive\\code\\sun\\e-suite\\e-suite.messageprocessor\\e-suite.messageprocessor\\dependencyinjection\\coreregistrationmodule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{5419EC24-755C-4D26-A6F1-90F478734EC3}|e-suite.MessageProcessor\\e-suite.MessageProcessor\\e-suite.MessageProcessor.csproj|solutionrelative:e-suite.messageprocessor\\e-suite.messageprocessor\\dependencyinjection\\coreregistrationmodule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{F3A13EA7-AB5F-977E-3F71-82C5341119CD}|e-suite.Modules.FormsManager\\e_suite.Modules.Form.ManagerUnitTest\\e_suite.Modules.FormsManagerUnitTests.csproj|c:\\users\\me\\onedrive\\code\\sun\\e-suite\\e-suite.modules.formsmanager\\e_suite.modules.form.managerunittest\\fakeformsrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{F3A13EA7-AB5F-977E-3F71-82C5341119CD}|e-suite.Modules.FormsManager\\e_suite.Modules.Form.ManagerUnitTest\\e_suite.Modules.FormsManagerUnitTests.csproj|solutionrelative:e-suite.modules.formsmanager\\e_suite.modules.form.managerunittest\\fakeformsrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{73E50199-E462-B108-664A-1921E56D60A7}|e-suite.Modules.CustomFieldsManager\\e_suite.Modules.CusomFieldManagerUnitTest\\e_suite.Modules.CustomFieldManagerUnitTests.csproj|c:\\users\\me\\onedrive\\code\\sun\\e-suite\\e-suite.modules.customfieldsmanager\\e_suite.modules.cusomfieldmanagerunittest\\fakecustomfieldrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{73E50199-E462-B108-664A-1921E56D60A7}|e-suite.Modules.CustomFieldsManager\\e_suite.Modules.CusomFieldManagerUnitTest\\e_suite.Modules.CustomFieldManagerUnitTests.csproj|solutionrelative:e-suite.modules.customfieldsmanager\\e_suite.modules.cusomfieldmanagerunittest\\fakecustomfieldrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A3A65D33-B1BA-4F89-4567-B45103987C1E}|e-suite.Service.EFlowSync\\e-suite.Service.EFlowSync.UnitTests\\e-suite.Service.EFlowSync.UnitTests.csproj|c:\\users\\me\\onedrive\\code\\sun\\e-suite\\e-suite.service.eflowsync\\e-suite.service.eflowsync.unittests\\fakerepositories\\fakeformsrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{A3A65D33-B1BA-4F89-4567-B45103987C1E}|e-suite.Service.EFlowSync\\e-suite.Service.EFlowSync.UnitTests\\e-suite.Service.EFlowSync.UnitTests.csproj|solutionrelative:e-suite.service.eflowsync\\e-suite.service.eflowsync.unittests\\fakerepositories\\fakeformsrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 1,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedHeight": 200,
|
||||
"SelectedChildIndex": 0,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "ReadPerformanceReportSummary.cs",
|
||||
"DocumentMoniker": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API.Common\\e-suite.API.Common\\models\\ReadPerformanceReportSummary.cs",
|
||||
"RelativeDocumentMoniker": "e-suite.API.Common\\e-suite.API.Common\\models\\ReadPerformanceReportSummary.cs",
|
||||
"ToolTip": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API.Common\\e-suite.API.Common\\models\\ReadPerformanceReportSummary.cs",
|
||||
"RelativeToolTip": "e-suite.API.Common\\e-suite.API.Common\\models\\ReadPerformanceReportSummary.cs",
|
||||
"ViewState": "AgIAAAQAAAAAAAAAAAAzwAgAAAAiAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-20T14:46:44.514Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "ReadPerformanceReport.cs",
|
||||
"DocumentMoniker": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API.Common\\e-suite.API.Common\\models\\ReadPerformanceReport.cs",
|
||||
"RelativeDocumentMoniker": "e-suite.API.Common\\e-suite.API.Common\\models\\ReadPerformanceReport.cs",
|
||||
"ToolTip": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API.Common\\e-suite.API.Common\\models\\ReadPerformanceReport.cs",
|
||||
"RelativeToolTip": "e-suite.API.Common\\e-suite.API.Common\\models\\ReadPerformanceReport.cs",
|
||||
"ViewState": "AgIAAAUAAAAAAAAAAAAAAAoAAAAhAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-20T14:44:45.87Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "DtoAutoTester.cs",
|
||||
"DocumentMoniker": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API.Common\\e-suite.API.Common.UnitTests\\DtoAutoTester.cs",
|
||||
"RelativeDocumentMoniker": "e-suite.API.Common\\e-suite.API.Common.UnitTests\\DtoAutoTester.cs",
|
||||
"ToolTip": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API.Common\\e-suite.API.Common.UnitTests\\DtoAutoTester.cs",
|
||||
"RelativeToolTip": "e-suite.API.Common\\e-suite.API.Common.UnitTests\\DtoAutoTester.cs",
|
||||
"ViewState": "AgIAAAcAAAAAAAAAAAA8wBMAAAAJAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-20T14:44:17.876Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{6da21f7a-58db-45ce-8a78-22e8ff00cb95}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{4e0252e6-905c-4466-b94e-c0b946fda83c}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"Title": "SwaggerExtension.cs",
|
||||
"DocumentMoniker": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API\\eSuite.API\\Swagger\\SwaggerExtension.cs",
|
||||
"RelativeDocumentMoniker": "e-suite.API\\eSuite.API\\Swagger\\SwaggerExtension.cs",
|
||||
"ToolTip": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API\\eSuite.API\\Swagger\\SwaggerExtension.cs",
|
||||
"RelativeToolTip": "e-suite.API\\eSuite.API\\Swagger\\SwaggerExtension.cs",
|
||||
"ViewState": "AgIAACUAAAAAAAAAAAAQwAEAAAAXAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-20T14:39:00.498Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"Title": "HasAllowAnonymousOperationsFilter.cs",
|
||||
"DocumentMoniker": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API\\eSuite.API\\Swagger\\HasAllowAnonymousOperationsFilter.cs",
|
||||
"RelativeDocumentMoniker": "e-suite.API\\eSuite.API\\Swagger\\HasAllowAnonymousOperationsFilter.cs",
|
||||
"ToolTip": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.API\\eSuite.API\\Swagger\\HasAllowAnonymousOperationsFilter.cs",
|
||||
"RelativeToolTip": "e-suite.API\\eSuite.API\\Swagger\\HasAllowAnonymousOperationsFilter.cs",
|
||||
"ViewState": "AgIAAAkAAAAAAAAAAAA7wBwAAAAJAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-20T14:38:02.181Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"Title": "FakeFormRepository.cs",
|
||||
"DocumentMoniker": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.Modules.SpecificationManager\\e-suite.Modules.SpecificationManager.UnitTests\\Helpers\\FakeFormRepository.cs",
|
||||
"RelativeDocumentMoniker": "e-suite.Modules.SpecificationManager\\e-suite.Modules.SpecificationManager.UnitTests\\Helpers\\FakeFormRepository.cs",
|
||||
"ToolTip": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.Modules.SpecificationManager\\e-suite.Modules.SpecificationManager.UnitTests\\Helpers\\FakeFormRepository.cs",
|
||||
"RelativeToolTip": "e-suite.Modules.SpecificationManager\\e-suite.Modules.SpecificationManager.UnitTests\\Helpers\\FakeFormRepository.cs",
|
||||
"ViewState": "AgIAAGEAAAAAAAAAAAAqwGwAAAAsAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-20T14:37:50.818Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 6,
|
||||
"Title": "FakeOrganisationManagerRepository.cs",
|
||||
"DocumentMoniker": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.Modules.OrganisationManager\\e-Suite.Modules.OrganisationManger.UnitTests\\Repository\\FakeOrganisationManagerRepository.cs",
|
||||
"RelativeDocumentMoniker": "e-suite.Modules.OrganisationManager\\e-Suite.Modules.OrganisationManger.UnitTests\\Repository\\FakeOrganisationManagerRepository.cs",
|
||||
"ToolTip": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.Modules.OrganisationManager\\e-Suite.Modules.OrganisationManger.UnitTests\\Repository\\FakeOrganisationManagerRepository.cs",
|
||||
"RelativeToolTip": "e-suite.Modules.OrganisationManager\\e-Suite.Modules.OrganisationManger.UnitTests\\Repository\\FakeOrganisationManagerRepository.cs",
|
||||
"ViewState": "AgIAAA8AAAAAAAAAAAASwBgAAABFAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-20T14:37:42.769Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 7,
|
||||
"Title": "CoreRegistrationModule.cs",
|
||||
"DocumentMoniker": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.MessageProcessor\\e-suite.MessageProcessor\\DependencyInjection\\CoreRegistrationModule.cs",
|
||||
"RelativeDocumentMoniker": "e-suite.MessageProcessor\\e-suite.MessageProcessor\\DependencyInjection\\CoreRegistrationModule.cs",
|
||||
"ToolTip": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.MessageProcessor\\e-suite.MessageProcessor\\DependencyInjection\\CoreRegistrationModule.cs",
|
||||
"RelativeToolTip": "e-suite.MessageProcessor\\e-suite.MessageProcessor\\DependencyInjection\\CoreRegistrationModule.cs",
|
||||
"ViewState": "AgIAACkAAAAAAAAAAAASwDIAAAATAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-20T14:36:59.391Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 8,
|
||||
"Title": "FakeFormsRepository.cs",
|
||||
"DocumentMoniker": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.Modules.FormsManager\\e_suite.Modules.Form.ManagerUnitTest\\FakeFormsRepository.cs",
|
||||
"RelativeDocumentMoniker": "e-suite.Modules.FormsManager\\e_suite.Modules.Form.ManagerUnitTest\\FakeFormsRepository.cs",
|
||||
"ToolTip": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.Modules.FormsManager\\e_suite.Modules.Form.ManagerUnitTest\\FakeFormsRepository.cs",
|
||||
"RelativeToolTip": "e-suite.Modules.FormsManager\\e_suite.Modules.Form.ManagerUnitTest\\FakeFormsRepository.cs",
|
||||
"ViewState": "AgIAABMAAAAAAAAAAAASwBwAAABVAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-20T14:36:51.024Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 9,
|
||||
"Title": "FakeCustomFieldRepository.cs",
|
||||
"DocumentMoniker": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.Modules.CustomFieldsManager\\e_suite.Modules.CusomFieldManagerUnitTest\\FakeCustomFieldRepository.cs",
|
||||
"RelativeDocumentMoniker": "e-suite.Modules.CustomFieldsManager\\e_suite.Modules.CusomFieldManagerUnitTest\\FakeCustomFieldRepository.cs",
|
||||
"ToolTip": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.Modules.CustomFieldsManager\\e_suite.Modules.CusomFieldManagerUnitTest\\FakeCustomFieldRepository.cs",
|
||||
"RelativeToolTip": "e-suite.Modules.CustomFieldsManager\\e_suite.Modules.CusomFieldManagerUnitTest\\FakeCustomFieldRepository.cs",
|
||||
"ViewState": "AgIAAA0AAAAAAAAAAIAzwBYAAAA8AAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-20T14:36:43.076Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 10,
|
||||
"Title": "FakeFormsRepository.cs",
|
||||
"DocumentMoniker": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.Service.EFlowSync\\e-suite.Service.EFlowSync.UnitTests\\FakeRepositories\\FakeFormsRepository.cs",
|
||||
"RelativeDocumentMoniker": "e-suite.Service.EFlowSync\\e-suite.Service.EFlowSync.UnitTests\\FakeRepositories\\FakeFormsRepository.cs",
|
||||
"ToolTip": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\e-suite.Service.EFlowSync\\e-suite.Service.EFlowSync.UnitTests\\FakeRepositories\\FakeFormsRepository.cs",
|
||||
"RelativeToolTip": "e-suite.Service.EFlowSync\\e-suite.Service.EFlowSync.UnitTests\\FakeRepositories\\FakeFormsRepository.cs",
|
||||
"ViewState": "AgIAABMAAAAAAAAAAIAxwBsAAABUAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-01-20T14:36:09.899Z",
|
||||
"EditorCaption": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
23
.vs/eSuite/v18/DocumentLayout.json
Normal file
23
.vs/eSuite/v18/DocumentLayout.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "C:\\Users\\me\\OneDrive\\Code\\Sun\\e-suite\\",
|
||||
"Documents": [],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 1,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedHeight": 200,
|
||||
"SelectedChildIndex": -1,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{4e0252e6-905c-4466-b94e-c0b946fda83c}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
.vs/eSuite/v18/fileList.bin
Normal file
BIN
.vs/eSuite/v18/fileList.bin
Normal file
Binary file not shown.
15
.vscode/launch.json
vendored
Normal file
15
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "pwa-chrome",
|
||||
"request": "launch",
|
||||
"name": "Launch Chrome against localhost",
|
||||
"url": "http://localhost:8080",
|
||||
"webRoot": "${workspaceFolder}"
|
||||
}
|
||||
]
|
||||
}
|
||||
89
Sigma server connects for Colin.txt
Normal file
89
Sigma server connects for Colin.txt
Normal file
@ -0,0 +1,89 @@
|
||||
|
||||
Sigma Airlock
|
||||
|
||||
Database:
|
||||
|
||||
airlock
|
||||
|
||||
Internal IP:
|
||||
172.27.18.45
|
||||
|
||||
|
||||
External IP:
|
||||
87.224.57.13
|
||||
|
||||
|
||||
Username:
|
||||
e-suite.18.45
|
||||
|
||||
Password:
|
||||
|
||||
s2f$yuSbVAd;&rXNUeP'@Z
|
||||
|
||||
******************************************************
|
||||
|
||||
|
||||
Sigma Printer checklist
|
||||
|
||||
Database:
|
||||
|
||||
external crom
|
||||
|
||||
Internal IP:
|
||||
172.27.17.228
|
||||
|
||||
External IP:
|
||||
|
||||
87.224.57.32
|
||||
|
||||
Username:
|
||||
e-suite.service.228
|
||||
|
||||
Password:
|
||||
|
||||
Y2:y`4Q#Su+cm/LK!Vv~8<
|
||||
|
||||
******************************************************
|
||||
|
||||
|
||||
Sigma web live
|
||||
|
||||
Database:
|
||||
si6ma
|
||||
|
||||
Internal IP:
|
||||
172.27.18.22
|
||||
|
||||
External IP:
|
||||
87.224.57.12
|
||||
|
||||
|
||||
Username:
|
||||
e-suite-18-22
|
||||
|
||||
Password:
|
||||
J]v6mjL#Cf3^E;?4as5cQ
|
||||
|
||||
|
||||
******************************************************
|
||||
|
||||
|
||||
Webstore
|
||||
|
||||
Database:
|
||||
ftpu
|
||||
|
||||
Internal IP:
|
||||
172.27.18.63
|
||||
|
||||
|
||||
External IP:
|
||||
87.224.57.9
|
||||
|
||||
|
||||
Username:
|
||||
e-suite.18.63
|
||||
|
||||
Password:
|
||||
|
||||
f9X{,W%3E8$`VR"Y>=vLqM
|
||||
1
e-suite.API.Common/.gitattributes
vendored
Normal file
1
e-suite.API.Common/.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
||||
* -crlf
|
||||
201
e-suite.API.Common/.gitignore
vendored
Normal file
201
e-suite.API.Common/.gitignore
vendored
Normal file
@ -0,0 +1,201 @@
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
*.sln.docstates
|
||||
|
||||
# Build results
|
||||
|
||||
[Dd]ebug/
|
||||
[Rr]elease/
|
||||
x64/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
|
||||
# New VS2015 folders
|
||||
.vs/
|
||||
|
||||
# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
|
||||
!packages/*/build/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
*_i.c
|
||||
*_p.c
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.log
|
||||
*.scc
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# NCrunch
|
||||
*.ncrunch*
|
||||
.*crunch*.local.xml
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# NuGet Packages Directory
|
||||
packages/
|
||||
|
||||
# Compare files
|
||||
*.orig
|
||||
|
||||
# Windows Azure Build Output
|
||||
csx
|
||||
*.build.csdef
|
||||
|
||||
# Windows Store app package directory
|
||||
AppPackages/
|
||||
|
||||
# Others
|
||||
sql/
|
||||
*.Cache
|
||||
ClientBin/
|
||||
[Ss]tyle[Cc]op.*
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
*.swp
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file to a newer
|
||||
# Visual Studio version. Backup files are not needed, because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
|
||||
# SQL Server files
|
||||
App_Data/*.mdf
|
||||
App_Data/*.ldf
|
||||
|
||||
# =========================
|
||||
# Windows detritus
|
||||
# =========================
|
||||
|
||||
# Windows image file caches
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
|
||||
# Folder config file
|
||||
Desktop.ini
|
||||
|
||||
# Recycle Bin used on file shares
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# Mac crap
|
||||
.DS_Store
|
||||
|
||||
# TeX files
|
||||
Documentation/*.aux
|
||||
Documentation/*.out
|
||||
Documentation/*.pdf
|
||||
Documentation/*.idx
|
||||
Documentation/*.toc
|
||||
Documentation/*.gz
|
||||
|
||||
# image resizer cache
|
||||
imagecache/
|
||||
*.DotSettings
|
||||
|
||||
# TypeScript mapping files
|
||||
*.js.map
|
||||
|
||||
# Exclude all Typescript-generated JS files
|
||||
src/Sunrise.Web.Customer/App/*.js
|
||||
src/Sunrise.Web.Customer/App/**/*.js
|
||||
src/Sunrise.Web.Customer/App/**/*.js
|
||||
src/Sunrise.Web.Customer/Views/**/*.js
|
||||
src/Sunrise.Web.Customer/Areas/**/*.js
|
||||
src/Sunrise.Web.Support/Views/**/*.js
|
||||
|
||||
*.GhostDoc.user.dic
|
||||
*.GhostDoc.xml
|
||||
|
||||
/TestResult.xml
|
||||
*.VisualState.xml
|
||||
|
||||
artifacts/
|
||||
/src/Sunrise.Web.Customer/Scripts/typings
|
||||
|
||||
# Db project
|
||||
src/Sunrise.Database/*.jfm
|
||||
src/Sunrise.Database/Sunrise.Database.jfm
|
||||
/src/Sunrise.Database/*.jfm
|
||||
/src/Sunrise.Database/Sunrise.Database.jfm
|
||||
/src/Sunrise.Web.Customer/node_modules
|
||||
|
||||
# node modules
|
||||
node_modules
|
||||
.eslintrc
|
||||
|
||||
#NCrunch folders
|
||||
_NCrunch*/
|
||||
src/Sunrise.Web.FrontEnd/.eslintrc.js
|
||||
src/Sunrise.Web.FrontEnd/.prettierrc
|
||||
src/Sunrise.Web.FrontEnd/.vscode/settings.json
|
||||
src/Sunrise.Web.Customer/Content/bundles/vendor.js
|
||||
68
e-suite.API.Common/.runsettings
Normal file
68
e-suite.API.Common/.runsettings
Normal file
@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- File name extension must be .runsettings -->
|
||||
<RunSettings>
|
||||
<DataCollectionRunSettings>
|
||||
<DataCollectors>
|
||||
<DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<Configuration>
|
||||
<CodeCoverage>
|
||||
<!--
|
||||
Additional paths to search for .pdb (symbol) files. Symbols must be found for modules to be instrumented.
|
||||
If .pdb files are in the same folder as the .dll or .exe files, they are automatically found. Otherwise, specify them here.
|
||||
Note that searching for symbols increases code coverage runtime. So keep this small and local.
|
||||
-->
|
||||
<!--
|
||||
<SymbolSearchPaths>
|
||||
<Path>C:\Users\User\Documents\Visual Studio 2012\Projects\ProjectX\bin\Debug</Path>
|
||||
<Path>\\mybuildshare\builds\ProjectX</Path>
|
||||
</SymbolSearchPaths>
|
||||
-->
|
||||
|
||||
<!--
|
||||
About include/exclude lists:
|
||||
Empty "Include" clauses imply all; empty "Exclude" clauses imply none.
|
||||
Each element in the list is a regular expression (ECMAScript syntax). See /visualstudio/ide/using-regular-expressions-in-visual-studio.
|
||||
An item must first match at least one entry in the include list to be included.
|
||||
Included items must then not match any entries in the exclude list to remain included.
|
||||
-->
|
||||
|
||||
<!-- Match assembly file paths: -->
|
||||
<ModulePaths>
|
||||
<Include>
|
||||
<ModulePath>.*\.dll$</ModulePath>
|
||||
<ModulePath>.*\.exe$</ModulePath>
|
||||
</Include>
|
||||
<Exclude>
|
||||
<ModulePath>.*moq.dll</ModulePath>
|
||||
<ModulePath>.*nunit3.testadapter.dll</ModulePath>
|
||||
</Exclude>
|
||||
<!-- Specifies additional list of directories where binaries static native instrumentation should be searched. -->
|
||||
<IncludeDirectories>
|
||||
<Directory Recursive="true">C:\b59fb11c-1611-4562-9a2b-c35719da65d3</Directory>
|
||||
</IncludeDirectories>
|
||||
</ModulePaths>
|
||||
|
||||
|
||||
<!-- We recommend you do not change the following values: -->
|
||||
|
||||
<!-- Set this to True to collect coverage information for functions marked with the "SecuritySafeCritical" attribute. Instead of writing directly into a memory location from such functions, code coverage inserts a probe that redirects to another function, which in turns writes into memory. -->
|
||||
<UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>
|
||||
<!-- When set to True, collects coverage information from child processes that are launched with low-level ACLs, for example, UWP apps. -->
|
||||
<AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>
|
||||
<!-- When set to True, collects coverage information from child processes that are launched by test or production code. -->
|
||||
<CollectFromChildProcesses>True</CollectFromChildProcesses>
|
||||
<!-- When set to True, restarts the IIS process and collects coverage information from it. -->
|
||||
<CollectAspDotNet>False</CollectAspDotNet>
|
||||
<!-- When set to True, static native instrumentation will be enabled. -->
|
||||
<EnableStaticNativeInstrumentation>True</EnableStaticNativeInstrumentation>
|
||||
<!-- When set to True, dynamic native instrumentation will be enabled. -->
|
||||
<EnableDynamicNativeInstrumentation>True</EnableDynamicNativeInstrumentation>
|
||||
<!-- When set to True, instrumented binaries on disk are removed and original files are restored. -->
|
||||
<EnableStaticNativeInstrumentationRestore>True</EnableStaticNativeInstrumentationRestore>
|
||||
|
||||
</CodeCoverage>
|
||||
</Configuration>
|
||||
</DataCollector>
|
||||
</DataCollectors>
|
||||
</DataCollectionRunSettings>
|
||||
</RunSettings>
|
||||
20
e-suite.API.Common/README.md
Normal file
20
e-suite.API.Common/README.md
Normal file
@ -0,0 +1,20 @@
|
||||
# Introduction
|
||||
TODO: Give a short introduction of your project. Let this section explain the objectives or the motivation behind this project.
|
||||
|
||||
# Getting Started
|
||||
TODO: Guide users through getting your code up and running on their own system. In this section you can talk about:
|
||||
1. Installation process
|
||||
2. Software dependencies
|
||||
3. Latest releases
|
||||
4. API references
|
||||
|
||||
# Build and Test
|
||||
TODO: Describe and show how to build your code and run the tests.
|
||||
|
||||
# Contribute
|
||||
TODO: Explain how other users and developers can contribute to make your code better.
|
||||
|
||||
If you want to learn more about creating good readme files then refer the following [guidelines](https://docs.microsoft.com/en-us/azure/devops/repos/git/create-a-readme?view=azure-devops). You can also seek inspiration from the below readme files:
|
||||
- [ASP.NET Core](https://github.com/aspnet/Home)
|
||||
- [Visual Studio Code](https://github.com/Microsoft/vscode)
|
||||
- [Chakra Core](https://github.com/Microsoft/ChakraCore)
|
||||
136
e-suite.API.Common/azure-pipelines.yml
Normal file
136
e-suite.API.Common/azure-pipelines.yml
Normal file
@ -0,0 +1,136 @@
|
||||
# ASP.NET Core (.NET Framework)
|
||||
# Build and test ASP.NET Core projects targeting the full .NET Framework.
|
||||
# Add steps that publish symbols, save build artifacts, and more:
|
||||
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
|
||||
|
||||
#name: $(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)$(prerelease) # NOTE: rev resets when the default retention period expires
|
||||
name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)$(prerelease) # NOTE: rev resets when the default retention period expires
|
||||
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- '*'
|
||||
|
||||
pool:
|
||||
vmImage: 'windows-latest'
|
||||
|
||||
variables:
|
||||
solution: '**/*.sln'
|
||||
nugetProject: 'e-suite.API.Common/e-suite.API.Common.csproj'
|
||||
buildPlatform: 'Any CPU'
|
||||
buildConfiguration: 'Release'
|
||||
${{ if eq(variables['Build.SourceBranchName'], 'master') }}:
|
||||
prerelease: ''
|
||||
${{ elseif eq(variables['Build.SourceBranchName'], 'develop') }}:
|
||||
prerelease: '-beta'
|
||||
${{ else }}:
|
||||
prerelease: '-alpha'
|
||||
|
||||
steps:
|
||||
- task: NuGetToolInstaller@1
|
||||
displayName: 'Install Nuget'
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: 'Nuget Restore'
|
||||
inputs:
|
||||
restoreSolution: '$(solution)'
|
||||
feedsToUse: config
|
||||
includeNuGetOrg: true
|
||||
packagesdirectory: '..\packages'
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: 'Build Solution'
|
||||
inputs:
|
||||
solution: '$(solution)'
|
||||
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
|
||||
platform: '$(buildPlatform)'
|
||||
configuration: '$(buildConfiguration)'
|
||||
|
||||
- task: VSTest@2
|
||||
displayName: 'Run Tests'
|
||||
inputs:
|
||||
testAssemblyVer2: |
|
||||
**\*Tests.dll
|
||||
!**\obj\**
|
||||
runOnlyImpactedTests: false
|
||||
runInParallel: true
|
||||
codeCoverageEnabled: true
|
||||
runSettingsFile: .runsettings
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
|
||||
- task: BuildQualityChecks@9
|
||||
displayName: 'Check build quality'
|
||||
inputs:
|
||||
# ===== Warnings Policy Inputs =====
|
||||
checkWarnings: true # Optional
|
||||
warningFailOption: fixed # Optional; Valid values: build, fixed
|
||||
warningThreshold: '0' # Optional
|
||||
#forceFewerWarnings: false # Optional
|
||||
#allowWarningVariance: false # Optional
|
||||
#warningVariance: # Required if allowWarningVariance = true
|
||||
#showStatistics: false # Optional
|
||||
#evaluateTaskWarnings: true # Optional
|
||||
#warningTaskSelectors: '/^((vs|ms)build|ant(\s+.+)?|gradle(w)?(\s+.+)?|grunt|gulp|maven(\s+.+)?|xamarin(android|ios)|xcode(\s+.+)?|cmake|build\s+.+)$/i' # Optional (alias: warningTaskFilters)
|
||||
#warningSelectors: # Optional (alias: warningFilters)
|
||||
#inclusiveSelection: false # Optional (alias: inclusiveFiltering)
|
||||
#evaluateFileWarnings: false # Optional
|
||||
#warningFilesFolder: # Optional
|
||||
#warningFiles: # Required if evaluateFileWarnings = true
|
||||
#fileWarningSelectors: # Required if evaluateFileWarnings = true (alias: warningFileFilters)
|
||||
#warningFilesArtifact: # Required if evaluateFileWarnings = true and (warningFailOption = build or showStatistics = true)
|
||||
# ===== Code Coverage Policy Inputs =====
|
||||
checkCoverage: true # Optional
|
||||
coverageFailOption: fixed # Optional; Valid values: build, fixed
|
||||
coverageType: lines # Optional; Valid values: blocks, lines, branches, custom
|
||||
#customCoverageType: # Required if coverageType = custom
|
||||
#treat0of0as100: false # Optional
|
||||
coverageThreshold: '80' # Optional
|
||||
forceCoverageImprovement: true # Optional
|
||||
#coverageUpperThreshold: '80' # Optional
|
||||
#ignoreDecreaseAboveUpperThreshold: true # Optional
|
||||
#useUncoveredElements: false # Optional
|
||||
#allowCoverageVariance: false # Optional
|
||||
#coverageVariance: # Required if allowCoverageVariance = true
|
||||
#coverageDeltaType: percentage # Optional; Valid values: absolute, percentage
|
||||
#coveragePrecision: '4' # Optional
|
||||
#buildConfiguration: # Optional
|
||||
#buildPlatform: # Optional
|
||||
#explicitSelector: false # Optional (alias: explicitFilter)
|
||||
# ===== Baseline Inputs =====
|
||||
#includePartiallySucceeded: true # Optional
|
||||
#fallbackOnPRTargetBranch: true # Optional
|
||||
#baseDefinitionSelector: # Ignored - only used by UI editor
|
||||
#baseDefinitionId: # Optional
|
||||
#baseRepoId: # Ignored - only used by UI editor
|
||||
#baseBranchRef: # Optional
|
||||
# ===== Reporting Inputs =====
|
||||
#runTitle: # Optional
|
||||
#fileAnalysisTitle: # Optional
|
||||
# ===== Advanced Inputs =====
|
||||
#disableCertCheck: false # Optional
|
||||
#createBuildIssues: true # Optional
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: "Package Nuget Artifact"
|
||||
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
|
||||
inputs:
|
||||
command: 'pack'
|
||||
arguments: '--configuration $(buildConfiguration)'
|
||||
packagesToPack: '$(nugetProject)'
|
||||
nobuild: true
|
||||
versionEnvVar: 'build.BuildNumber'
|
||||
versioningScheme: 'byEnvVar'
|
||||
#versioningScheme: byBuildNumber # https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/dotnet-core-cli?view=azure-devops#yaml-snippet
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: 'Publish Nuget Artifact'
|
||||
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
|
||||
inputs:
|
||||
command: 'push'
|
||||
feedsToUse: 'select'
|
||||
packagesToPush: '$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg'
|
||||
nuGetFeedType: 'internal'
|
||||
publishVstsFeed: 'e-suite/e-suite'
|
||||
versioningScheme: 'off'
|
||||
allowPackageConflicts: true
|
||||
@ -0,0 +1,43 @@
|
||||
using e_suite.API.Common.models;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace e_suite.API.Common.UnitTests;
|
||||
|
||||
[TestFixture]
|
||||
public class CustomFieldValueExtensionsUnitTests
|
||||
{
|
||||
[Test]
|
||||
public void test()
|
||||
{
|
||||
//Arrange
|
||||
var values = new List<CustomFieldValues>();
|
||||
values.Add(new CustomFieldValues
|
||||
{
|
||||
Id = new GeneralIdRef
|
||||
{
|
||||
Id = 666,
|
||||
Guid = new Guid("c8564cb3-9d42-4a56-8b0d-df1792cd6c4a")
|
||||
},
|
||||
Values = new List<CustomFieldValue>
|
||||
{
|
||||
new()
|
||||
{
|
||||
Value = "Hello",
|
||||
DisplayValue = "Hello Display"
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//Act
|
||||
var results = values.ToCustomFieldsValues();
|
||||
|
||||
//Assert
|
||||
Assert.That(results.Count, Is.EqualTo(1));
|
||||
Assert.That(results[0].Id.Id, Is.EqualTo(666));
|
||||
Assert.That(results[0].Id.Guid, Is.EqualTo(new Guid("c8564cb3-9d42-4a56-8b0d-df1792cd6c4a")));
|
||||
Assert.That(results[0].Values.Count, Is.EqualTo(1));
|
||||
Assert.That(results[0].Values[0].Value, Is.EqualTo("Hello"));
|
||||
Assert.That(results[0].Values[0].DisplayValue, Is.EqualTo("Hello Display"));
|
||||
}
|
||||
}
|
||||
102
e-suite.API.Common/e-suite.API.Common.UnitTests/DtoAutoTester.cs
Normal file
102
e-suite.API.Common/e-suite.API.Common.UnitTests/DtoAutoTester.cs
Normal file
@ -0,0 +1,102 @@
|
||||
using System.Reflection;
|
||||
using e_suite.API.Common.models;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace e_suite.API.Common.UnitTests;
|
||||
|
||||
[TestFixture]
|
||||
public class DtoAutoTester
|
||||
{
|
||||
[Test]
|
||||
public void RunTests()
|
||||
{
|
||||
var modelsList = new List<Type>();
|
||||
|
||||
var assembly = Assembly.GetAssembly(typeof(AddRoleSecurityAccess));
|
||||
|
||||
var allTypes = assembly!.GetTypes().Where( x => x.Namespace == "e_suite.API.Common.models");
|
||||
|
||||
foreach (var type in allTypes)
|
||||
{
|
||||
RunTestsOnClass(type);
|
||||
}
|
||||
}
|
||||
|
||||
private static void RunTestsOnClass(Type type)
|
||||
{
|
||||
if (type.IsAbstract)
|
||||
return; //Nothing to test here, as abstract classes do not get created.
|
||||
|
||||
if (type.DeclaringType != null)
|
||||
return; //types that have a declaring type are doing something funky, and I don't want to test them directly.
|
||||
|
||||
//Create an instance of the object to play with.
|
||||
var instance = Activator.CreateInstance(type);
|
||||
|
||||
var allProperties = type.GetProperties();
|
||||
foreach (var property in allProperties)
|
||||
{
|
||||
if (property.CanWrite)
|
||||
TestCanWrite(property, instance);
|
||||
|
||||
if (property.CanRead)
|
||||
TestCanRead(property, instance);
|
||||
}
|
||||
}
|
||||
|
||||
private static void TestCanRead(PropertyInfo property, object? instance)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = property.GetValue(instance);
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
Assert.Fail(ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private static void TestCanWrite(PropertyInfo property, object? instance)
|
||||
{
|
||||
var propertyType = property.PropertyType;
|
||||
|
||||
if (propertyType.IsInterface)
|
||||
{
|
||||
try
|
||||
{
|
||||
var actualPropertyType = GetTypeForInterface(propertyType);
|
||||
|
||||
var writeValue = Activator.CreateInstance(actualPropertyType!);
|
||||
property.SetValue(instance, writeValue, null);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Assert.Fail(ex.ToString());
|
||||
}
|
||||
}
|
||||
else if (propertyType != typeof(string))
|
||||
{
|
||||
try
|
||||
{
|
||||
var writeValue = Activator.CreateInstance(property.PropertyType);
|
||||
property.SetValue(instance, writeValue, null);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Assert.Fail(ex.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static Type? GetTypeForInterface(Type propertyType)
|
||||
{
|
||||
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
|
||||
|
||||
var alltypes = assemblies
|
||||
.SelectMany(s => s.GetTypes()).ToList();
|
||||
|
||||
var actualPropertyType = alltypes
|
||||
.FirstOrDefault(p => p.GetInterfaces().Any(x => x == propertyType));
|
||||
return actualPropertyType;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
using e_suite.API.Common.exceptions;
|
||||
using e_suite.API.Common.UnitTests.helper;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace e_suite.API.Common.UnitTests;
|
||||
|
||||
[TestFixture]
|
||||
public class ExceptionUnitTests
|
||||
{
|
||||
[TestCase(typeof(ExistsException))]
|
||||
[TestCase(typeof(InvalidEmailException))]
|
||||
[TestCase(typeof(InvalidReferenceObjectId))]
|
||||
[TestCase(typeof(MaximumRangeException))]
|
||||
[TestCase(typeof(MinimumRangeException))]
|
||||
[TestCase(typeof(NotFoundException))]
|
||||
[TestCase(typeof(TokenInvalidException))]
|
||||
[TestCase(typeof(WeakPasswordException))]
|
||||
public void ExistsException_PerformExcpetionTests(Type testcase)
|
||||
{
|
||||
ExceptionTester.PerformTestSuite(testcase);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,164 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using e_suite.API.Common.models;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
using eSuite.Core.Sequences;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace SequenceManager.UnitTests;
|
||||
|
||||
[TestFixture]
|
||||
public class ValidateUnitTests
|
||||
{
|
||||
[Test]
|
||||
public void Validate_MissingNumericPlaceholder_FailValidation()
|
||||
{
|
||||
// Arrange
|
||||
var sequence = new Sequence
|
||||
{
|
||||
GeneralIdRef = new GeneralIdRef { Guid = Guid.NewGuid() },
|
||||
Increment = 1,
|
||||
Name = "Sequence name",
|
||||
Pattern = "{DD}",
|
||||
RolloverType = Rollover.Day,
|
||||
Seed = 1
|
||||
};
|
||||
|
||||
var context = new ValidationContext(sequence);
|
||||
|
||||
// Act
|
||||
var results = sequence.Validate(context).ToList();
|
||||
|
||||
// Assert
|
||||
Assert.That(results.Count, Is.EqualTo(1));
|
||||
Assert.That(results[0].MemberNames.Count(), Is.EqualTo(1));
|
||||
Assert.That(results[0].MemberNames.ToList()[0], Is.EqualTo(nameof(Sequence.Pattern)));
|
||||
Assert.That(results[0].ErrorMessage, Is.EqualTo("At minimum all patterns must contain one numeric value (i.e. [0])"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Validate_MissingYearPlaceholder_FailValidation()
|
||||
{
|
||||
// Arrange
|
||||
var sequence = new Sequence
|
||||
{
|
||||
GeneralIdRef = new GeneralIdRef { Guid = Guid.NewGuid() },
|
||||
Increment = 1,
|
||||
Name = "Sequence name",
|
||||
Pattern = "Order-[000]",
|
||||
RolloverType = Rollover.Year,
|
||||
Seed = 1
|
||||
};
|
||||
|
||||
var context = new ValidationContext(sequence);
|
||||
|
||||
// Act
|
||||
var results = sequence.Validate(context).ToList();
|
||||
|
||||
// Asserts
|
||||
Assert.That(results.Count, Is.EqualTo(1));
|
||||
Assert.That(results[0].MemberNames.Count(), Is.EqualTo(1));
|
||||
Assert.That(results[0].MemberNames.ToList()[0], Is.EqualTo(nameof(Sequence.Pattern)));
|
||||
Assert.That(results[0].ErrorMessage, Is.EqualTo("When the rollover type is set to 'Annual', then the pattern must include either a {YY} or {YYYY} placeholder"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Validate_MissingMonthPlaceholder_FailValidation()
|
||||
{
|
||||
// Arrange
|
||||
var sequence = new Sequence
|
||||
{
|
||||
GeneralIdRef = new GeneralIdRef { Guid = Guid.NewGuid() },
|
||||
Increment = 1,
|
||||
Name = "Sequence name",
|
||||
Pattern = "Order-[000]",
|
||||
RolloverType = Rollover.Month,
|
||||
Seed = 1
|
||||
};
|
||||
|
||||
var context = new ValidationContext(sequence);
|
||||
|
||||
// Act
|
||||
var results = sequence.Validate(context).ToList();
|
||||
|
||||
// Asserts
|
||||
Assert.That(results.Count, Is.EqualTo(1));
|
||||
Assert.That(results[0].MemberNames.Count(), Is.EqualTo(1));
|
||||
Assert.That(results[0].MemberNames.ToList()[0], Is.EqualTo(nameof(Sequence.Pattern)));
|
||||
Assert.That(results[0].ErrorMessage, Is.EqualTo("When the rollover type is set to 'Monthly', then the pattern must include either a {MM} placeholder"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Validate_MissingDayPlaceholder_FailValidation()
|
||||
{
|
||||
// Arrange
|
||||
var sequence = new Sequence
|
||||
{
|
||||
GeneralIdRef = new GeneralIdRef { Guid = Guid.NewGuid() },
|
||||
Increment = 1,
|
||||
Name = "Sequence name",
|
||||
Pattern = "Order-[000]",
|
||||
RolloverType = Rollover.Day,
|
||||
Seed = 1
|
||||
};
|
||||
|
||||
var context = new ValidationContext(sequence);
|
||||
|
||||
// Act
|
||||
var results = sequence.Validate(context).ToList();
|
||||
|
||||
// Asserts
|
||||
Assert.That(results.Count, Is.EqualTo(1));
|
||||
Assert.That(results[0].MemberNames.Count(), Is.EqualTo(1));
|
||||
Assert.That(results[0].MemberNames.ToList()[0], Is.EqualTo(nameof(Sequence.Pattern)));
|
||||
Assert.That(results[0].ErrorMessage, Is.EqualTo("When the rollover type is set to 'Daily', then the pattern must include either a {DD} placeholder"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Validate_Validation_Pass()
|
||||
{
|
||||
// Arrange
|
||||
var sequence = new Sequence
|
||||
{
|
||||
GeneralIdRef = new GeneralIdRef { Guid = Guid.NewGuid() },
|
||||
Increment = 1,
|
||||
Name = "Sequence name",
|
||||
Pattern = "Order [0000] from {DD}-{MM}-{YYYY}",
|
||||
RolloverType = Rollover.Day,
|
||||
Seed = 1
|
||||
};
|
||||
|
||||
var context = new ValidationContext(sequence);
|
||||
|
||||
// Act
|
||||
var results = sequence.Validate(context).ToList();
|
||||
|
||||
// Assert
|
||||
Assert.That(results.Count, Is.EqualTo(0));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Validate_Increment0_Fails()
|
||||
{
|
||||
// Arrange
|
||||
var sequence = new Sequence
|
||||
{
|
||||
GeneralIdRef = new GeneralIdRef { Guid = Guid.NewGuid() },
|
||||
Increment = 0,
|
||||
Name = "Sequence name",
|
||||
Pattern = "Order [0000] from {DD}-{MM}-{YYYY}",
|
||||
RolloverType = Rollover.Day,
|
||||
Seed = 1
|
||||
};
|
||||
|
||||
var context = new ValidationContext(sequence);
|
||||
|
||||
// Act
|
||||
var results = sequence.Validate(context).ToList();
|
||||
|
||||
// Assert
|
||||
Assert.That(results.Count, Is.EqualTo(1));
|
||||
Assert.That(results[0].MemberNames.Count(), Is.EqualTo(1));
|
||||
Assert.That(results[0].MemberNames.ToList()[0], Is.EqualTo(nameof(Sequence.Increment)));
|
||||
Assert.That(results[0].ErrorMessage, Is.EqualTo("Increment can not be 0"));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<RootNamespace>e_suite.API.Common.UnitTests</RootNamespace>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
|
||||
<PackageReference Include="NUnit" Version="4.4.0" />
|
||||
<PackageReference Include="NUnit3TestAdapter" Version="6.1.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\e-suite.API.Common\e-suite.API.Common.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@ -0,0 +1,57 @@
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace e_suite.API.Common.UnitTests.helper;
|
||||
|
||||
public static class ExceptionTester
|
||||
{
|
||||
public static void PerformTestSuite(Type exceptionUnderTest)
|
||||
{
|
||||
Assert.That(exceptionUnderTest, Is.Not.Null);
|
||||
Assert.That(InheritsFrom<Exception>(exceptionUnderTest), Is.True);
|
||||
Assert.That(CreateInstanceWithNoMessage(exceptionUnderTest), Is.True);
|
||||
Assert.That(CreateInstanceWithMessage(exceptionUnderTest), Is.True);
|
||||
Assert.That(CreateInstanceWithMessageAndInnerException(exceptionUnderTest), Is.True);
|
||||
}
|
||||
|
||||
private static bool CreateInstanceWithMessageAndInnerException(Type exceptionUnderTest)
|
||||
{
|
||||
var innerException = new Exception("InnerException");
|
||||
|
||||
var newInstance = (Exception)Activator.CreateInstance(exceptionUnderTest, "Test", innerException)!;
|
||||
|
||||
Assert.That(newInstance, Is.Not.Null);
|
||||
Assert.That(newInstance?.InnerException, Is.EqualTo(innerException));
|
||||
|
||||
return newInstance?.GetType() == exceptionUnderTest;
|
||||
}
|
||||
|
||||
private static bool CreateInstanceWithMessage(Type exceptionUnderTest)
|
||||
{
|
||||
var newInstance = Activator.CreateInstance(exceptionUnderTest, "Test");
|
||||
Assert.That(newInstance, Is.Not.Null);
|
||||
return newInstance?.GetType() == exceptionUnderTest;
|
||||
}
|
||||
|
||||
private static bool CreateInstanceWithNoMessage(Type exceptionUnderTest)
|
||||
{
|
||||
var newInstance = Activator.CreateInstance(exceptionUnderTest);
|
||||
Assert.That(newInstance, Is.Not.Null);
|
||||
return newInstance?.GetType() == exceptionUnderTest;
|
||||
}
|
||||
|
||||
private static bool InheritsFrom<T>(Type exceptionUnderTest)
|
||||
{
|
||||
var typeUnderTest = exceptionUnderTest;
|
||||
|
||||
while (typeUnderTest != null)
|
||||
{
|
||||
if (typeUnderTest == typeof(T))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
typeUnderTest = typeUnderTest.BaseType;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
39
e-suite.API.Common/e-suite.API.Common.sln
Normal file
39
e-suite.API.Common/e-suite.API.Common.sln
Normal file
@ -0,0 +1,39 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.4.33213.308
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "e-suite.API.Common", "e-suite.API.Common\e-suite.API.Common.csproj", "{B83BC836-F72F-4109-ABEF-6DBFB0D32CF3}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{E3CF6121-8D87-4C4B-A3EE-73AE78F92DF4}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UnitTests", "UnitTests", "{D4A0A029-718D-436F-AECE-F04CCD4FDD65}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "e-suite.API.Common.UnitTests", "e-suite.API.Common.UnitTests\e-suite.API.Common.UnitTests.csproj", "{4D647593-4BEA-4ACB-A886-82491D703E52}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{B83BC836-F72F-4109-ABEF-6DBFB0D32CF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B83BC836-F72F-4109-ABEF-6DBFB0D32CF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B83BC836-F72F-4109-ABEF-6DBFB0D32CF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B83BC836-F72F-4109-ABEF-6DBFB0D32CF3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4D647593-4BEA-4ACB-A886-82491D703E52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4D647593-4BEA-4ACB-A886-82491D703E52}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4D647593-4BEA-4ACB-A886-82491D703E52}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4D647593-4BEA-4ACB-A886-82491D703E52}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{D4A0A029-718D-436F-AECE-F04CCD4FDD65} = {E3CF6121-8D87-4C4B-A3EE-73AE78F92DF4}
|
||||
{4D647593-4BEA-4ACB-A886-82491D703E52} = {D4A0A029-718D-436F-AECE-F04CCD4FDD65}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {63B8E197-C2CC-44D5-8FE3-4DB963DB9D2B}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
10
e-suite.API.Common/e-suite.API.Common/IAuditLog.cs
Normal file
10
e-suite.API.Common/e-suite.API.Common/IAuditLog.cs
Normal file
@ -0,0 +1,10 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Utilities.Pagination;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IAuditLog
|
||||
{
|
||||
Task<IPaginatedData<AuditLogEntry>> GetAuditLogEntries(Paging paging, string? logEntry, bool primaryOnly,
|
||||
CancellationToken cancellationToken);
|
||||
}
|
||||
12
e-suite.API.Common/e-suite.API.Common/IBlockedIPsManager.cs
Normal file
12
e-suite.API.Common/e-suite.API.Common/IBlockedIPsManager.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using e_suite.Utilities.Pagination;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IBlockedIPsManager
|
||||
{
|
||||
Task<IPaginatedData<BlockedIPs>> GetBlockedIPs(Paging paging, CancellationToken cancellationToken);
|
||||
|
||||
Task UnblockIPAddress(AuditUserDetails auditUserDetails, string ipaddress, CancellationToken cancellationToken);
|
||||
}
|
||||
12
e-suite.API.Common/e-suite.API.Common/IContactsManager.cs
Normal file
12
e-suite.API.Common/e-suite.API.Common/IContactsManager.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IContactsManager
|
||||
{
|
||||
Task CreateContact(AuditUserDetails auditUserDetails, CreateContact createContactDto, CancellationToken cancellationToken);
|
||||
Task EditContact(AuditUserDetails auditUserDetails, EditContact editContactDto, CancellationToken cancellationToken);
|
||||
Task<ReadContact> GetContact(GeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
}
|
||||
18
e-suite.API.Common/e-suite.API.Common/ICustomFieldHelper.cs
Normal file
18
e-suite.API.Common/e-suite.API.Common/ICustomFieldHelper.cs
Normal file
@ -0,0 +1,18 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Core.Models;
|
||||
using e_suite.Database.Core.Tables.CustomFields;
|
||||
using e_suite.Database.Core.Tables.Domain;
|
||||
using e_suite.Database.Core.Tables.Forms;
|
||||
using e_suite.Database.Core.Tables.Glossaries;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface ICustomFieldHelper
|
||||
{
|
||||
Task<CustomFieldDefinition> TranslateToCustomFieldDefinitionAsync(CustomField customField, CancellationToken cancellationToken);
|
||||
Task<FormTemplate?> GetFormTemplateByGeneralRefIdAsync(IGeneralIdRef idRef, CancellationToken cancellationToken);
|
||||
Task<Glossary?> GetGlossaryByGeneralRefIdAsync(IGeneralIdRef idRef, CancellationToken cancellationToken);
|
||||
Task<Domain?> GetDomainByGeneralRefIdAsync(IGeneralIdRef idRef, CancellationToken cancellationToken);
|
||||
Task<List<CustomFieldValues>> CustomFieldValuesList(IEnumerable<ICustomFieldValue> enumerableCustomFieldValues, CancellationToken cancellationToken);
|
||||
}
|
||||
19
e-suite.API.Common/e-suite.API.Common/ICustomFieldManager.cs
Normal file
19
e-suite.API.Common/e-suite.API.Common/ICustomFieldManager.cs
Normal file
@ -0,0 +1,19 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using e_suite.Utilities.Pagination;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface ICustomFieldManager
|
||||
{
|
||||
Task<IPaginatedData<CustomFieldDefinition>> GetFieldsAsync(Paging paging, CancellationToken cancellationToken);
|
||||
Task CreateFieldAsync(AuditUserDetails auditUserDetails, CreateCustomField custimField, CancellationToken cancellationToken);
|
||||
Task EditFieldAsync(AuditUserDetails auditUserDetails, EditCustomFields custimField, CancellationToken cancellationToken);
|
||||
|
||||
Task<CustomFieldDefinition> GetFieldAsync(IGeneralIdRef id, CancellationToken cancellationToken);
|
||||
|
||||
Task<CustomFieldDefinition> GetFieldAsync(string name, CancellationToken cancellationToken);
|
||||
|
||||
Task DeleteFieldAsync(AuditUserDetails auditUserDetails, IGeneralIdRef id, CancellationToken cancellationToken);
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using e_suite.Database.Core.Tables.CustomFields;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface ICustomFieldValidator
|
||||
{
|
||||
Task<IEnumerable<ValidatedCustomFieldValue>> ValidateFields(AuditUserDetails auditUserDetails, IEnumerable<CustomFieldValues> customFieldValues,
|
||||
IReadOnlyCollection<CustomField> customFields, CancellationToken cancellationToken);
|
||||
}
|
||||
18
e-suite.API.Common/e-suite.API.Common/IDomainManager.cs
Normal file
18
e-suite.API.Common/e-suite.API.Common/IDomainManager.cs
Normal file
@ -0,0 +1,18 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using e_suite.Utilities.Pagination;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IDomainManager
|
||||
{
|
||||
public Task<IPaginatedData<GetDomain>> GetDomainsAsync(Paging paging, CancellationToken cancellationToken);
|
||||
public Task<GetDomain> GetDomainAsync(IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
|
||||
public Task CreateDomainAsync(AuditUserDetails auditUserDetails, CreateDomain createDomain, CancellationToken cancellationToken);
|
||||
|
||||
public Task EditDomainAsync(AuditUserDetails auditUserDetails, EditDomain editDomain, CancellationToken cancellationToken);
|
||||
|
||||
public Task DeleteDomainAsync(AuditUserDetails auditUserDetails, IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
}
|
||||
8
e-suite.API.Common/e-suite.API.Common/IEFlowSync.cs
Normal file
8
e-suite.API.Common/e-suite.API.Common/IEFlowSync.cs
Normal file
@ -0,0 +1,8 @@
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IEFlowSync
|
||||
{
|
||||
Task SyncEFlowPrinterCategories(List<GeneralIdRef> fullMessageDomains);
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Utilities.Pagination;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IExceptionLogManager
|
||||
{
|
||||
Task<long> LogException(Exception ex, string application, string supportingArgs, CancellationToken cancellationToken);
|
||||
|
||||
Task<IPaginatedData<ExceptionLog>> GetExceptionLogs(Paging paging, CancellationToken cancellationToken);
|
||||
}
|
||||
27
e-suite.API.Common/e-suite.API.Common/IFormsManager.cs
Normal file
27
e-suite.API.Common/e-suite.API.Common/IFormsManager.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using e_suite.Utilities.Pagination;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IFormsManager
|
||||
{
|
||||
Task CreateFormTemplateAsync(AuditUserDetails auditUserDetails, CreateFormTemplate createFormTemplate, CancellationToken cancellationToken);
|
||||
|
||||
Task EditFormTemplateAsync(AuditUserDetails auditUserDetails, EditFormTemplate editFormTemplate, CancellationToken cancellationToken);
|
||||
|
||||
Task<GetFormTemplate> GetFormTemplateAsync(IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
|
||||
Task<IPaginatedData<GetFormTemplate>> GetFormTemplatesAsync(Paging paging, CancellationToken cancellationToken);
|
||||
|
||||
Task DeleteFormTemplateAsync(AuditUserDetails auditUserDetails, IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
|
||||
Task<GeneralIdRef> CreateFormInstanceAsync(AuditUserDetails auditUserDetails, CreateFormInstance createFormInstance, CancellationToken cancellationToken);
|
||||
Task CreateFormInstancesAsync(AuditUserDetails auditUserDetails, IEnumerable<CreateFormInstance> createFormInstance, CancellationToken cancellationToken);
|
||||
Task<ReadFormInstance?> GetFormInstanceAsync(GeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task<List<ReadFormInstance>> GetFormInstanceAsync(IEnumerable<GeneralIdRef> generalIdRefs, CancellationToken cancellationToken);
|
||||
|
||||
Task EditFormInstanceAsync(AuditUserDetails auditUserDetails, EditFormInstance editFormInstance, CancellationToken cancellationToken);
|
||||
Task EditFormInstanceAsync(AuditUserDetails auditUserDetails, IEnumerable<EditFormInstance> editFormInstances, CancellationToken cancellationToken);
|
||||
}
|
||||
14
e-suite.API.Common/e-suite.API.Common/IGlossariesManager.cs
Normal file
14
e-suite.API.Common/e-suite.API.Common/IGlossariesManager.cs
Normal file
@ -0,0 +1,14 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IGlossariesManager
|
||||
{
|
||||
Task AddGlossaryItem(AuditUserDetails auditUserDetails, NewGlossaryItem glossaryItem, CancellationToken cancellationToken);
|
||||
Task AddGlossaryItems(AuditUserDetails auditUserDetails, IEnumerable<NewGlossaryItem> glossaryItems, CancellationToken cancellationToken);
|
||||
Task DeleteGlossaryItem(AuditUserDetails auditUserDetails, GeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task<GlossaryItem?> GetGlossaryItem(AuditUserDetails auditUserDetails, GeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task UpdateGlossaryItem(AuditUserDetails auditUserDetails, EditGlossaryItem editGlossaryItem, CancellationToken cancellationToken);
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using e_suite.Utilities.Pagination;
|
||||
using eSuite.Core.MailService;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IMailTemplateManager
|
||||
{
|
||||
Task<IPaginatedData<MailTemplateType>> GetMailTemplateTypes(Paging paging, CancellationToken cancellationToken);
|
||||
Task<GetMailTemplate> GetMailTemplate( IGeneralIdRef domain, MailType mailType, CancellationToken cancellationToken);
|
||||
Task PostMailTemplate(PostMailTemplate mailTemplate, AuditUserDetails auditUserDetails, CancellationToken cancellationToken );
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using e_suite.Database.Core.Tables.Printer;
|
||||
using e_suite.Utilities.Pagination;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IOrganisationsManager
|
||||
{
|
||||
Task<PaginatedData<ReadOrganisation>> GetOrganisationList(Paging paging, CancellationToken cancellationToken);
|
||||
Task AddOrganisation(AuditUserDetails auditUserDetails, CreateOrganisation addOrganisationDto, bool triggerEFlowSync, CancellationToken cancellationToken);
|
||||
Task DeleteOrganisation(AuditUserDetails auditUserDetails, GeneralIdRef generalIdRef, bool triggerEFlowSync, CancellationToken cancellationToken);
|
||||
Task EditOrganisation(AuditUserDetails auditUserDetails, EditOrganisation editOrganisationDto, bool triggerEFlowSync, CancellationToken cancellationToken);
|
||||
Task<Organisation?> GetOrganisation(GeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IPerformanceMaintenance
|
||||
{
|
||||
Task ClearOldPerformanceData();
|
||||
}
|
||||
@ -0,0 +1,5 @@
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IPerformanceManager
|
||||
{
|
||||
}
|
||||
29
e-suite.API.Common/e-suite.API.Common/IRoleManager.cs
Normal file
29
e-suite.API.Common/e-suite.API.Common/IRoleManager.cs
Normal file
@ -0,0 +1,29 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using e_suite.Database.Core.Tables.UserManager;
|
||||
using e_suite.Utilities.Pagination;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
using eSuite.Core.Security;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IRoleManager
|
||||
{
|
||||
Task<IPaginatedData<ReadRole>> GetRoles(Paging paging, IGeneralIdRef domain, CancellationToken cancellationToken);
|
||||
|
||||
Task<ReadRole> GetRole(IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
|
||||
Task CreateRole(AuditUserDetails auditUserDetails, CreateRole sequence, CancellationToken cancellationToken);
|
||||
Task DeleteRole(AuditUserDetails auditUserDetails, IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task EditRole(AuditUserDetails auditUserDetails, EditRole editSequence, CancellationToken cancellationToken);
|
||||
Task<IPaginatedData<RoleUser>> GetRoleUsers(Paging paging, GeneralIdRef roleId, CancellationToken cancellationToken);
|
||||
Task AddRoleUser(AuditUserDetails auditUserDetails, UserRoleIds userRole, CancellationToken cancellationToken);
|
||||
Task DeleteRoleUser(AuditUserDetails auditUserDetails, UserRoleIds userRole, CancellationToken cancellationToken);
|
||||
Task<IPaginatedData<GetSecurityAccess>>GetAccessList(Paging paging, CancellationToken cancellationToken);
|
||||
Task<IPaginatedData<GetRoleSecurityAccess>> GetRoleAccess(Paging paging, CancellationToken cancellationToken);
|
||||
Task AddRoleSecurityAccess(AuditUserDetails auditUserDetails, AddRoleSecurityAccess accessToAdd, CancellationToken cancellationToken);
|
||||
Task DeleteRoleSecurityAccess(AuditUserDetails auditUserDetails, DeleteRoleSecurityAccess accessToRemove, CancellationToken cancellationToken);
|
||||
Task<bool> HasAnyAccess(long? userId, SecurityAccess accessKey);
|
||||
Task CheckHasDomainAccess(long userId, IGeneralIdRef? specificDomain, SecurityAccess accessKey, CancellationToken cancellationToken);
|
||||
IEnumerable<GetSecurityAccess> GetMyUserAccess(User user);
|
||||
}
|
||||
17
e-suite.API.Common/e-suite.API.Common/ISequenceManager.cs
Normal file
17
e-suite.API.Common/e-suite.API.Common/ISequenceManager.cs
Normal file
@ -0,0 +1,17 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using e_suite.Utilities.Pagination;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface ISequenceManager
|
||||
{
|
||||
Task<Sequence> GetSequence(IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task CreateSequence(AuditUserDetails auditUserDetails, NewSequence sequence, CancellationToken cancellationToken);
|
||||
Task DeleteSequence(AuditUserDetails auditUserDetails, IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task EditSequence(AuditUserDetails auditUserDetails, Sequence editSequence, CancellationToken cancellationToken);
|
||||
Task<IPaginatedData<ReadSequence>> GetSequences(Paging paging, CancellationToken cancellationToken);
|
||||
Task<IEnumerable<string>> NextValue(AuditUserDetails auditUserDetails, IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task<IEnumerable<string>> NextValue(AuditUserDetails auditUserDetails, IGeneralIdRef generalIdRef, int number, CancellationToken cancellationToken);
|
||||
}
|
||||
8
e-suite.API.Common/e-suite.API.Common/ISigmaImporter.cs
Normal file
8
e-suite.API.Common/e-suite.API.Common/ISigmaImporter.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface ISigmaImporter
|
||||
{
|
||||
Task ImportGMGProfiles();
|
||||
|
||||
Task ImportPrintSpecifications();
|
||||
}
|
||||
20
e-suite.API.Common/e-suite.API.Common/ISiteManager.cs
Normal file
20
e-suite.API.Common/e-suite.API.Common/ISiteManager.cs
Normal file
@ -0,0 +1,20 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using e_suite.Utilities.Pagination;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface ISiteManager
|
||||
{
|
||||
Task<IPaginatedData<ReadSite>> GetSites(Paging paging, CancellationToken cancellationToken);
|
||||
|
||||
Task<ReadSite> GetSite(IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task<ReadSite> GetSiteByName(IGeneralIdRef organisationGeneralIdRef, string siteName, CancellationToken cancellationToken);
|
||||
Task<ReadSite> GetSiteBySigmaId(long sigmaId, CancellationToken cancellationToken);
|
||||
|
||||
Task CreateSite(AuditUserDetails auditUserDetails, CreateSite site, bool triggerEFlowSync, CancellationToken cancellationToken);
|
||||
Task CreateSites(AuditUserDetails auditUserDetails, IEnumerable<CreateSite> sites, bool triggerEFlowSync, CancellationToken cancellationToken);
|
||||
Task EditSite(AuditUserDetails auditUserDetails, EditSite site, bool triggerEFlowSync, CancellationToken cancellationToken);
|
||||
Task DeleteSite(AuditUserDetails auditUserDetails, IGeneralIdRef generalIdRef, bool triggerEFlowSync, CancellationToken cancellationToken);
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using e_suite.Utilities.Pagination;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface ISpecificationManager
|
||||
{
|
||||
Task<GeneralIdRef?> GetTemplateForPrintSpec(GeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task<IPaginatedData<ReadSpecification>> GetSpecifications(Paging paging, CancellationToken cancellationToken);
|
||||
Task<ReadSpecification?> GetSpecification(GeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task CreateSpecification(AuditUserDetails auditUserDetails, CreateSpecification create, bool triggerEFlowSync, CancellationToken cancellationToken);
|
||||
Task CreateSpecification(AuditUserDetails auditUserDetails, IEnumerable<CreateSpecification> create, bool triggerEFlowSync, CancellationToken cancellationToken);
|
||||
Task DeleteSpecification(AuditUserDetails auditUserDetails, GeneralIdRef generalIdRef, bool triggerEFlowSync, CancellationToken cancellationToken);
|
||||
Task EditSpecification(AuditUserDetails auditUserDetails, EditSpecification edit, bool triggerEFlowSync, CancellationToken cancellationToken);
|
||||
Task EditSpecification(AuditUserDetails auditUserDetails, IEnumerable<EditSpecification> items, bool triggerEFlowSync, CancellationToken cancellationToken);
|
||||
}
|
||||
15
e-suite.API.Common/e-suite.API.Common/ISsoManager.cs
Normal file
15
e-suite.API.Common/e-suite.API.Common/ISsoManager.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using e_suite.Utilities.Pagination;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface ISsoManager
|
||||
{
|
||||
Task<IPaginatedData<ReadSsoProvider>> GetSsoProvidersAsync(Paging paging, CancellationToken cancellationToken);
|
||||
Task<ReadSsoProvider> GetSsoProviderAsync(IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task AddSsoProviderAsync(AuditUserDetails auditUserDetails, CreateSsoProvider ssoProvider, CancellationToken cancellationToken);
|
||||
Task EditSsoProviderAsync(AuditUserDetails auditUserDetails, EditSsoProvider ssoProvider, CancellationToken cancellationToken);
|
||||
Task RemoveSsoProviderAsync( AuditUserDetails auditUserDetails, IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
}
|
||||
37
e-suite.API.Common/e-suite.API.Common/IUserManager.cs
Normal file
37
e-suite.API.Common/e-suite.API.Common/IUserManager.cs
Normal file
@ -0,0 +1,37 @@
|
||||
using e_suite.API.Common.models;
|
||||
using e_suite.Database.Audit;
|
||||
using e_suite.Database.Core.Models;
|
||||
using e_suite.Database.Core.Tables.UserManager;
|
||||
using e_suite.Utilities.Pagination;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IUserManager
|
||||
{
|
||||
Task<LoginResponse> Login(Login login, CancellationToken cancellationToken = default!);
|
||||
Task<LoginResponse> LoginSso(long ssoId, string ssoUserId, CancellationToken cancellationToken = default!);
|
||||
Task ForgotPassword(string email, CancellationToken cancellationToken = default!);
|
||||
Task CreateUser(AuditUserDetails auditUserDetails, UserRegistration userRegistration, CancellationToken cancellationToken = default!);
|
||||
Task<LoginResponse> RefreshToken(string email, CancellationToken cancellationToken = default!);
|
||||
Task<LoginResponse> RefreshToken(IGeneralIdRef id, CancellationToken cancellationToken = default!);
|
||||
Task<User> CompleteEmailAction(EmailActionToken token, CancellationToken cancellationToken = default!);
|
||||
Task DeactivateUser(AuditUserDetails auditUserDetails, string email, CancellationToken cancellationToken = default!);
|
||||
Task DeactivateUser(AuditUserDetails auditUserDetails, GeneralIdRef generalIdRef, CancellationToken cancellationToken = default!);
|
||||
Task<UserProfile> GetProfile(string email, CancellationToken cancellationToken = default!);
|
||||
Task UpdateProfile(AuditUserDetails auditUserDetails, string email, UpdatedUserProfile userProfile, CancellationToken cancellationToken = default!);
|
||||
public Task<IPaginatedData<GetUser>> GetUsersAsync(Paging paging, CancellationToken cancellationToken);
|
||||
Task<GetUser?> GetUserAsync(GeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task<User> GetUserByEmailAsync(string email, CancellationToken cancellationToken);
|
||||
|
||||
Task EditUser(AuditUserDetails auditUserDetails, EditUser user, CancellationToken cancellationToken);
|
||||
Task ResendConfirmEmail(AuditUserDetails auditUserDetails, GeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task<string> GetCurrentEmailActionUrl(string emailAddress, EmailUserActionType emailUserActionType, CancellationToken cancellationToken );
|
||||
Task<SsoProvider?> GetSsoProviderForEmail(string loginEmail, CancellationToken cancellationToken);
|
||||
Task<SsoProvider?> GetSsoProviderById(long ssoProviderId, CancellationToken cancellationToken);
|
||||
Task LinkSsoProfileToUser(AuditUserDetails auditUserDetails, User user, long ssoId, string ssoUserId, bool setEmailConfirmed, CancellationToken cancellationToken);
|
||||
Task TurnOfSsoForUser(AuditUserDetails auditUserDetails, GeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task<Guid> CreateSingleUseGuid(AuditUserDetails auditUserDetails, GeneralIdRef generalIdRef, CancellationToken cancellationToken);
|
||||
Task<User?> GetUserWithSingleUseGuid(Guid guid, CancellationToken cancellationToken);
|
||||
Task SetAuthentication( AuditUserDetails auditUserDetails, UserAuthenticationDetails userAuthenticationDetails, bool setEmailConfirmed, CancellationToken cancellationToken );
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
namespace e_suite.API.Common;
|
||||
|
||||
public interface IUserManagerMaintenance
|
||||
{
|
||||
Task ClearOldEmailActions();
|
||||
Task ClearOldSingleUserGuids();
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<RootNamespace>e_suite.API.Common</RootNamespace>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="10.0.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\e-suite.Database.Core\e-suite.Database.Core\e-suite.Database.Core.csproj" />
|
||||
<ProjectReference Include="..\..\e-suite.Utilities.Pagination\e-suite.Utilities.Pagination\e-suite.Utilities.Pagination.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@ -0,0 +1,23 @@
|
||||
namespace e_suite.API.Common.exceptions;
|
||||
|
||||
public class EmailNotConfirmedException : Exception
|
||||
{
|
||||
public EmailNotConfirmedException()
|
||||
{
|
||||
}
|
||||
|
||||
public EmailNotConfirmedException(string? message)
|
||||
: base(message)
|
||||
{
|
||||
}
|
||||
|
||||
// Creates a new Exception. All derived classes should
|
||||
// provide this constructor.
|
||||
// Note: the stack trace is not started until the exception
|
||||
// is thrown
|
||||
//
|
||||
public EmailNotConfirmedException(string? message, Exception? innerException)
|
||||
: base(message, innerException)
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
namespace e_suite.API.Common.exceptions;
|
||||
|
||||
public class ExistsException : Exception
|
||||
{
|
||||
public ExistsException()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public ExistsException(string? message)
|
||||
: base(message)
|
||||
{
|
||||
}
|
||||
|
||||
// Creates a new Exception. All derived classes should
|
||||
// provide this constructor.
|
||||
// Note: the stack trace is not started until the exception
|
||||
// is thrown
|
||||
//
|
||||
public ExistsException(string? message, Exception? innerException)
|
||||
: base(message, innerException)
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
namespace e_suite.API.Common.exceptions;
|
||||
|
||||
public class InvalidEmailException : Exception
|
||||
{
|
||||
public InvalidEmailException()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public InvalidEmailException(string? message)
|
||||
: base(message)
|
||||
{
|
||||
}
|
||||
|
||||
// Creates a new Exception. All derived classes should
|
||||
// provide this constructor.
|
||||
// Note: the stack trace is not started until the exception
|
||||
// is thrown
|
||||
//
|
||||
public InvalidEmailException(string? message, Exception? innerException)
|
||||
: base(message, innerException)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
namespace e_suite.API.Common.exceptions;
|
||||
|
||||
public class InvalidReferenceObjectId : Exception
|
||||
{
|
||||
public InvalidReferenceObjectId()
|
||||
{
|
||||
}
|
||||
|
||||
public InvalidReferenceObjectId(string? message) : base(message)
|
||||
{
|
||||
}
|
||||
|
||||
public InvalidReferenceObjectId(string? message, Exception? innerException) : base(message, innerException)
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
namespace e_suite.API.Common.exceptions;
|
||||
|
||||
public class MaximumRangeException : Exception
|
||||
{
|
||||
public MaximumRangeException() : base()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public MaximumRangeException(string? message)
|
||||
: base(message)
|
||||
{
|
||||
}
|
||||
|
||||
// Creates a new Exception. All derived classes should
|
||||
// provide this constructor.
|
||||
// Note: the stack trace is not started until the exception
|
||||
// is thrown
|
||||
//
|
||||
public MaximumRangeException(string? message, Exception? innerException)
|
||||
: base(message, innerException)
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
namespace e_suite.API.Common.exceptions;
|
||||
|
||||
public class MinimumRangeException : Exception
|
||||
{
|
||||
public MinimumRangeException() : base()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public MinimumRangeException(string? message)
|
||||
: base(message)
|
||||
{
|
||||
}
|
||||
|
||||
// Creates a new Exception. All derived classes should
|
||||
// provide this constructor.
|
||||
// Note: the stack trace is not started until the exception
|
||||
// is thrown
|
||||
//
|
||||
public MinimumRangeException(string? message, Exception? innerException)
|
||||
: base(message, innerException)
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
namespace e_suite.API.Common.exceptions;
|
||||
|
||||
public class NotFoundException : Exception
|
||||
{
|
||||
public NotFoundException()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public NotFoundException(string? message)
|
||||
: base(message)
|
||||
{
|
||||
}
|
||||
|
||||
// Creates a new Exception. All derived classes should
|
||||
// provide this constructor.
|
||||
// Note: the stack trace is not started until the exception
|
||||
// is thrown
|
||||
//
|
||||
public NotFoundException(string? message, Exception? innerException)
|
||||
: base(message, innerException)
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
namespace e_suite.API.Common.exceptions;
|
||||
|
||||
public class TokenInvalidException : Exception
|
||||
{
|
||||
public TokenInvalidException()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public TokenInvalidException(string? message)
|
||||
: base(message)
|
||||
{
|
||||
}
|
||||
|
||||
// Creates a new Exception. All derived classes should
|
||||
// provide this constructor.
|
||||
// Note: the stack trace is not started until the exception
|
||||
// is thrown
|
||||
//
|
||||
public TokenInvalidException(string? message, Exception? innerException)
|
||||
: base(message, innerException)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
namespace e_suite.API.Common.exceptions;
|
||||
|
||||
public class WeakPasswordException : Exception
|
||||
{
|
||||
public WeakPasswordException()
|
||||
{
|
||||
}
|
||||
|
||||
public WeakPasswordException(string? message)
|
||||
: base(message)
|
||||
{
|
||||
}
|
||||
|
||||
// Creates a new Exception. All derived classes should
|
||||
// provide this constructor.
|
||||
// Note: the stack trace is not started until the exception
|
||||
// is thrown
|
||||
//
|
||||
public WeakPasswordException(string? message, Exception? innerException)
|
||||
: base(message, innerException)
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace e_suite.API.Common.extensions;
|
||||
|
||||
public static class ConfigurationHelper
|
||||
{
|
||||
public static T? GetConfigValue<T>(this IConfiguration configuration, string environmentVariable, string key, T defaultValue)
|
||||
{
|
||||
var envVariable = Environment.GetEnvironmentVariable(environmentVariable);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(envVariable))
|
||||
return (T?)Convert.ChangeType(envVariable, typeof(T));
|
||||
|
||||
return configuration.GetValue(key, defaultValue);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
#pragma warning disable IDE0130 // Namespace does not match folder structure
|
||||
namespace System;
|
||||
#pragma warning restore IDE0130 // Namespace does not match folder structure
|
||||
|
||||
public static class ObjectExtensions
|
||||
{
|
||||
public static T DeepClone<T>(this T obj)
|
||||
{
|
||||
using var stream = new MemoryStream();
|
||||
var serializer = new Xml.Serialization.XmlSerializer(typeof(T));
|
||||
|
||||
serializer.Serialize(stream, obj);
|
||||
stream.Position = 0;
|
||||
return (T)serializer.Deserialize(stream)!;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
using eSuite.Core.Miscellaneous;
|
||||
using eSuite.Core.Security;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class AddRoleSecurityAccess
|
||||
{
|
||||
public GeneralIdRef RoleId { get; set; } = null!;
|
||||
public List<SecurityAccess> SecurityAccess { get; set; } = null!;
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
using e_suite.Database.Audit.Models;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class AuditLogEntry : IId
|
||||
{
|
||||
public long Id { get; set; }
|
||||
|
||||
public long UserId { get; set; }
|
||||
public string UserDisplayName { get; set; } = string.Empty;
|
||||
|
||||
public string Type { get; set; } = string.Empty;
|
||||
|
||||
public DateTimeOffset DateTime { get; set; }
|
||||
|
||||
public string Fields { get; set; } = string.Empty;
|
||||
|
||||
public string Comment { get; set; } = string.Empty;
|
||||
|
||||
public string EntityName { get; set; } = string.Empty;
|
||||
|
||||
public string PrimaryKey { get; set; } = string.Empty;
|
||||
|
||||
public string EntityDisplayName { get; set; } = string.Empty;
|
||||
|
||||
public string DisplayName { get; set; } = string.Empty;
|
||||
}
|
||||
12
e-suite.API.Common/e-suite.API.Common/models/AuditParams.cs
Normal file
12
e-suite.API.Common/e-suite.API.Common/models/AuditParams.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class AuditParams
|
||||
{
|
||||
[JsonPropertyName("entityName")]
|
||||
public string EntityName { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("primaryKey")]
|
||||
public string PrimaryKey { get; set; } = string.Empty;
|
||||
}
|
||||
13
e-suite.API.Common/e-suite.API.Common/models/BlockedIPs.cs
Normal file
13
e-suite.API.Common/e-suite.API.Common/models/BlockedIPs.cs
Normal file
@ -0,0 +1,13 @@
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class BlockedIPs
|
||||
{
|
||||
public string IPAddress { get; set; } = string.Empty;
|
||||
|
||||
public int NumberOfAttempts { get; set; }
|
||||
|
||||
public DateTimeOffset BlockedAt { get; set; }
|
||||
|
||||
public int UnblockedIn { get; set; }
|
||||
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class CreateContact
|
||||
{
|
||||
[JsonPropertyName("guid")]
|
||||
public Guid? Guid { get; set; }
|
||||
|
||||
[JsonPropertyName("jCard")]
|
||||
public string JCard { get; set; } = string.Empty;
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using e_suite.API.Common.models.@base;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class CreateCustomField : CustomFieldBase
|
||||
{
|
||||
|
||||
[JsonPropertyName("guid")]
|
||||
public Guid? Guid { get; set; } = System.Guid.NewGuid();
|
||||
|
||||
}
|
||||
10
e-suite.API.Common/e-suite.API.Common/models/CreateDomain.cs
Normal file
10
e-suite.API.Common/e-suite.API.Common/models/CreateDomain.cs
Normal file
@ -0,0 +1,10 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using e_suite.API.Common.models.@base;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class CreateDomain : DomainBase
|
||||
{
|
||||
[JsonPropertyName("guid")]
|
||||
public Guid? Guid { get; set; }
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class CreateFormInstance
|
||||
{
|
||||
[JsonPropertyName("templateId")]
|
||||
public GeneralIdRef TemplateId { get; set; } = null!;
|
||||
|
||||
[JsonPropertyName("version")]
|
||||
public long Version { get; set; }
|
||||
|
||||
[JsonPropertyName("customFieldValues")]
|
||||
public List<CustomFieldValues> CustomFieldValues { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("guid")]
|
||||
public Guid? Guid { get; set; }
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class CreateFormTemplate
|
||||
{
|
||||
[JsonPropertyName("name")]
|
||||
[Required]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("definition")]
|
||||
public string Definition { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("guid")]
|
||||
public Guid? Guid { get; set; }
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
using e_suite.Database.Core.Models;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class CreateOrganisation
|
||||
{
|
||||
[JsonPropertyName("guid")]
|
||||
public Guid? Guid { get; set; }
|
||||
[JsonPropertyName("name")]
|
||||
[Required]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
[JsonPropertyName("address")]
|
||||
[Required]
|
||||
public string Address { get; set; } = string.Empty;
|
||||
[JsonPropertyName("status")]
|
||||
[Required]
|
||||
public OrganisationStatus Status { get; set; }
|
||||
}
|
||||
13
e-suite.API.Common/e-suite.API.Common/models/CreateRole.cs
Normal file
13
e-suite.API.Common/e-suite.API.Common/models/CreateRole.cs
Normal file
@ -0,0 +1,13 @@
|
||||
using e_suite.API.Common.models.@base;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class CreateRole : RoleBase
|
||||
{
|
||||
public Guid? Guid { get; set; }
|
||||
public bool IsSuperUser { get; set; }
|
||||
public bool IsAdministrator { get; set; }
|
||||
public bool CanDelete { get; set; } = true;
|
||||
public GeneralIdRef DomainId { get; set; } = null!;
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
using e_suite.API.Common.models.@base;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class CreateSite : SiteBase
|
||||
{
|
||||
public Guid? Guid { get; set; }
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
using e_suite.API.Common.models.@base;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class CreateSpecification : SpecificationBase
|
||||
{
|
||||
public Guid? Guid { get; set; }
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
using e_suite.API.Common.models.@base;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class CreateSsoProvider : SsoProviderBase
|
||||
{
|
||||
public Guid? Guid { get; set; }
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class CustomFieldValue
|
||||
{
|
||||
/// <summary>
|
||||
/// Value can be either a string or a GeneralRefId
|
||||
/// </summary>
|
||||
[JsonPropertyName("value")]
|
||||
public object Value { get; set; } = null!;
|
||||
|
||||
[JsonPropertyName("displayValue")]
|
||||
public string? DisplayValue { get; set; }
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public static class CustomFieldValueExtensions
|
||||
{
|
||||
public static List<CustomFieldValues> ToCustomFieldsValues(this IEnumerable<CustomFieldValues> values)
|
||||
{
|
||||
var items = new Dictionary<GeneralIdRef, CustomFieldValues>();
|
||||
foreach (var value in values)
|
||||
{
|
||||
if (!items.ContainsKey(value.Id))
|
||||
{
|
||||
var newCustomFieldValues = new CustomFieldValues
|
||||
{
|
||||
Id = value.Id
|
||||
};
|
||||
newCustomFieldValues.Values.AddRange(value.Values);
|
||||
|
||||
items.Add(value.Id, newCustomFieldValues);
|
||||
}
|
||||
}
|
||||
|
||||
var result = new List<CustomFieldValues>();
|
||||
result.AddRange(items.Values);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class CustomFieldValues
|
||||
{
|
||||
[JsonPropertyName("id")]
|
||||
public GeneralIdRef Id { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("values")]
|
||||
|
||||
public List<CustomFieldValue> Values { get; set; } = new();
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
using eSuite.Core.Miscellaneous;
|
||||
using eSuite.Core.Security;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class DeleteRoleSecurityAccess
|
||||
{
|
||||
public GeneralIdRef RoleId { get; set; } = null!;
|
||||
public List<SecurityAccess> SecurityAccess { get; set; } = null!;
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class EditContact
|
||||
{
|
||||
public GeneralIdRef GeneralIdRef { get; set; } = null!;
|
||||
public string JCard { get; set; } = string.Empty;
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using e_suite.API.Common.models.@base;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class EditCustomFields : CustomFieldBase
|
||||
{
|
||||
[JsonPropertyName("id")]
|
||||
public GeneralIdRef Id { get; set; } = new GeneralIdRef();
|
||||
|
||||
}
|
||||
13
e-suite.API.Common/e-suite.API.Common/models/EditDomain.cs
Normal file
13
e-suite.API.Common/e-suite.API.Common/models/EditDomain.cs
Normal file
@ -0,0 +1,13 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
using e_suite.API.Common.models.@base;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class EditDomain : DomainBase
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("id")]
|
||||
public GeneralIdRef Id { get; set; } = new GeneralIdRef();
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using e_suite.Database.Core.Extensions;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class EditFormInstance
|
||||
{
|
||||
public EditFormInstance()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public EditFormInstance(ReadFormInstance readFormInstance)
|
||||
{
|
||||
FormInstanceId = readFormInstance.ToGeneralIdRef()!;
|
||||
TemplateId = readFormInstance.TemplateId;
|
||||
Version = readFormInstance.Version;
|
||||
foreach (var values in readFormInstance.CustomFieldValues)
|
||||
{
|
||||
CustomFieldValues.Add(values.DeepClone());
|
||||
}
|
||||
}
|
||||
|
||||
[JsonPropertyName("formInstanceId")]
|
||||
public GeneralIdRef FormInstanceId { get; set; } = null!;
|
||||
|
||||
[JsonPropertyName("templateId")]
|
||||
public GeneralIdRef TemplateId { get; set; } = null!;
|
||||
|
||||
[JsonPropertyName("version")]
|
||||
public long Version { get; set; }
|
||||
|
||||
[JsonPropertyName("customFieldValues")]
|
||||
public List<CustomFieldValues> CustomFieldValues { get; set; } = [];
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class EditFormTemplate
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("id")]
|
||||
public GeneralIdRef Id { get; set; } = new GeneralIdRef();
|
||||
|
||||
[JsonPropertyName("name")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("definition")]
|
||||
public string Definition { get; set; } = string.Empty;
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class EditGlossaryItem : EditableGlossaryItem
|
||||
{
|
||||
[JsonPropertyName("id")]
|
||||
public GeneralIdRef Id { get; set; } = null!;
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
using e_suite.Database.Core.Models;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class EditOrganisation
|
||||
{
|
||||
public GeneralIdRef GeneralIdRef { get; set; } = null!;
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string Address { get; set; } = string.Empty;
|
||||
public OrganisationStatus Status { get; set; }
|
||||
}
|
||||
9
e-suite.API.Common/e-suite.API.Common/models/EditRole.cs
Normal file
9
e-suite.API.Common/e-suite.API.Common/models/EditRole.cs
Normal file
@ -0,0 +1,9 @@
|
||||
using e_suite.API.Common.models.@base;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class EditRole : RoleBase
|
||||
{
|
||||
public GeneralIdRef GeneralIdRef { get; set; } = null!;
|
||||
}
|
||||
9
e-suite.API.Common/e-suite.API.Common/models/EditSite.cs
Normal file
9
e-suite.API.Common/e-suite.API.Common/models/EditSite.cs
Normal file
@ -0,0 +1,9 @@
|
||||
using e_suite.API.Common.models.@base;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class EditSite : SiteBase
|
||||
{
|
||||
public GeneralIdRef Id { get; set; } = null!;
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
using e_suite.API.Common.models.@base;
|
||||
using eSuite.Core.Miscellaneous;
|
||||
|
||||
namespace e_suite.API.Common.models;
|
||||
|
||||
public class EditSpecification : SpecificationBase
|
||||
{
|
||||
public GeneralIdRef Id { get; set; } = null!;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user