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