v1.3.0 Restructure Saxonite workspace and upgrade to .NET 10 (#1)
Move Saxonite’s projects into a dedicated `Workspace` folder and align the solution with .NET 10 and the current Common workspace. Update encryption integration, test project structure and coverage, and repository guidance and upgrade notes. - Relocate application and library projects while retaining Git rename history. - Split tests into Admin, Online, and Shared projects; add representative behavioral and serialization tests. - Update Common integration, application version, and repository documentation. Application version: 1.3.0 Reviewed-on: #1 Co-authored-by: andy <andy@sarand.com>
This commit was merged in pull request #1.
This commit is contained in:
+14
-1
@@ -360,4 +360,17 @@ MigrationBackup/
|
|||||||
.ionide/
|
.ionide/
|
||||||
|
|
||||||
# Fody - auto-generated XML schema
|
# Fody - auto-generated XML schema
|
||||||
FodyWeavers.xsd
|
FodyWeavers.xsd
|
||||||
|
|
||||||
|
# Generated deployment archives and shortcuts
|
||||||
|
/Deploy/Generated/
|
||||||
|
|
||||||
|
# Generated database source snapshots
|
||||||
|
/Database/Generated/
|
||||||
|
|
||||||
|
# NuGet cache metadata and local source shortcuts
|
||||||
|
**/.nupkg.metadata
|
||||||
|
**/.signature.p7s
|
||||||
|
**/*.nupkg.sha512
|
||||||
|
**/*.lnk
|
||||||
|
**/*.url
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
# Repository Guidelines
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
|
||||||
|
`Workspace/Saxonite.sln` contains the Saxonite applications, libraries, and tests. `Assets` and other repository-level materials are outside `Workspace`. The solution consumes projects from the sibling `../../Common-VS/Workspace`; preserve this relative layout and read Common's repository guidance when changing shared dependencies or APIs. The parent workspace map at `../../AGENTS.md` is informational; repository instructions and trackers govern this repository.
|
||||||
|
|
||||||
|
## Build and Validation
|
||||||
|
|
||||||
|
Run commands from `Workspace`:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
dotnet restore Saxonite.sln
|
||||||
|
dotnet build Saxonite.sln --configuration Debug
|
||||||
|
dotnet test Saxonite.sln --configuration Debug
|
||||||
|
```
|
||||||
|
|
||||||
|
For Common API, framework, package, or shared-behavior changes, validate Common first, then Saxonite. Coordinate framework upgrades across the dependency boundary. Report any unavailable platform, database, or machine configuration separately from source failures.
|
||||||
|
|
||||||
|
## Coding and File Conventions
|
||||||
|
|
||||||
|
Follow the existing C# style and this repository's `.gitattributes`. Follow shared file-editing guidance at `../../Common-VS/Workspace/docs/instructions/file-editing-conventions.md`. Do not edit generated files or build output under `bin`, `obj`, or `TestResults`. Keep machine-specific configuration and credentials out of source control.
|
||||||
|
|
||||||
|
## Conversation Tracking
|
||||||
|
|
||||||
|
Read `docs/README.md`, `docs/topics.md`, and `docs/component-reviews.md` before repository review or follow-up work. Update the trackers when work is identified, started, completed, or a component is reviewed. Use ISO `YYYY-MM-DD` dates and repository-relative links.
|
||||||
|
|
||||||
|
## Branches and Pull Requests
|
||||||
|
|
||||||
|
- Use short-lived feature branches targeting `master`. Do not create or maintain a shared `develop` branch. Push feature branches and use pull requests; do not push directly to `master`, force-push, or rewrite its history.
|
||||||
|
- Before creating a pull request, prepare a concise proposed title and description and ask the user to confirm both. The description starts with a 2–3 sentence summary, followed by short bullets for significant files, file groups, or folders. Omit minor cleanup and cosmetic changes.
|
||||||
|
- For functional pull requests, propose incrementing Saxonite's application patch version and obtain the user's confirmation before applying it. The application version is the first three components of `Sax.Version` in `Workspace/SaxoniteStandardBase/Base/App/Sax-Version.cs`; synchronize that value and add the release entry to `Workspace/SaxoniteStandardBase/Resources/Data/Application/VersionHistory.json`. Prefix the confirmed title with `vX.Y.Z ` and end the description with `Application version: X.Y.Z`. Documentation/process-only pull requests do not need a version prefix and use `—` as the tracker version.
|
||||||
|
- Do not merge a pull request unless the user asks. After merge, remove its local feature branch; remove the remote branch if the hosting service has not already done so.
|
||||||
|
- Before completing or merging a pull request, move its active topic to Completed Topics and record the PR number, confirmed application version (or `—`), and the actual date the work became ready for PR completion. Show the proposed tracker change and wait for review before committing it. After approval, commit and push the tracker update separately, verify it is present, and only then proceed with PR completion.
|
||||||
|
- Do not require branch protection checks until CI is available and the relevant check has been verified.
|
||||||
|
|
||||||
|
## Security Changes
|
||||||
|
|
||||||
|
For encryption changes, follow Common's `../../Common-VS/Workspace/.agents/skills/common-security-change/SKILL.md` and `../../Common-VS/Workspace/docs/authenticated-encryption-migration.md`. Preserve fail-closed behavior, purpose separation, expiry checks, and the documented clean-break compatibility consequences.
|
||||||
|
|
||||||
|
## Change Discipline
|
||||||
|
|
||||||
|
Check Git status before editing and preserve unrelated work. Treat Common and Saxonite as independent repositories. Do not change Common as part of a Saxonite task unless the user explicitly requests it.
|
||||||
-102
@@ -1,102 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.7.34202.233
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteCoreWebAdmin", "SaxoniteCoreWebAdmin\SaxoniteCoreWebAdmin.csproj", "{F646283D-F7C2-42DD-AB1E-E741455664BD}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteStandardDbas", "SaxoniteStandardDbas\SaxoniteStandardDbas.csproj", "{DA383586-69E3-40EB-A20D-AC1AD24E336C}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteStandardBase", "SaxoniteStandardBase\SaxoniteStandardBase.csproj", "{38FBE932-C1D0-4A28-9172-1466347FD62B}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SacsStandardBase", "..\..\Common-VS\Workspace\SacsStandardBase\SacsStandardBase.csproj", "{9C5309DA-3205-4423-BE13-923EE61370A6}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SacsStandardDbas", "..\..\Common-VS\Workspace\SacsStandardDbas\SacsStandardDbas.csproj", "{E211FE36-108E-4D07-BD30-799A156DDDBB}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteStandardMob", "SaxoniteStandardMob\SaxoniteStandardMob.csproj", "{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteCoreWeb", "SaxoniteCoreWeb\SaxoniteCoreWeb.csproj", "{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteCoreWebOnline", "SaxoniteCoreWebOnline\SaxoniteCoreWebOnline.csproj", "{C1A3E949-B5EA-4A77-9411-5D8B350056D6}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SacsCoreWeb", "..\..\Common-VS\Workspace\SacsCoreWeb\SacsCoreWeb.csproj", "{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteCoreUnitTests", "SaxoniteCoreUnitTests\SaxoniteCoreUnitTests.csproj", "{CA680625-E334-4F76-881B-1327A2F9FE86}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution files", "Solution files", "{BD66A338-2D41-4B64-86B0-670F4F42A489}"
|
|
||||||
ProjectSection(SolutionItems) = preProject
|
|
||||||
ReadMe.md = ReadMe.md
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteCoreUnitTestsOnline", "SaxoniteCoreUnitTestsOnline\SaxoniteCoreUnitTestsOnline.csproj", "{303BA8E9-1B95-41AD-9F51-32037A22C908}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SacsStandardProc", "..\..\Common-VS\Workspace\SacsStandardProc\SacsStandardProc.csproj", "{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteWebApi", "SaxoniteWebApi\SaxoniteWebApi.csproj", "{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{9C5309DA-3205-4423-BE13-923EE61370A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{9C5309DA-3205-4423-BE13-923EE61370A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{9C5309DA-3205-4423-BE13-923EE61370A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{9C5309DA-3205-4423-BE13-923EE61370A6}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{CA680625-E334-4F76-881B-1327A2F9FE86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{CA680625-E334-4F76-881B-1327A2F9FE86}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{CA680625-E334-4F76-881B-1327A2F9FE86}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{CA680625-E334-4F76-881B-1327A2F9FE86}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {0DFC2321-53B9-493B-83D3-2ACD1C47C732}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
|
||||||
|
|
||||||
<IsPackable>false</IsPackable>
|
|
||||||
|
|
||||||
<RootNamespace>Saxonite.Net.Core</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
|
|
||||||
<PackageReference Include="Moq" Version="4.20.72" />
|
|
||||||
<PackageReference Include="MSTest.TestAdapter" Version="3.6.4" />
|
|
||||||
<PackageReference Include="MSTest.TestFramework" Version="3.6.4" />
|
|
||||||
<PackageReference Include="coverlet.collector" Version="6.0.2">
|
|
||||||
<PrivateAssets>all</PrivateAssets>
|
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
||||||
</PackageReference>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\..\Common-VS\Workspace\SacsCoreWeb\SacsCoreWeb.csproj" />
|
|
||||||
<ProjectReference Include="..\..\..\Common-VS\Workspace\SacsStandardBase\SacsStandardBase.csproj" />
|
|
||||||
<ProjectReference Include="..\..\..\Common-VS\Workspace\SacsStandardDbas\SacsStandardDbas.csproj" />
|
|
||||||
<ProjectReference Include="..\SaxoniteCoreWebAdmin\SaxoniteCoreWebAdmin.csproj" />
|
|
||||||
<ProjectReference Include="..\SaxoniteCoreWeb\SaxoniteCoreWeb.csproj" />
|
|
||||||
<ProjectReference Include="..\SaxoniteStandardBase\SaxoniteStandardBase.csproj" />
|
|
||||||
<ProjectReference Include="..\SaxoniteStandardDbas\SaxoniteStandardDbas.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace Saxonite.Net.Core.UnitTests.Data.Population
|
|
||||||
{
|
|
||||||
//=======================================================================
|
|
||||||
[TestClass]
|
|
||||||
public class SaxoniteRegionPopulation_Tester
|
|
||||||
{
|
|
||||||
}
|
|
||||||
//=======================================================================
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
|
||||||
|
|
||||||
<IsPackable>false</IsPackable>
|
|
||||||
|
|
||||||
<RootNamespace>Saxonite.Net.Core</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
|
|
||||||
<PackageReference Include="Moq" Version="4.20.72" />
|
|
||||||
<PackageReference Include="MSTest.TestAdapter" Version="3.6.4" />
|
|
||||||
<PackageReference Include="MSTest.TestFramework" Version="3.6.4" />
|
|
||||||
<PackageReference Include="coverlet.collector" Version="6.0.2">
|
|
||||||
<PrivateAssets>all</PrivateAssets>
|
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
||||||
</PackageReference>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\..\Common-VS\Workspace\SacsCoreWeb\SacsCoreWeb.csproj" />
|
|
||||||
<ProjectReference Include="..\..\..\Common-VS\Workspace\SacsStandardBase\SacsStandardBase.csproj" />
|
|
||||||
<ProjectReference Include="..\..\..\Common-VS\Workspace\SacsStandardDbas\SacsStandardDbas.csproj" />
|
|
||||||
<ProjectReference Include="..\SaxoniteCoreWebOnline\SaxoniteCoreWebOnline.csproj" />
|
|
||||||
<ProjectReference Include="..\SaxoniteCoreWeb\SaxoniteCoreWeb.csproj" />
|
|
||||||
<ProjectReference Include="..\SaxoniteStandardBase\SaxoniteStandardBase.csproj" />
|
|
||||||
<ProjectReference Include="..\SaxoniteStandardDbas\SaxoniteStandardDbas.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<div>Google Analytics</div>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
@inject Saxonite.Net.Core.Web.Base.App.SaxLocaliser Localiser
|
|
||||||
@{
|
|
||||||
Layout = "_Layout";
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<div>Google Analytics</div>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
@inject Saxonite.Net.Core.Web.Base.App.SaxLocaliser Localiser
|
|
||||||
@{
|
|
||||||
Layout = "_Layout";
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"Versions": [
|
|
||||||
{
|
|
||||||
"On": "2021-05-03",
|
|
||||||
"Version": "1.0.0",
|
|
||||||
"Topics": [
|
|
||||||
"Admin/Online security.",
|
|
||||||
"Admin Users, Organisations, Regions, Sports",
|
|
||||||
"Online Journalist Articles (header)."
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,238 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.7.34202.233
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteCoreWebAdmin", "SaxoniteCoreWebAdmin\SaxoniteCoreWebAdmin.csproj", "{F646283D-F7C2-42DD-AB1E-E741455664BD}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteStandardDbas", "SaxoniteStandardDbas\SaxoniteStandardDbas.csproj", "{DA383586-69E3-40EB-A20D-AC1AD24E336C}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteStandardBase", "SaxoniteStandardBase\SaxoniteStandardBase.csproj", "{38FBE932-C1D0-4A28-9172-1466347FD62B}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SacsStandardBase", "..\..\..\Common-VS\Workspace\SacsStandardBase\SacsStandardBase.csproj", "{9C5309DA-3205-4423-BE13-923EE61370A6}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SacsStandardDbas", "..\..\..\Common-VS\Workspace\SacsStandardDbas\SacsStandardDbas.csproj", "{E211FE36-108E-4D07-BD30-799A156DDDBB}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteStandardMob", "SaxoniteStandardMob\SaxoniteStandardMob.csproj", "{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteCoreWeb", "SaxoniteCoreWeb\SaxoniteCoreWeb.csproj", "{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteCoreWebOnline", "SaxoniteCoreWebOnline\SaxoniteCoreWebOnline.csproj", "{C1A3E949-B5EA-4A77-9411-5D8B350056D6}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SacsCoreWeb", "..\..\..\Common-VS\Workspace\SacsCoreWeb\SacsCoreWeb.csproj", "{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteUnitTestsAdmin", "SaxoniteUnitTestsAdmin\SaxoniteUnitTestsAdmin.csproj", "{CA680625-E334-4F76-881B-1327A2F9FE86}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution files", "Solution files", "{BD66A338-2D41-4B64-86B0-670F4F42A489}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
ReadMe.md = ReadMe.md
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteUnitTestsOnline", "SaxoniteUnitTestsOnline\SaxoniteUnitTestsOnline.csproj", "{303BA8E9-1B95-41AD-9F51-32037A22C908}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SacsStandardProc", "..\..\..\Common-VS\Workspace\SacsStandardProc\SacsStandardProc.csproj", "{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SaxoniteWebApi", "SaxoniteWebApi\SaxoniteWebApi.csproj", "{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SacsBusinessBase", "..\..\..\Common-VS\Workspace\SacsBusinessBase\SacsBusinessBase.csproj", "{3D3F98C7-F165-45E1-A2B2-773CB0296962}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SaxoniteUnitTestsShared", "SaxoniteUnitTestsShared\SaxoniteUnitTestsShared.csproj", "{EF62BB9D-8FBC-4B83-BC59-CD123A27BB8E}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{F646283D-F7C2-42DD-AB1E-E741455664BD}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{DA383586-69E3-40EB-A20D-AC1AD24E336C}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{38FBE932-C1D0-4A28-9172-1466347FD62B}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{9C5309DA-3205-4423-BE13-923EE61370A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{9C5309DA-3205-4423-BE13-923EE61370A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{9C5309DA-3205-4423-BE13-923EE61370A6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{9C5309DA-3205-4423-BE13-923EE61370A6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{9C5309DA-3205-4423-BE13-923EE61370A6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{9C5309DA-3205-4423-BE13-923EE61370A6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{9C5309DA-3205-4423-BE13-923EE61370A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{9C5309DA-3205-4423-BE13-923EE61370A6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{9C5309DA-3205-4423-BE13-923EE61370A6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{9C5309DA-3205-4423-BE13-923EE61370A6}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{9C5309DA-3205-4423-BE13-923EE61370A6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{9C5309DA-3205-4423-BE13-923EE61370A6}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{E211FE36-108E-4D07-BD30-799A156DDDBB}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{89CFDAA1-15C9-45CF-8FBF-88E36E0E32CF}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{CFF91B48-04B7-4075-A5B2-FF3FC0B22BC1}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{C1A3E949-B5EA-4A77-9411-5D8B350056D6}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{BBEEBD5B-7D00-4024-9626-D8B2FBF248A4}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{CA680625-E334-4F76-881B-1327A2F9FE86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{CA680625-E334-4F76-881B-1327A2F9FE86}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{CA680625-E334-4F76-881B-1327A2F9FE86}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{CA680625-E334-4F76-881B-1327A2F9FE86}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{CA680625-E334-4F76-881B-1327A2F9FE86}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{CA680625-E334-4F76-881B-1327A2F9FE86}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{CA680625-E334-4F76-881B-1327A2F9FE86}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{CA680625-E334-4F76-881B-1327A2F9FE86}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{CA680625-E334-4F76-881B-1327A2F9FE86}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{CA680625-E334-4F76-881B-1327A2F9FE86}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{CA680625-E334-4F76-881B-1327A2F9FE86}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{CA680625-E334-4F76-881B-1327A2F9FE86}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{303BA8E9-1B95-41AD-9F51-32037A22C908}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{E012B3D3-CF4D-4C2E-ABC6-9E3A3DAE03C5}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{3E1C2BE2-46C8-4D1D-A1C2-806BB1AD8A7E}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{3D3F98C7-F165-45E1-A2B2-773CB0296962}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{3D3F98C7-F165-45E1-A2B2-773CB0296962}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{3D3F98C7-F165-45E1-A2B2-773CB0296962}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{3D3F98C7-F165-45E1-A2B2-773CB0296962}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{3D3F98C7-F165-45E1-A2B2-773CB0296962}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{3D3F98C7-F165-45E1-A2B2-773CB0296962}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{3D3F98C7-F165-45E1-A2B2-773CB0296962}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{3D3F98C7-F165-45E1-A2B2-773CB0296962}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{3D3F98C7-F165-45E1-A2B2-773CB0296962}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{3D3F98C7-F165-45E1-A2B2-773CB0296962}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{3D3F98C7-F165-45E1-A2B2-773CB0296962}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{3D3F98C7-F165-45E1-A2B2-773CB0296962}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{EF62BB9D-8FBC-4B83-BC59-CD123A27BB8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{EF62BB9D-8FBC-4B83-BC59-CD123A27BB8E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{EF62BB9D-8FBC-4B83-BC59-CD123A27BB8E}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{EF62BB9D-8FBC-4B83-BC59-CD123A27BB8E}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{EF62BB9D-8FBC-4B83-BC59-CD123A27BB8E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{EF62BB9D-8FBC-4B83-BC59-CD123A27BB8E}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{EF62BB9D-8FBC-4B83-BC59-CD123A27BB8E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{EF62BB9D-8FBC-4B83-BC59-CD123A27BB8E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{EF62BB9D-8FBC-4B83-BC59-CD123A27BB8E}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{EF62BB9D-8FBC-4B83-BC59-CD123A27BB8E}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{EF62BB9D-8FBC-4B83-BC59-CD123A27BB8E}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{EF62BB9D-8FBC-4B83-BC59-CD123A27BB8E}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {0DFC2321-53B9-493B-83D3-2ACD1C47C732}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
using Sarand.Net.Standard.Base.Utils;
|
using Sarand.Net.Standard.Base.Utils;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Saxonite.Net.Standard.Base.Consoles;
|
using Saxonite.Net.Standard.Base.Consoles;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Html;
|
using Microsoft.AspNetCore.Html;
|
||||||
using Microsoft.AspNetCore.Mvc.Localization;
|
using Microsoft.AspNetCore.Mvc.Localization;
|
||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Saxonite.Net.Standard.Base.App;
|
using Saxonite.Net.Standard.Base.App;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Saxonite.Net.Standard.Base.App;
|
using Saxonite.Net.Standard.Base.App;
|
||||||
using Saxonite.Net.Standard.Base.Bus;
|
using Saxonite.Net.Standard.Base.Bus;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Localization;
|
using Microsoft.AspNetCore.Localization;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
using Saxonite.Net.Standard.Dbas.App;
|
using Saxonite.Net.Standard.Dbas.App;
|
||||||
using Saxonite.Net.Standard.Base.App;
|
using Saxonite.Net.Standard.Base.App;
|
||||||
using Saxonite.Net.Standard.Base.Mgr;
|
using Saxonite.Net.Standard.Base.Mgr;
|
||||||
+1
-9
@@ -1,4 +1,4 @@
|
|||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
using Sarand.Net.Standard.Base.Dbas;
|
using Sarand.Net.Standard.Base.Dbas;
|
||||||
@@ -35,14 +35,6 @@ namespace Saxonite.Net.Core.Web.Base.Consoles
|
|||||||
base(sessionContext)
|
base(sessionContext)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
protected override void Dispose(bool disposing)
|
|
||||||
{
|
|
||||||
if (disposing)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
base.Dispose(disposing);
|
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Query Activity Index Entries for User Context.
|
// Query Activity Index Entries for User Context.
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Saxonite.Net.Standard.Base.Consoles;
|
using Saxonite.Net.Standard.Base.Consoles;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.IdentityModel.Tokens;
|
using Microsoft.IdentityModel.Tokens;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Utils;
|
using Sarand.Net.Standard.Base.Utils;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Saxonite.Net.Standard.Base.Consoles;
|
using Saxonite.Net.Standard.Base.Consoles;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
using Sarand.Net.Standard.Base.Tasks;
|
using Sarand.Net.Standard.Base.Tasks;
|
||||||
+1
-9
@@ -1,4 +1,4 @@
|
|||||||
using Saxonite.Net.Standard.Base.App;
|
using Saxonite.Net.Standard.Base.App;
|
||||||
using Saxonite.Net.Standard.Base.Consoles;
|
using Saxonite.Net.Standard.Base.Consoles;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -21,14 +21,6 @@ namespace Saxonite.Net.Core.Web.Base.Consoles
|
|||||||
base(sessionContext)
|
base(sessionContext)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
protected override void Dispose(bool disposing)
|
|
||||||
{
|
|
||||||
if (disposing)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
base.Dispose(disposing);
|
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sacs.Web.Components;
|
using Sacs.Web.Components;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
+3
-6
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc.Filters;
|
using Microsoft.AspNetCore.Mvc.Filters;
|
||||||
using Microsoft.Net.Http.Headers;
|
using Microsoft.Net.Http.Headers;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Serialization;
|
using Newtonsoft.Json.Serialization;
|
||||||
@@ -108,13 +108,10 @@ namespace Saxonite.Net.Core.Web.Base.Controllers
|
|||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Online encryption parameters.
|
// Online encryption parameters.
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Online Request Password encryption parameters (key & IV) are defined in
|
// Online Request Password encryption parameters are defined in
|
||||||
// the base Controller so that they can be shared with the Admin application.
|
// the base Controller so that they can be shared with the Admin application.
|
||||||
// NB IV value is generated from the key and fixed so that it doesn't change when the application restarts.
|
|
||||||
// IV Must be regenerated if key is changed.
|
|
||||||
protected static String Base64Key_RequestPassword_Online { get; } = SacsEncryptionHelper.EncodePlainKey("{~Saxonite@@Request^Password=}", SacsEncryptionHelper.KeyLength);
|
protected static String Base64Key_RequestPassword_Online { get; } = SacsEncryptionHelper.EncodePlainKey("{~Saxonite@@Request^Password=}", SacsEncryptionHelper.KeyLength);
|
||||||
//private static String Base64IV_RequestPassword_Generated_Online { get; } = SacsEncryptionHelper.InitSymmetricEncryptionIV(Base64Key_RequestPassword_Online);
|
protected const String Purpose_RequestPassword_Online = "Saxonite.Online.RequestPassword";
|
||||||
protected static String Base64IV_RequestPassword_Online { get; } = "1VAWYTW6d72n/6HDNhbqow==";
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Session.
|
// Session.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
using Saxonite.Net.Standard.Base.App;
|
using Saxonite.Net.Standard.Base.App;
|
||||||
using Saxonite.Net.Core.Web.Base.App;
|
using Saxonite.Net.Core.Web.Base.App;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
using Sarand.Net.Standard.Base.Email;
|
using Sarand.Net.Standard.Base.Email;
|
||||||
using Saxonite.Net.Standard.Base.App;
|
using Saxonite.Net.Standard.Base.App;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Sarand.Net.Standard.Base.Helpers;
|
using Sarand.Net.Standard.Base.Helpers;
|
||||||
using Sarand.Net.Standard.Base.Utils;
|
using Sarand.Net.Standard.Base.Utils;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Authentication;
|
using Microsoft.AspNetCore.Authentication;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;
|
using Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
||||||
using Microsoft.AspNetCore.Mvc.ModelBinding.Binders;
|
using Microsoft.AspNetCore.Mvc.ModelBinding.Binders;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Antiforgery;
|
using Microsoft.AspNetCore.Antiforgery;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
+8
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Html;
|
using Microsoft.AspNetCore.Html;
|
||||||
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
|
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
|
||||||
using Microsoft.AspNetCore.Mvc.Rendering;
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||||
using Sacs.Web.Components;
|
using Sacs.Web.Components;
|
||||||
@@ -44,6 +44,13 @@ namespace Saxonite.Net.Core.Web.Base.Models
|
|||||||
protected SaxSystem_Web System { get { return App.System_Web; } }
|
protected SaxSystem_Web System { get { return App.System_Web; } }
|
||||||
public String SessionCookieName { get { return App.SessionCookieName; } }
|
public String SessionCookieName { get { return App.SessionCookieName; } }
|
||||||
public SaxLocaliser Localiser { get; }
|
public SaxLocaliser Localiser { get; }
|
||||||
|
public override String GetText(String textKey, String defaultText)
|
||||||
|
{
|
||||||
|
String text = Localiser[textKey];
|
||||||
|
if (StringUtil.IsBlank(text) || text.EqualsCI(textKey))
|
||||||
|
return defaultText;
|
||||||
|
return text;
|
||||||
|
}
|
||||||
// Session properties.
|
// Session properties.
|
||||||
public SaxSessionData SessionData { get; set; }
|
public SaxSessionData SessionData { get; set; }
|
||||||
public SaxSessionContext SessionContext { get { return SessionData?.SessionContext ?? App.SessionContext; } }
|
public SaxSessionContext SessionContext { get { return SessionData?.SessionContext ?? App.SessionContext; } }
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
using DocumentFormat.OpenXml.Drawing.Diagrams;
|
using DocumentFormat.OpenXml.Drawing.Diagrams;
|
||||||
using DocumentFormat.OpenXml.Office2016.Excel;
|
using DocumentFormat.OpenXml.Office2016.Excel;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
@@ -37,7 +37,7 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
|||||||
{
|
{
|
||||||
SaLogger.Debug($"{SysUtil.Fn}");
|
SaLogger.Debug($"{SysUtil.Fn}");
|
||||||
|
|
||||||
using (DisposableCollection<SacsDisposable> disposableItems = new DisposableCollection<SacsDisposable>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
SaxInternals internals = new SaxInternals(sessionContext);
|
SaxInternals internals = new SaxInternals(sessionContext);
|
||||||
disposableItems.Add(internals);
|
disposableItems.Add(internals);
|
||||||
+8
-8
@@ -1,4 +1,4 @@
|
|||||||
using DocumentFormat.OpenXml.InkML;
|
using DocumentFormat.OpenXml.InkML;
|
||||||
using HtmlAgilityPack;
|
using HtmlAgilityPack;
|
||||||
using MailKit;
|
using MailKit;
|
||||||
using Microsoft.Net.Http.Headers;
|
using Microsoft.Net.Http.Headers;
|
||||||
@@ -357,7 +357,7 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
|||||||
|
|
||||||
UsgaRequestData usgaRequestData = GetUsgaRequestData();
|
UsgaRequestData usgaRequestData = GetUsgaRequestData();
|
||||||
|
|
||||||
using (DisposableCollection<SacsDisposable> disposableItems = new DisposableCollection<SacsDisposable>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
// Retrieve and validate country.
|
// Retrieve and validate country.
|
||||||
SaxGolfUsgaCountry.Params prmCountry = new SaxGolfUsgaCountry.Params();
|
SaxGolfUsgaCountry.Params prmCountry = new SaxGolfUsgaCountry.Params();
|
||||||
@@ -470,7 +470,7 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
|||||||
|
|
||||||
UsgaRequestData usgaRequestData = GetUsgaRequestData();
|
UsgaRequestData usgaRequestData = GetUsgaRequestData();
|
||||||
|
|
||||||
using (DisposableCollection<SacsDisposable> disposableItems = new DisposableCollection<SacsDisposable>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
// Retrieve and validate country.
|
// Retrieve and validate country.
|
||||||
SaxGolfUsgaCountry.Params prmCountry = new SaxGolfUsgaCountry.Params();
|
SaxGolfUsgaCountry.Params prmCountry = new SaxGolfUsgaCountry.Params();
|
||||||
@@ -756,7 +756,7 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
|||||||
int courseCaptionsCorrected = 0;
|
int courseCaptionsCorrected = 0;
|
||||||
|
|
||||||
// Verify Course captions.
|
// Verify Course captions.
|
||||||
using (DisposableCollection<SacsDisposable> disposables = new DisposableCollection<SacsDisposable>())
|
using (DisposableCollection<IDisposable> disposables = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
// Local function to allow break/return from within nested loop.
|
// Local function to allow break/return from within nested loop.
|
||||||
void CompareCourse()
|
void CompareCourse()
|
||||||
@@ -777,7 +777,7 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
|||||||
disposables.Add(province);
|
disposables.Add(province);
|
||||||
|
|
||||||
// Separate disposables for each province to restrict volume handled on each disposal.
|
// Separate disposables for each province to restrict volume handled on each disposal.
|
||||||
using (DisposableCollection<SacsDisposable> disposablesProvince = new DisposableCollection<SacsDisposable>())
|
using (DisposableCollection<IDisposable> disposablesProvince = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Facilities.
|
// Facilities.
|
||||||
@@ -874,7 +874,7 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
|||||||
if (!SysId.IsValid(usgaCourseId)) return markersData.Markers;
|
if (!SysId.IsValid(usgaCourseId)) return markersData.Markers;
|
||||||
MarkerColumnData markerColumns = new MarkerColumnData();
|
MarkerColumnData markerColumns = new MarkerColumnData();
|
||||||
|
|
||||||
using (DisposableCollection<SacsDisposable> disposableItems = new DisposableCollection<SacsDisposable>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
// Retrieve and validate course.
|
// Retrieve and validate course.
|
||||||
SaxGolfUsgaCourse.Params prmCourse = new SaxGolfUsgaCourse.Params();
|
SaxGolfUsgaCourse.Params prmCourse = new SaxGolfUsgaCourse.Params();
|
||||||
@@ -1157,7 +1157,7 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
|||||||
//int maxMarkers = 0;
|
//int maxMarkers = 0;
|
||||||
int markersCorrected = 0;
|
int markersCorrected = 0;
|
||||||
|
|
||||||
using (DisposableCollection<SacsDisposable> disposables = new DisposableCollection<SacsDisposable>())
|
using (DisposableCollection<IDisposable> disposables = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
// Local function to allow break/return from within nested loop.
|
// Local function to allow break/return from within nested loop.
|
||||||
void CleanseMarkers()
|
void CleanseMarkers()
|
||||||
@@ -1178,7 +1178,7 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
|||||||
disposables.Add(province);
|
disposables.Add(province);
|
||||||
|
|
||||||
// Separate disposables for each province to restrict volume handled on each disposal.
|
// Separate disposables for each province to restrict volume handled on each disposal.
|
||||||
using (DisposableCollection<SacsDisposable> disposablesProvince = new DisposableCollection<SacsDisposable>())
|
using (DisposableCollection<IDisposable> disposablesProvince = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Facilities.
|
// Facilities.
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
using DocumentFormat.OpenXml.InkML;
|
using DocumentFormat.OpenXml.InkML;
|
||||||
using HtmlAgilityPack;
|
using HtmlAgilityPack;
|
||||||
using MailKit;
|
using MailKit;
|
||||||
using Microsoft.Net.Http.Headers;
|
using Microsoft.Net.Http.Headers;
|
||||||
@@ -96,7 +96,7 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
|||||||
{
|
{
|
||||||
if (!OK) return false;
|
if (!OK) return false;
|
||||||
|
|
||||||
using (DisposableCollection<SacsDisposable> disposableItems = new DisposableCollection<SacsDisposable>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
foreach (SysId organisationId in config.OrganisationIdsIncluded)
|
foreach (SysId organisationId in config.OrganisationIdsIncluded)
|
||||||
{
|
{
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Sarand.Net.Standard.Base.Dbas;
|
using Sarand.Net.Standard.Base.Dbas;
|
||||||
using Sarand.Net.Standard.Proc.Excel;
|
using Sarand.Net.Standard.Proc.Excel;
|
||||||
using Saxonite.Net.Standard.Base.App;
|
using Saxonite.Net.Standard.Base.App;
|
||||||
using Saxonite.Net.Standard.Base.Procs;
|
using Saxonite.Net.Standard.Base.Procs;
|
||||||
+6
-6
@@ -1,14 +1,14 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
<RootNamespace>Saxonite.Net.Core.Web</RootNamespace>
|
<RootNamespace>Saxonite.Net.Core.Web</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\..\Common-VS\Workspace\SacsCoreWeb\SacsCoreWeb.csproj" />
|
<ProjectReference Include="..\..\..\..\Common-VS\Workspace\SacsCoreWeb\SacsCoreWeb.csproj" />
|
||||||
<ProjectReference Include="..\..\..\Common-VS\Workspace\SacsStandardBase\SacsStandardBase.csproj" />
|
<ProjectReference Include="..\..\..\..\Common-VS\Workspace\SacsStandardBase\SacsStandardBase.csproj" />
|
||||||
<ProjectReference Include="..\..\..\Common-VS\Workspace\SacsStandardDbas\SacsStandardDbas.csproj" />
|
<ProjectReference Include="..\..\..\..\Common-VS\Workspace\SacsStandardDbas\SacsStandardDbas.csproj" />
|
||||||
<ProjectReference Include="..\SaxoniteStandardBase\SaxoniteStandardBase.csproj" />
|
<ProjectReference Include="..\SaxoniteStandardBase\SaxoniteStandardBase.csproj" />
|
||||||
<ProjectReference Include="..\SaxoniteStandardDbas\SaxoniteStandardDbas.csproj" />
|
<ProjectReference Include="..\SaxoniteStandardDbas\SaxoniteStandardDbas.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@@ -23,8 +23,8 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="HtmlAgilityPack" Version="1.11.71" />
|
<PackageReference Include="HtmlAgilityPack" Version="1.13.1" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.31" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="10.0.13" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
using Saxonite.Net.Core.Web.Base.App;
|
using Saxonite.Net.Core.Web.Base.App;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
+1
-4
@@ -1,4 +1,4 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Helpers;
|
using Sarand.Net.Standard.Base.Helpers;
|
||||||
using Saxonite.Net.Core.Web.Admin.Controllers;
|
using Saxonite.Net.Core.Web.Admin.Controllers;
|
||||||
@@ -85,9 +85,6 @@ namespace Saxonite.Net.Core.Web.Admin.App
|
|||||||
public SystemData System { get; private set; } = new SystemData();
|
public SystemData System { get; private set; } = new SystemData();
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Online application encryption IV value - for consistent encryption during session.
|
|
||||||
public String Base64IV_AdminApp { get; private set; } = SacsEncryptionHelper.InitSymmetricEncryptionIV(SaxController_Admin.Base64Key_AdminApp);
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Utils;
|
using Sarand.Net.Standard.Base.Utils;
|
||||||
using Saxonite.Net.Core.Web.Base.Consoles;
|
using Saxonite.Net.Core.Web.Base.Consoles;
|
||||||
using Saxonite.Net.Standard.Base.App;
|
using Saxonite.Net.Standard.Base.App;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Sarand.Net.Standard.Base.Utils;
|
using Sarand.Net.Standard.Base.Utils;
|
||||||
using Saxonite.Net.Core.Web.Admin.App;
|
using Saxonite.Net.Core.Web.Admin.App;
|
||||||
using Saxonite.Net.Core.Web.Base.Consoles;
|
using Saxonite.Net.Core.Web.Base.Consoles;
|
||||||
using Saxonite.Net.Standard.Base.App;
|
using Saxonite.Net.Standard.Base.App;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
using Sarand.Net.Standard.Base.Dbas;
|
using Sarand.Net.Standard.Base.Dbas;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using MimeKit;
|
using MimeKit;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
using Sarand.Net.Standard.Base.Procs;
|
using Sarand.Net.Standard.Base.Procs;
|
||||||
using Saxonite.Net.Core.Web.Admin.Procs;
|
using Saxonite.Net.Core.Web.Admin.Procs;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.AspNetCore.Routing;
|
using Microsoft.AspNetCore.Routing;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.Net.Http.Headers;
|
using Microsoft.Net.Http.Headers;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
+12
-12
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
@@ -45,18 +45,18 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
if (StringUtil.IsEmpty(AppConfig.URL.Online.Root))
|
if (StringUtil.IsEmpty(AppConfig.URL.Online.Root))
|
||||||
return Json(responseData.SetMessage(messageTitle, "Root online URL not specified."));
|
return Json(responseData.SetPopupMessage(messageTitle, "Root online URL not specified."));
|
||||||
|
|
||||||
// Identify item.
|
// Identify item.
|
||||||
SysId organisationId = SysId.ToSysId(model.OrganisationId);
|
SysId organisationId = SysId.ToSysId(model.OrganisationId);
|
||||||
if (!SysId.IsValid(organisationId))
|
if (!SysId.IsValid(organisationId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Request to get activation info without valid organisation Id.");
|
SaLogger.Warn($"{SysUtil.Fn} Request to get activation info without valid organisation Id.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve item.
|
// Retrieve item.
|
||||||
@@ -65,7 +65,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisation == null)
|
if (organisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve organisation. Id: '{model.OrganisationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve organisation. Id: '{model.OrganisationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Organisation address.
|
// Organisation address.
|
||||||
@@ -114,7 +114,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsDisposable> disposableItems = new DisposableCollection<SacsDisposable>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Retrieve existing item.
|
// Retrieve existing item.
|
||||||
@@ -124,7 +124,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisation == null)
|
if (organisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve organisation. Id: '{model.OrganisationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve organisation. Id: '{model.OrganisationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Organisation address.
|
// Organisation address.
|
||||||
@@ -143,17 +143,17 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisationMember.UserOrganisation == null)
|
if (organisationMember.UserOrganisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve user organisation. Id: '{userOrganisationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve user organisation. Id: '{userOrganisationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
}
|
}
|
||||||
if (organisationMember.UserAccount == null)
|
if (organisationMember.UserAccount == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve user account . Id: '{organisationMember.UserOrganisation.UserAccountId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve user account . Id: '{organisationMember.UserOrganisation.UserAccountId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
}
|
}
|
||||||
if (organisationMember.UserAccount.Status != SaStatus.Awaiting)
|
if (organisationMember.UserAccount.Status != SaStatus.Awaiting)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} User organisation is not awaiting. Id: '{userOrganisationId}'. Status: {organisationMember.UserAccount.StatusDesc}");
|
SaLogger.Warn($"{SysUtil.Fn} User organisation is not awaiting. Id: '{userOrganisationId}'. Status: {organisationMember.UserAccount.StatusDesc}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
}
|
}
|
||||||
// Check if this user is to be activated.
|
// Check if this user is to be activated.
|
||||||
bool activateUser = false;
|
bool activateUser = false;
|
||||||
@@ -177,7 +177,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (AccountMgr.GetOrganisationMemberCount(organisation.Id) < 1)
|
if (AccountMgr.GetOrganisationMemberCount(organisation.Id) < 1)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Unable to activate Organisation - no active members. Id: '{SysId.ToString(organisationId)}");
|
SaLogger.Warn($"{SysUtil.Fn} Unable to activate Organisation - no active members. Id: '{SysId.ToString(organisationId)}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["organisation.activate.msg.no.active.members"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["organisation.activate.msg.no.active.members"]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,7 +186,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!AccountMgr.UpdateOrganisation(organisation, DbUpdateInfo))
|
if (!AccountMgr.UpdateOrganisation(organisation, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to update organisation [Id:{SysId.ToString(organisation.Id)}]: {AccountMgr.ErrorStateMessage}");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to update organisation [Id:{SysId.ToString(organisation.Id)}]: {AccountMgr.ErrorStateMessage}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Activate awaiting members and send welcome email to each.
|
// Activate awaiting members and send welcome email to each.
|
||||||
+33
-33
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
@@ -164,7 +164,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!SysId.IsValid(organisationId))
|
if (!SysId.IsValid(organisationId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Request to retrieve associations without valid organisation Id.");
|
SaLogger.Warn($"{SysUtil.Fn} Request to retrieve associations without valid organisation Id.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reference data - association types.
|
// Reference data - association types.
|
||||||
@@ -192,7 +192,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
private void GetOrganisationAssociations(SaxModel_Admin model, SysId organisationId, List<AssociationListData> associations)
|
private void GetOrganisationAssociations(SaxModel_Admin model, SysId organisationId, List<AssociationListData> associations)
|
||||||
{
|
{
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Item filter.
|
// Item filter.
|
||||||
@@ -312,13 +312,13 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Identify item.
|
// Identify item.
|
||||||
SysId itemAssociationId = SysId.ToSysId(model.ItemAssociationId);
|
SysId itemAssociationId = SysId.ToSysId(model.ItemAssociationId);
|
||||||
if (!SysId.IsValid(itemAssociationId))
|
if (!SysId.IsValid(itemAssociationId))
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
||||||
|
|
||||||
// Retrieve association.
|
// Retrieve association.
|
||||||
SaxItemAssociation itemAssociation = ItemDataMgr.GetItemAssociationById(itemAssociationId);
|
SaxItemAssociation itemAssociation = ItemDataMgr.GetItemAssociationById(itemAssociationId);
|
||||||
@@ -326,7 +326,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (itemAssociation == null)
|
if (itemAssociation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve Item Association for Id: '{model.ItemAssociationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve Item Association for Id: '{model.ItemAssociationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Identify organisations.
|
// Identify organisations.
|
||||||
@@ -335,19 +335,19 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!SysId.IsValid(organisationId))
|
if (!SysId.IsValid(organisationId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Organisation Id must be supplied.");
|
SaLogger.Warn($"{SysUtil.Fn} Organisation Id must be supplied.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate the association.
|
// Validate the association.
|
||||||
if (itemAssociation.ItemIdFrom.Type != (int)Sax.DataItemType.Organisation)
|
if (itemAssociation.ItemIdFrom.Type != (int)Sax.DataItemType.Organisation)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Inconsistent association 'From' item type: {AssociationTypeCodes.GetCodeForType(itemAssociation.ItemIdFrom.Type)}. Expected: Organisation.");
|
SaLogger.Warn($"{SysUtil.Fn} Inconsistent association 'From' item type: {AssociationTypeCodes.GetCodeForType(itemAssociation.ItemIdFrom.Type)}. Expected: Organisation.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
||||||
}
|
}
|
||||||
if (itemAssociation.ItemIdTo.Type != (int)Sax.DataItemType.Organisation)
|
if (itemAssociation.ItemIdTo.Type != (int)Sax.DataItemType.Organisation)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Inconsistent association 'To' item type: {AssociationTypeCodes.GetCodeForType(itemAssociation.ItemIdTo.Type)}. Expected: Organisation.");
|
SaLogger.Warn($"{SysUtil.Fn} Inconsistent association 'To' item type: {AssociationTypeCodes.GetCodeForType(itemAssociation.ItemIdTo.Type)}. Expected: Organisation.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Identify organisations from association items.
|
// Identify organisations from association items.
|
||||||
@@ -359,7 +359,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Inconsistent association - Specified organisation is neither item.");
|
SaLogger.Warn($"{SysUtil.Fn} Inconsistent association - Specified organisation is neither item.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve Organisation.
|
// Retrieve Organisation.
|
||||||
@@ -368,7 +368,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisation == null)
|
if (organisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve Organisation for Id: '{organisationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve Organisation for Id: '{organisationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve associated Organisation.
|
// Retrieve associated Organisation.
|
||||||
@@ -377,7 +377,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisationAssoc == null)
|
if (organisationAssoc == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve associated Organisation for Id: '{organisationIdAssoc}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve associated Organisation for Id: '{organisationIdAssoc}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Construct response.
|
// Construct response.
|
||||||
@@ -408,7 +408,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return Json(responseData);
|
return Json(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Organisation.
|
// Organisation.
|
||||||
@@ -418,7 +418,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisation == null)
|
if (organisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve Organisation for Id: {model.OrganisationId}");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve Organisation for Id: {model.OrganisationId}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Associated Organisation.
|
// Associated Organisation.
|
||||||
@@ -428,12 +428,12 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisationAssoc == null)
|
if (organisationAssoc == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve associated Organisation for Id: {model.OrganisationIdAssoc}");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve associated Organisation for Id: {model.OrganisationIdAssoc}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
||||||
}
|
}
|
||||||
if (organisationIdAssoc.Equals(organisationId))
|
if (organisationIdAssoc.Equals(organisationId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Associated organisation must not be the same as the organisation.");
|
SaLogger.Warn($"{SysUtil.Fn} Associated organisation must not be the same as the organisation.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Association type.
|
// Association type.
|
||||||
@@ -441,18 +441,18 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if ((int)associationType < 1)
|
if ((int)associationType < 1)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Association Type must be specified.");
|
SaLogger.Warn($"{SysUtil.Fn} Association Type must be specified.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
||||||
}
|
}
|
||||||
Sax.AssociationTypeOption associationTypeOption = model.Association.GetAssociationTypeOption();
|
Sax.AssociationTypeOption associationTypeOption = model.Association.GetAssociationTypeOption();
|
||||||
if ((int)associationTypeOption < 1)
|
if ((int)associationTypeOption < 1)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Association Type Option must be specified.");
|
SaLogger.Warn($"{SysUtil.Fn} Association Type Option must be specified.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
||||||
}
|
}
|
||||||
if (!model.IsConsistentWith(associationTypeOption, associationType))
|
if (!model.IsConsistentWith(associationTypeOption, associationType))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Association Type Option ({associationTypeOption}) is inconsistent with Association Type ({associationType}).");
|
SaLogger.Warn($"{SysUtil.Fn} Association Type Option ({associationTypeOption}) is inconsistent with Association Type ({associationType}).");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Identify From/To items.
|
// Identify From/To items.
|
||||||
@@ -470,7 +470,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
{
|
{
|
||||||
// Inconsistentcy between the 'Existing' flag and whether the Item Association Id has been specified.
|
// Inconsistentcy between the 'Existing' flag and whether the Item Association Id has been specified.
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Item Association Id " + (StringUtil.ToBool(model.NewItem) ? "specified for new item" : "not specified for existing item") + ".");
|
SaLogger.Warn($"{SysUtil.Fn} Item Association Id " + (StringUtil.ToBool(model.NewItem) ? "specified for new item" : "not specified for existing item") + ".");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
||||||
}
|
}
|
||||||
SaxItemAssociation itemAssociation = ItemDataMgr.GetItemAssociationById(itemAssociationId);
|
SaxItemAssociation itemAssociation = ItemDataMgr.GetItemAssociationById(itemAssociationId);
|
||||||
if (itemAssociation == null && StringUtil.ToBool(model.NewItem))
|
if (itemAssociation == null && StringUtil.ToBool(model.NewItem))
|
||||||
@@ -495,7 +495,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (itemAssociation == null && SysId.IsValid(itemAssociationId))
|
if (itemAssociation == null && SysId.IsValid(itemAssociationId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve item association for Id: '{itemAssociationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve item association for Id: '{itemAssociationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (itemAssociation != null)
|
if (itemAssociation != null)
|
||||||
@@ -514,12 +514,12 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!itemAssociation.ItemIdFrom.Equals(itemIdFrom))
|
if (!itemAssociation.ItemIdFrom.Equals(itemIdFrom))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Inconsistent association - expected 'From' Item Id: {SysId.ToString(itemIdFrom.Id)}. Found: {SysId.ToString(itemAssociation.ItemIdFrom.Id)}");
|
SaLogger.Warn($"{SysUtil.Fn} Inconsistent association - expected 'From' Item Id: {SysId.ToString(itemIdFrom.Id)}. Found: {SysId.ToString(itemAssociation.ItemIdFrom.Id)}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
}
|
}
|
||||||
if (!itemAssociation.ItemIdTo.Equals(itemIdTo))
|
if (!itemAssociation.ItemIdTo.Equals(itemIdTo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Inconsistent association - expected 'To' Item Id: {SysId.ToString(itemIdTo.Id)}. Found: {SysId.ToString(itemAssociation.ItemIdTo.Id)}");
|
SaLogger.Warn($"{SysUtil.Fn} Inconsistent association - expected 'To' Item Id: {SysId.ToString(itemIdTo.Id)}. Found: {SysId.ToString(itemAssociation.ItemIdTo.Id)}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -549,7 +549,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!ItemDataMgr.InsertItemAssociation(itemAssociation, DbUpdateInfo))
|
if (!ItemDataMgr.InsertItemAssociation(itemAssociation, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to insert item association: {ItemDataMgr.ErrorStateMessage}");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to insert item association: {ItemDataMgr.ErrorStateMessage}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + ItemDataMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + ItemDataMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -557,7 +557,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!ItemDataMgr.UpdateItemAssociation(itemAssociation, DbUpdateInfo))
|
if (!ItemDataMgr.UpdateItemAssociation(itemAssociation, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to update item association [Id:{SysId.ToString(itemAssociation.Id)}]: {ItemDataMgr.ErrorStateMessage}");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to update item association [Id:{SysId.ToString(itemAssociation.Id)}]: {ItemDataMgr.ErrorStateMessage}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + ItemDataMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + ItemDataMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -584,7 +584,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Organisation.
|
// Organisation.
|
||||||
@@ -594,7 +594,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisation == null)
|
if (organisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve Organisation for Id: '{model.OrganisationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve Organisation for Id: '{model.OrganisationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Association Organisation.
|
// Association Organisation.
|
||||||
@@ -604,12 +604,12 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisationAssoc == null)
|
if (organisationAssoc == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve associated Organisation for Id: '{model.OrganisationIdAssoc}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve associated Organisation for Id: '{model.OrganisationIdAssoc}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
||||||
}
|
}
|
||||||
if (organisationIdAssoc.Equals(organisationId))
|
if (organisationIdAssoc.Equals(organisationId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Associated organisation must not be the same as the organisation.");
|
SaLogger.Warn($"{SysUtil.Fn} Associated organisation must not be the same as the organisation.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Item Association.
|
// Item Association.
|
||||||
@@ -619,19 +619,19 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (itemAssociation == null)
|
if (itemAssociation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve Item Association for Id: '{itemAssociationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve Item Association for Id: '{itemAssociationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate association Item Ids.
|
// Validate association Item Ids.
|
||||||
if (!itemAssociation.ItemIdFrom.Id.Equals(organisation.Id) && !itemAssociation.ItemIdTo.Id.Equals(organisation.Id))
|
if (!itemAssociation.ItemIdFrom.Id.Equals(organisation.Id) && !itemAssociation.ItemIdTo.Id.Equals(organisation.Id))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Inconsistent item association properties. Organisation must be 'From' or 'To' item");
|
SaLogger.Warn($"{SysUtil.Fn} Inconsistent item association properties. Organisation must be 'From' or 'To' item");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
||||||
}
|
}
|
||||||
if (!itemAssociation.ItemIdFrom.Id.Equals(organisationAssoc.Id) && !itemAssociation.ItemIdTo.Id.Equals(organisationAssoc.Id))
|
if (!itemAssociation.ItemIdFrom.Id.Equals(organisationAssoc.Id) && !itemAssociation.ItemIdTo.Id.Equals(organisationAssoc.Id))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Inconsistent item association properties. Associated Organisation must be 'From' or 'To' item");
|
SaLogger.Warn($"{SysUtil.Fn} Inconsistent item association properties. Associated Organisation must be 'From' or 'To' item");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Logically delete item.
|
// Logically delete item.
|
||||||
@@ -639,7 +639,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!ItemDataMgr.UpdateItemAssociation(itemAssociation, DbUpdateInfo))
|
if (!ItemDataMgr.UpdateItemAssociation(itemAssociation, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to update Item Association [Id:{SysId.ToString(itemAssociation.Id)}]: {ItemDataMgr.ErrorStateMessage}");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to update Item Association [Id:{SysId.ToString(itemAssociation.Id)}]: {ItemDataMgr.ErrorStateMessage}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + ItemDataMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + ItemDataMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Construct response.
|
// Construct response.
|
||||||
+10
-10
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
@@ -58,7 +58,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Reference data - Image content types.
|
// Reference data - Image content types.
|
||||||
@@ -67,7 +67,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
// Identify item.
|
// Identify item.
|
||||||
SysId organisationId = SysId.ToSysId(model.OrganisationId);
|
SysId organisationId = SysId.ToSysId(model.OrganisationId);
|
||||||
if (!SysId.IsValid(organisationId))
|
if (!SysId.IsValid(organisationId))
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
||||||
|
|
||||||
// Retrieve item.
|
// Retrieve item.
|
||||||
SaxOrganisation organisation = AccountMgr.GetOrganisationById(organisationId);
|
SaxOrganisation organisation = AccountMgr.GetOrganisationById(organisationId);
|
||||||
@@ -75,7 +75,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisation == null)
|
if (organisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve organisation for Id: '{model.OrganisationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve organisation for Id: '{model.OrganisationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Organisation address.
|
// Organisation address.
|
||||||
@@ -119,18 +119,18 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
RefreshModel(model);
|
RefreshModel(model);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
// Retrieve organisation.
|
// Retrieve organisation.
|
||||||
SysId organisationId = SysId.ToSysId(model.OrganisationId);
|
SysId organisationId = SysId.ToSysId(model.OrganisationId);
|
||||||
if (!SysId.IsValid(organisationId))
|
if (!SysId.IsValid(organisationId))
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
||||||
SaxOrganisation organisation = AccountMgr.GetOrganisationById(organisationId);
|
SaxOrganisation organisation = AccountMgr.GetOrganisationById(organisationId);
|
||||||
disposableItems.Add(organisation);
|
disposableItems.Add(organisation);
|
||||||
if (organisation == null)
|
if (organisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve organisation for Id: '{model.OrganisationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve organisation for Id: '{model.OrganisationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate number of images.
|
// Validate number of images.
|
||||||
@@ -218,7 +218,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Complete response.
|
// Complete response.
|
||||||
responseData.SetNotification(messageTitle, "Image uploaded.");
|
responseData.SetNotifyMessage(messageTitle, "Image uploaded.");
|
||||||
responseData.Success = true;
|
responseData.Success = true;
|
||||||
return Json(responseData);
|
return Json(responseData);
|
||||||
}
|
}
|
||||||
@@ -238,7 +238,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Validate item properties.
|
// Validate item properties.
|
||||||
@@ -253,7 +253,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisation == null)
|
if (organisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve organisation for Id: '{model.OrganisationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve organisation for Id: '{model.OrganisationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Organisation address.
|
// Organisation address.
|
||||||
+21
-21
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
@@ -103,7 +103,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!SysId.IsValid(organisationId))
|
if (!SysId.IsValid(organisationId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Request to retrieve members without valid organisation Id.");
|
SaLogger.Warn($"{SysUtil.Fn} Request to retrieve members without valid organisation Id.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reference data - organisation roles.
|
// Reference data - organisation roles.
|
||||||
@@ -210,13 +210,13 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Identify item.
|
// Identify item.
|
||||||
SysId userOrganisationId = SysId.ToSysId(model.UserOrganisationId);
|
SysId userOrganisationId = SysId.ToSysId(model.UserOrganisationId);
|
||||||
if (!SysId.IsValid(userOrganisationId))
|
if (!SysId.IsValid(userOrganisationId))
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
||||||
|
|
||||||
// Retrieve item.
|
// Retrieve item.
|
||||||
SaxUserOrganisation userOrganisation = AccountMgr.GetUserOrganisationById(userOrganisationId);
|
SaxUserOrganisation userOrganisation = AccountMgr.GetUserOrganisationById(userOrganisationId);
|
||||||
@@ -224,7 +224,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (userOrganisation == null)
|
if (userOrganisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve User Organisation for Id: '{model.UserOrganisationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve User Organisation for Id: '{model.UserOrganisationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve User Account.
|
// Retrieve User Account.
|
||||||
@@ -233,7 +233,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (userAccount == null)
|
if (userAccount == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve user account for Id: '{userOrganisation.UserAccountId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve user account for Id: '{userOrganisation.UserAccountId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve Organisation.
|
// Retrieve Organisation.
|
||||||
@@ -242,7 +242,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisation == null)
|
if (organisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve organisation for Id: '{userOrganisation.OrganisationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve organisation for Id: '{userOrganisation.OrganisationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Construct response.
|
// Construct response.
|
||||||
@@ -273,7 +273,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return Json(responseData);
|
return Json(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// User account.
|
// User account.
|
||||||
@@ -288,7 +288,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!SysId.IsValid(userAccountId))
|
if (!SysId.IsValid(userAccountId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} User Account must be identified");
|
SaLogger.Warn($"{SysUtil.Fn} User Account must be identified");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Organisation.
|
// Organisation.
|
||||||
@@ -297,7 +297,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!SysId.IsValid(organisationId))
|
if (!SysId.IsValid(organisationId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Organisation Id must be specified");
|
SaLogger.Warn($"{SysUtil.Fn} Organisation Id must be specified");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve existing item.
|
// Retrieve existing item.
|
||||||
@@ -307,13 +307,13 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (userOrganisation == null && SysId.IsValid(userOrganisationId))
|
if (userOrganisation == null && SysId.IsValid(userOrganisationId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve user organisation for Id: '{userOrganisationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve user organisation for Id: '{userOrganisationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
if (userOrganisation != null && (!userOrganisation.UserAccountId.Equals(userAccountId) || !userOrganisation.OrganisationId.Equals(organisationId)))
|
if (userOrganisation != null && (!userOrganisation.UserAccountId.Equals(userAccountId) || !userOrganisation.OrganisationId.Equals(organisationId)))
|
||||||
{
|
{
|
||||||
// Either User Account and/or Organisation Ids don't match.
|
// Either User Account and/or Organisation Ids don't match.
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Inconsistent user organisation properties. UserAccountId: {userOrganisation.UserAccountId} vs {userAccountId}. OrganisationId: {userOrganisation.OrganisationId} vs {organisationId}.");
|
SaLogger.Warn($"{SysUtil.Fn} Inconsistent user organisation properties. UserAccountId: {userOrganisation.UserAccountId} vs {userAccountId}. OrganisationId: {userOrganisation.OrganisationId} vs {organisationId}.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// User Organisation not identified.
|
// User Organisation not identified.
|
||||||
@@ -359,7 +359,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!AccountMgr.InsertUserOrganisation(userOrganisation, DbUpdateInfo))
|
if (!AccountMgr.InsertUserOrganisation(userOrganisation, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to insert user organisation: {AccountMgr.ErrorStateMessage}");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to insert user organisation: {AccountMgr.ErrorStateMessage}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -367,7 +367,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!AccountMgr.UpdateUserOrganisation(userOrganisation, DbUpdateInfo))
|
if (!AccountMgr.UpdateUserOrganisation(userOrganisation, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to update user organisation [Id:{SysId.ToString(userOrganisation.Id)}]: {AccountMgr.ErrorStateMessage}");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to update user organisation [Id:{SysId.ToString(userOrganisation.Id)}]: {AccountMgr.ErrorStateMessage}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -394,7 +394,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Organisation.
|
// Organisation.
|
||||||
@@ -403,7 +403,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisation == null)
|
if (organisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve Organisation for Id: '{model.OrganisationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve Organisation for Id: '{model.OrganisationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.incomplete"]));
|
||||||
}
|
}
|
||||||
disposableItems.Add(organisation);
|
disposableItems.Add(organisation);
|
||||||
|
|
||||||
@@ -414,12 +414,12 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (userOrganisation == null)
|
if (userOrganisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve user organisation for Id: '{userOrganisationId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve user organisation for Id: '{userOrganisationId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
if (!userOrganisation.OrganisationId.Equals(organisation.Id))
|
if (!userOrganisation.OrganisationId.Equals(organisation.Id))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Inconsistent user organisation properties. OrganisationId: {userOrganisation.OrganisationId} vs {organisation.Id}.");
|
SaLogger.Warn($"{SysUtil.Fn} Inconsistent user organisation properties. OrganisationId: {userOrganisation.OrganisationId} vs {organisation.Id}.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.data.inconsistent"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// User Account.
|
// User Account.
|
||||||
@@ -428,7 +428,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (userAccount == null)
|
if (userAccount == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve user account for Id: '{userOrganisation.UserAccountId}'");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to retrieve user account for Id: '{userOrganisation.UserAccountId}'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove all roles and store.
|
// Remove all roles and store.
|
||||||
@@ -440,7 +440,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!AccountMgr.InsertUserOrganisation(userOrganisation, DbUpdateInfo))
|
if (!AccountMgr.InsertUserOrganisation(userOrganisation, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to insert user organisation: {AccountMgr.ErrorStateMessage}");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to insert user organisation: {AccountMgr.ErrorStateMessage}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -448,7 +448,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!AccountMgr.UpdateUserOrganisation(userOrganisation, DbUpdateInfo))
|
if (!AccountMgr.UpdateUserOrganisation(userOrganisation, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} Failed to update user organisation [Id:{SysId.ToString(userOrganisation.Id)}]: {AccountMgr.ErrorStateMessage}");
|
SaLogger.Warn($"{SysUtil.Fn} Failed to update user organisation [Id:{SysId.ToString(userOrganisation.Id)}]: {AccountMgr.ErrorStateMessage}");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+9
-9
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
@@ -47,26 +47,26 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Process console.
|
// Process console.
|
||||||
SaxProcessConsole_Admin processConsole = GetProcessConsole_Admin(SessionContext);
|
SaxProcessConsole_Admin processConsole = GetProcessConsole_Admin(SessionContext);
|
||||||
if (processConsole == null)
|
if (processConsole == null)
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
// Check whether upload is in progress.
|
// Check whether upload is in progress.
|
||||||
if (processConsole.IsProcessing(SaxProcessConsole_Admin.ProcessType.OrganisationUpload))
|
if (processConsole.IsProcessing(SaxProcessConsole_Admin.ProcessType.OrganisationUpload))
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.process.in.progress"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.process.in.progress"]));
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception exc)
|
catch (Exception exc)
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " " + exc.GetType().Name + " initialising organisation uploader.");
|
SaLogger.Warn(fn + " " + exc.GetType().Name + " initialising organisation uploader.");
|
||||||
return Json(responseData.SetMessage(messageTitle, exc.GetType().Name + " initialising organisation uploader."));
|
return Json(responseData.SetPopupMessage(messageTitle, exc.GetType().Name + " initialising organisation uploader."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Validate supplied data properties.
|
// Validate supplied data properties.
|
||||||
@@ -108,14 +108,14 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
// Process console.
|
// Process console.
|
||||||
SaxProcessConsole_Admin processConsole = GetProcessConsole_Admin(SessionContext);
|
SaxProcessConsole_Admin processConsole = GetProcessConsole_Admin(SessionContext);
|
||||||
if (processConsole == null)
|
if (processConsole == null)
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
// Check whether upload is in progress.
|
// Check whether upload is in progress.
|
||||||
if (processConsole.IsProcessing(SaxProcessConsole_Admin.ProcessType.OrganisationUpload))
|
if (processConsole.IsProcessing(SaxProcessConsole_Admin.ProcessType.OrganisationUpload))
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.process.in.progress"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.process.in.progress"]));
|
||||||
|
|
||||||
// Create the upload process.
|
// Create the upload process.
|
||||||
SaxOrganisationUploader.Config processConfig = new SaxOrganisationUploader.Config(SessionContext, DbUpdateInfo, model.OrganisationDataFile[0]);
|
SaxOrganisationUploader.Config processConfig = new SaxOrganisationUploader.Config(SessionContext, DbUpdateInfo, model.OrganisationDataFile[0]);
|
||||||
@@ -132,7 +132,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
catch (Exception exc)
|
catch (Exception exc)
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " " + exc.GetType().Name + " initialising organisation uploader.");
|
SaLogger.Warn(fn + " " + exc.GetType().Name + " initialising organisation uploader.");
|
||||||
return Json(responseData.SetMessage(messageTitle, exc.GetType().Name + " initialising organisation uploader."));
|
return Json(responseData.SetPopupMessage(messageTitle, exc.GetType().Name + " initialising organisation uploader."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+8
-8
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
@@ -281,13 +281,13 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Identify item.
|
// Identify item.
|
||||||
SysId organisationId = SysId.ToSysId(model.OrganisationId);
|
SysId organisationId = SysId.ToSysId(model.OrganisationId);
|
||||||
if (!SysId.IsValid(organisationId))
|
if (!SysId.IsValid(organisationId))
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
||||||
|
|
||||||
// Retrieve item.
|
// Retrieve item.
|
||||||
SaxOrganisation organisation = AccountMgr.GetOrganisationById(organisationId);
|
SaxOrganisation organisation = AccountMgr.GetOrganisationById(organisationId);
|
||||||
@@ -295,7 +295,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisation == null)
|
if (organisation == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to retrieve organisation for Id: '" + model.OrganisationId + "'");
|
SaLogger.Warn(fn + " Failed to retrieve organisation for Id: '" + model.OrganisationId + "'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Organisation address.
|
// Organisation address.
|
||||||
@@ -327,7 +327,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Validate item properties.
|
// Validate item properties.
|
||||||
@@ -342,7 +342,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (organisation == null && SysId.IsValid(organisationId))
|
if (organisation == null && SysId.IsValid(organisationId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to retrieve organisation for Id: '" + model.OrganisationId + "'");
|
SaLogger.Warn(fn + " Failed to retrieve organisation for Id: '" + model.OrganisationId + "'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create new item if required.
|
// Create new item if required.
|
||||||
@@ -385,7 +385,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!AccountMgr.InsertOrganisation(organisation, DbUpdateInfo))
|
if (!AccountMgr.InsertOrganisation(organisation, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to insert organisation: " + AccountMgr.ErrorStateMessage);
|
SaLogger.Warn(fn + " Failed to insert organisation: " + AccountMgr.ErrorStateMessage);
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -393,7 +393,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!AccountMgr.UpdateOrganisation(organisation, DbUpdateInfo))
|
if (!AccountMgr.UpdateOrganisation(organisation, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to update organisation [Id:" + SysId.ToString(organisation.Id) + "]: " + AccountMgr.ErrorStateMessage);
|
SaLogger.Warn(fn + " Failed to update organisation [Id:" + SysId.ToString(organisation.Id) + "]: " + AccountMgr.ErrorStateMessage);
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
@@ -43,7 +43,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return Unauthorized();
|
return Unauthorized();
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Validate supplied data properties.
|
// Validate supplied data properties.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Utils;
|
using Sarand.Net.Standard.Base.Utils;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Saxonite.Net.Core.Web.Admin.Models;
|
using Saxonite.Net.Core.Web.Admin.Models;
|
||||||
using Saxonite.Net.Core.Web.Base.App;
|
using Saxonite.Net.Core.Web.Base.App;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Saxonite.Net.Core.Web.Admin.Models.Reference;
|
using Saxonite.Net.Core.Web.Admin.Models.Reference;
|
||||||
using Saxonite.Net.Core.Web.Base.App;
|
using Saxonite.Net.Core.Web.Base.App;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using NPOI.SS.Formula.Functions;
|
using NPOI.SS.Formula.Functions;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Utils;
|
using Sarand.Net.Standard.Base.Utils;
|
||||||
using Saxonite.Net.Core.Web.Admin.Models;
|
using Saxonite.Net.Core.Web.Admin.Models;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
+6
-6
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using NPOI.SS.Formula.Functions;
|
using NPOI.SS.Formula.Functions;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
@@ -447,20 +447,20 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers.Reference
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Process console.
|
// Process console.
|
||||||
SaxProcessConsole_Admin processConsole = GetProcessConsole_Admin(SessionContext);
|
SaxProcessConsole_Admin processConsole = GetProcessConsole_Admin(SessionContext);
|
||||||
if (processConsole == null)
|
if (processConsole == null)
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
// Check whether process is in progress.
|
// Check whether process is in progress.
|
||||||
if (processConsole.IsProcessing(SaxProcessConsole_Admin.ProcessType.GolfUsgaDataLookup))
|
if (processConsole.IsProcessing(SaxProcessConsole_Admin.ProcessType.GolfUsgaDataLookup))
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.process.in.progress"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.process.in.progress"]));
|
||||||
|
|
||||||
// Configure the process.
|
// Configure the process.
|
||||||
SaxGolfUsgaDataLookup.Config processConfig = new SaxGolfUsgaDataLookup.Config(SessionContext, DbUpdateInfo);
|
SaxGolfUsgaDataLookup.Config processConfig = new SaxGolfUsgaDataLookup.Config(SessionContext, DbUpdateInfo);
|
||||||
@@ -475,12 +475,12 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers.Reference
|
|||||||
catch (Exception exc)
|
catch (Exception exc)
|
||||||
{
|
{
|
||||||
SaLogger.Warn($"{SysUtil.Fn} {exc.GetType().Name} initialising organisation uploader.");
|
SaLogger.Warn($"{SysUtil.Fn} {exc.GetType().Name} initialising organisation uploader.");
|
||||||
return Json(responseData.SetMessage(messageTitle, exc.GetType().Name + " initialising USGA Golf Data Loader."));
|
return Json(responseData.SetPopupMessage(messageTitle, exc.GetType().Name + " initialising USGA Golf Data Loader."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Complete response.
|
// Complete response.
|
||||||
Json(responseData.SetMessage(messageTitle, "Course caption cleansing is underway."));
|
Json(responseData.SetPopupMessage(messageTitle, "Course caption cleansing is underway."));
|
||||||
responseData.Success = true;
|
responseData.Success = true;
|
||||||
return Json(responseData);
|
return Json(responseData);
|
||||||
}
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Saxonite.Net.Core.Web.Admin.Models.Reference;
|
using Saxonite.Net.Core.Web.Admin.Models.Reference;
|
||||||
using Saxonite.Net.Core.Web.Base.App;
|
using Saxonite.Net.Core.Web.Base.App;
|
||||||
+8
-8
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
@@ -167,13 +167,13 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Identify item.
|
// Identify item.
|
||||||
SysId regionId = SysId.ToSysId(model.RegionId);
|
SysId regionId = SysId.ToSysId(model.RegionId);
|
||||||
if (!SysId.IsValid(regionId))
|
if (!SysId.IsValid(regionId))
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
||||||
|
|
||||||
// Retrieve item.
|
// Retrieve item.
|
||||||
SaxRegion region = ReferenceMgr.GetRegionById(regionId);
|
SaxRegion region = ReferenceMgr.GetRegionById(regionId);
|
||||||
@@ -181,7 +181,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (region == null)
|
if (region == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to retrieve region for Id: '" + model.RegionId + "'");
|
SaLogger.Warn(fn + " Failed to retrieve region for Id: '" + model.RegionId + "'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Construct response.
|
// Construct response.
|
||||||
@@ -210,7 +210,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Validate item properties.
|
// Validate item properties.
|
||||||
@@ -225,7 +225,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (region == null && SysId.IsValid(regionId))
|
if (region == null && SysId.IsValid(regionId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to retrieve region for Id: '" + model.RegionId + "'");
|
SaLogger.Warn(fn + " Failed to retrieve region for Id: '" + model.RegionId + "'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create new item if required.
|
// Create new item if required.
|
||||||
@@ -253,7 +253,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!ReferenceMgr.InsertRegion(region, DbUpdateInfo))
|
if (!ReferenceMgr.InsertRegion(region, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to insert region: " + ReferenceMgr.ErrorStateMessage);
|
SaLogger.Warn(fn + " Failed to insert region: " + ReferenceMgr.ErrorStateMessage);
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -261,7 +261,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!ReferenceMgr.UpdateRegion(region, DbUpdateInfo))
|
if (!ReferenceMgr.UpdateRegion(region, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to update region [Id:" + SysId.ToString(region.Id) + "]: " + ReferenceMgr.ErrorStateMessage);
|
SaLogger.Warn(fn + " Failed to update region [Id:" + SysId.ToString(region.Id) + "]: " + ReferenceMgr.ErrorStateMessage);
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Saxonite.Net.Core.Web.Admin.Models;
|
using Saxonite.Net.Core.Web.Admin.Models;
|
||||||
using Saxonite.Net.Core.Web.Base.App;
|
using Saxonite.Net.Core.Web.Base.App;
|
||||||
+9
-10
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
@@ -65,7 +65,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
String fn = GetType().Name + ".SignUserIn";
|
String fn = GetType().Name + ".SignUserIn";
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
List<SaxUserRole> userRoles = AccountMgr.GetRolesForUser(userAccount.Id);
|
List<SaxUserRole> userRoles = AccountMgr.GetRolesForUser(userAccount.Id);
|
||||||
disposableItems.AddRange(userRoles);
|
disposableItems.AddRange(userRoles);
|
||||||
@@ -210,8 +210,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
{
|
{
|
||||||
public static String CookieName = "SXKLI";
|
public static String CookieName = "SXKLI";
|
||||||
public static String Base64Key = SacsEncryptionHelper.EncodePlainKey("<=Saxonite^{kEEp+1Ogg3d-IN}~32*>", SacsEncryptionHelper.KeyLength);
|
public static String Base64Key = SacsEncryptionHelper.EncodePlainKey("<=Saxonite^{kEEp+1Ogg3d-IN}~32*>", SacsEncryptionHelper.KeyLength);
|
||||||
public static String Base64IV = "YOX10FIPp1zM1pg5U6fW7A==";
|
public const String Purpose = "Saxonite.Admin.KeepLoggedIn";
|
||||||
private static String Base64IV_Generated = SacsEncryptionHelper.InitSymmetricEncryptionIV(KeepLoggedIn.Base64Key);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
@@ -221,7 +220,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
{
|
{
|
||||||
NameValueCollection keepLoggedInParams = new NameValueCollection();
|
NameValueCollection keepLoggedInParams = new NameValueCollection();
|
||||||
keepLoggedInParams.Add(ParamName_KeepLoggedIn_UserAccountId, SysId.ToString(SessionData_Admin.User.UserAccountId));
|
keepLoggedInParams.Add(ParamName_KeepLoggedIn_UserAccountId, SysId.ToString(SessionData_Admin.User.UserAccountId));
|
||||||
return EncryptParameters(keepLoggedInParams, KeepLoggedIn.Base64IV, KeepLoggedIn.Base64Key);
|
return EncryptParameters(keepLoggedInParams, KeepLoggedIn.Base64Key, KeepLoggedIn.Purpose);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
@@ -242,7 +241,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
KeepLoggedInParams keepLoggedInParams = new KeepLoggedInParams();
|
KeepLoggedInParams keepLoggedInParams = new KeepLoggedInParams();
|
||||||
if (!StringUtil.IsEmpty(encryptedParams))
|
if (!StringUtil.IsEmpty(encryptedParams))
|
||||||
{
|
{
|
||||||
NameValueCollection linkParams = DecryptParameters(encryptedParams, KeepLoggedIn.Base64IV, KeepLoggedIn.Base64Key);
|
NameValueCollection linkParams = DecryptParameters(encryptedParams, KeepLoggedIn.Base64Key, KeepLoggedIn.Purpose);
|
||||||
keepLoggedInParams.UserAccountId = new SysId(StringUtil.ToInt(linkParams.Get(ParamName_KeepLoggedIn_UserAccountId)));
|
keepLoggedInParams.UserAccountId = new SysId(StringUtil.ToInt(linkParams.Get(ParamName_KeepLoggedIn_UserAccountId)));
|
||||||
}
|
}
|
||||||
if (DebugMode) SaLogger.Info($"{SysUtil.Fn} UserAccountId: " + SysId.ToString(keepLoggedInParams.UserAccountId));
|
if (DebugMode) SaLogger.Info($"{SysUtil.Fn} UserAccountId: " + SysId.ToString(keepLoggedInParams.UserAccountId));
|
||||||
@@ -267,12 +266,12 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Parameter encryption, eg. for images.
|
// Parameter encryption, eg. for images.
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Encryption key is the same for all users each time the application is started,
|
// Purpose-bound AES-GCM envelopes use a fresh nonce for every encrypted value.
|
||||||
// but a different IV value is generated for each session so that the links/parameters cannot be shared.
|
|
||||||
public static String Base64Key_AdminApp { get; } = SacsEncryptionHelper.EncodePlainKey("Saxonite&Admin#Encryption-" + DateTime.Today.Format("ddMMyy"), SacsEncryptionHelper.KeyLength);
|
public static String Base64Key_AdminApp { get; } = SacsEncryptionHelper.EncodePlainKey("Saxonite&Admin#Encryption-" + DateTime.Today.Format("ddMMyy"), SacsEncryptionHelper.KeyLength);
|
||||||
|
private const String Purpose_AdminApp = "Saxonite.Admin.Parameters";
|
||||||
protected String EncryptSessionParams(NameValueCollection parameters)
|
protected String EncryptSessionParams(NameValueCollection parameters)
|
||||||
{
|
{
|
||||||
return HttpUtility.UrlEncode(EncryptParameters(parameters, SessionData_Admin.Base64IV_AdminApp, Base64Key_AdminApp));
|
return HttpUtility.UrlEncode(EncryptParameters(parameters, Base64Key_AdminApp, Purpose_AdminApp));
|
||||||
}
|
}
|
||||||
public static String EncryptSessionParams(SaxController_Admin controller, NameValueCollection parameters)
|
public static String EncryptSessionParams(SaxController_Admin controller, NameValueCollection parameters)
|
||||||
{
|
{
|
||||||
@@ -280,7 +279,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
}
|
}
|
||||||
protected NameValueCollection ExtractSessionParams(String encryptedParams)
|
protected NameValueCollection ExtractSessionParams(String encryptedParams)
|
||||||
{
|
{
|
||||||
return DecryptParameters(encryptedParams, SessionData_Admin.Base64IV_AdminApp, Base64Key_AdminApp);
|
return DecryptParameters(encryptedParams, Base64Key_AdminApp, Purpose_AdminApp);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
+12
-15
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
@@ -46,7 +46,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return Json(responseData);
|
return Json(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Get user account.
|
// Get user account.
|
||||||
@@ -106,7 +106,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
SaxUserAccount userAccount = null;
|
SaxUserAccount userAccount = null;
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Identify user account.
|
// Identify user account.
|
||||||
@@ -182,7 +182,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return Json(responseData.SetSessionExpired(messageTitle, Localiser["security.msg.warn.sessionExpired"]));
|
return Json(responseData.SetSessionExpired(messageTitle, Localiser["security.msg.warn.sessionExpired"]));
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Retrieve user account - in case sign-out needs to be recorded.
|
// Retrieve user account - in case sign-out needs to be recorded.
|
||||||
@@ -191,7 +191,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (userAccount == null)
|
if (userAccount == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " System error on sign-out - failed to retrieve account details. Id: " + SysId.ToInt(SessionData_Admin.User.UserAccountId));
|
SaLogger.Warn(fn + " System error on sign-out - failed to retrieve account details. Id: " + SysId.ToInt(SessionData_Admin.User.UserAccountId));
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clear user session.
|
// Clear user session.
|
||||||
@@ -248,7 +248,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
String messageTitle = Localiser["security.caption.change.password"];
|
String messageTitle = Localiser["security.caption.change.password"];
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// If 'Request Password' encrypted params (from email link) are present,
|
// If 'Request Password' encrypted params (from email link) are present,
|
||||||
@@ -324,7 +324,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
// Construct response.
|
// Construct response.
|
||||||
responseData.Success = true;
|
responseData.Success = true;
|
||||||
if (validRequestPasswordParams)
|
if (validRequestPasswordParams)
|
||||||
responseData.SetMessage(messageTitle, Localiser["security.msg.request.password.saved"]);
|
responseData.SetPopupMessage(messageTitle, Localiser["security.msg.request.password.saved"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Json(responseData);
|
return Json(responseData);
|
||||||
@@ -355,7 +355,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return Json(responseData);
|
return Json(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Retrieve user account.
|
// Retrieve user account.
|
||||||
@@ -412,11 +412,8 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
private static String ParamName_EmailAddress { get; } = "ema";
|
private static String ParamName_EmailAddress { get; } = "ema";
|
||||||
private static String ParamName_ExpiresAt { get; } = "exp";
|
private static String ParamName_ExpiresAt { get; } = "exp";
|
||||||
private static String ParamName_Token { get; } = "tok";
|
private static String ParamName_Token { get; } = "tok";
|
||||||
// NB IV value is generated from the key and fixed so that it doesn't change when the application restarts.
|
|
||||||
// IV Must be regenerated if key is changed.
|
|
||||||
private static String Base64Key_RequestPassword_Admin { get; } = SacsEncryptionHelper.EncodePlainKey("{~Saxonite@@Request^Password=}", SacsEncryptionHelper.KeyLength);
|
private static String Base64Key_RequestPassword_Admin { get; } = SacsEncryptionHelper.EncodePlainKey("{~Saxonite@@Request^Password=}", SacsEncryptionHelper.KeyLength);
|
||||||
//private static String Base64IV_RequestPassword_Generated { get; } = SacsEncryptionHelper.InitSymmetricEncryptionIV(Base64Key_RequestPassword);
|
private const String Purpose_RequestPassword_Admin = "Saxonite.Admin.RequestPassword";
|
||||||
private static String Base64IV_RequestPassword_Admin { get; } = "1VAWYTW6d72n/6HDNhbqow==";
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Generate Request Password link.
|
/// Generate Request Password link.
|
||||||
/// <para>NB For an Online application request (from teh ASdmin system), must ensure that the URL and encryption parameters are switched.</para>
|
/// <para>NB For an Online application request (from teh ASdmin system), must ensure that the URL and encryption parameters are switched.</para>
|
||||||
@@ -426,7 +423,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
// Base URL.
|
// Base URL.
|
||||||
String baseUrl = onlineContext ? controller.AppConfig.URL.Online.Root : controller.GetRedirectLocation(RedirectLocation.WebAppBase);
|
String baseUrl = onlineContext ? controller.AppConfig.URL.Online.Root : controller.GetRedirectLocation(RedirectLocation.WebAppBase);
|
||||||
String requestPassword_Base64Key = onlineContext ? Base64Key_RequestPassword_Online : Base64Key_RequestPassword_Admin;
|
String requestPassword_Base64Key = onlineContext ? Base64Key_RequestPassword_Online : Base64Key_RequestPassword_Admin;
|
||||||
String requestPassword_ase64IV = onlineContext ? Base64IV_RequestPassword_Online : Base64IV_RequestPassword_Admin;
|
String requestPassword_Purpose = onlineContext ? Purpose_RequestPassword_Online : Purpose_RequestPassword_Admin;
|
||||||
|
|
||||||
NameValueCollection parameters = new NameValueCollection();
|
NameValueCollection parameters = new NameValueCollection();
|
||||||
parameters.Add(ParamName_UserAccountId, SysId.ToString(userAccountId));
|
parameters.Add(ParamName_UserAccountId, SysId.ToString(userAccountId));
|
||||||
@@ -435,7 +432,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
parameters.Add(ParamName_Token, requestPasswordToken);
|
parameters.Add(ParamName_Token, requestPasswordToken);
|
||||||
String link =
|
String link =
|
||||||
baseUrl + "Security/ChangePassword?" +
|
baseUrl + "Security/ChangePassword?" +
|
||||||
ParamName_RequestPasswordEncrypted + "=" + HttpUtility.UrlEncode(EncryptParameters(parameters, requestPassword_ase64IV, requestPassword_Base64Key));
|
ParamName_RequestPasswordEncrypted + "=" + HttpUtility.UrlEncode(EncryptParameters(parameters, requestPassword_Base64Key, requestPassword_Purpose));
|
||||||
return link;
|
return link;
|
||||||
}
|
}
|
||||||
internal static int GetRequestPasswordEmailLinkExpiresMinutes(SaxController_Admin controller)
|
internal static int GetRequestPasswordEmailLinkExpiresMinutes(SaxController_Admin controller)
|
||||||
@@ -488,7 +485,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
RequestPasswordParams requestPasswordParams = new RequestPasswordParams();
|
RequestPasswordParams requestPasswordParams = new RequestPasswordParams();
|
||||||
if (!StringUtil.IsEmpty(encryptedParams))
|
if (!StringUtil.IsEmpty(encryptedParams))
|
||||||
{
|
{
|
||||||
NameValueCollection linkParams = DecryptParameters(encryptedParams, Base64IV_RequestPassword_Admin, Base64Key_RequestPassword_Admin);
|
NameValueCollection linkParams = DecryptParameters(encryptedParams, Base64Key_RequestPassword_Admin, Purpose_RequestPassword_Admin);
|
||||||
requestPasswordParams.UserAccountId = new SysId(StringUtil.ToInt(linkParams.Get(ParamName_UserAccountId)));
|
requestPasswordParams.UserAccountId = new SysId(StringUtil.ToInt(linkParams.Get(ParamName_UserAccountId)));
|
||||||
requestPasswordParams.EmailAddress = linkParams.Get(ParamName_EmailAddress);
|
requestPasswordParams.EmailAddress = linkParams.Get(ParamName_EmailAddress);
|
||||||
requestPasswordParams.ExpiresAt = DateUtil.ParseXmlDateTime(linkParams.Get(ParamName_ExpiresAt));
|
requestPasswordParams.ExpiresAt = DateUtil.ParseXmlDateTime(linkParams.Get(ParamName_ExpiresAt));
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Microsoft.Extensions.Primitives;
|
using Microsoft.Extensions.Primitives;
|
||||||
+8
-8
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
@@ -164,13 +164,13 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Identify item.
|
// Identify item.
|
||||||
SysId sportId = SysId.ToSysId(model.SportId);
|
SysId sportId = SysId.ToSysId(model.SportId);
|
||||||
if (!SysId.IsValid(sportId))
|
if (!SysId.IsValid(sportId))
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
||||||
|
|
||||||
// Retrieve item.
|
// Retrieve item.
|
||||||
SaxSport sport = ReferenceMgr.GetSportById(sportId);
|
SaxSport sport = ReferenceMgr.GetSportById(sportId);
|
||||||
@@ -178,7 +178,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (sport == null)
|
if (sport == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to retrieve sport for Id: '" + model.SportId + "'");
|
SaLogger.Warn(fn + " Failed to retrieve sport for Id: '" + model.SportId + "'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parent sport.
|
// Parent sport.
|
||||||
@@ -211,7 +211,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Validate item properties.
|
// Validate item properties.
|
||||||
@@ -226,7 +226,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (sport == null && SysId.IsValid(sportId))
|
if (sport == null && SysId.IsValid(sportId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to retrieve sport for Id: '" + model.SportId + "'");
|
SaLogger.Warn(fn + " Failed to retrieve sport for Id: '" + model.SportId + "'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create new item if required.
|
// Create new item if required.
|
||||||
@@ -254,7 +254,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!ReferenceMgr.InsertSport(sport, DbUpdateInfo))
|
if (!ReferenceMgr.InsertSport(sport, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to insert sport: " + ReferenceMgr.ErrorStateMessage);
|
SaLogger.Warn(fn + " Failed to insert sport: " + ReferenceMgr.ErrorStateMessage);
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -262,7 +262,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!ReferenceMgr.UpdateSport(sport, DbUpdateInfo))
|
if (!ReferenceMgr.UpdateSport(sport, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to update sport [Id:" + SysId.ToString(sport.Id) + "]: " + ReferenceMgr.ErrorStateMessage);
|
SaLogger.Warn(fn + " Failed to update sport [Id:" + SysId.ToString(sport.Id) + "]: " + ReferenceMgr.ErrorStateMessage);
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Saxonite.Net.Core.Web.Admin.Models;
|
using Saxonite.Net.Core.Web.Admin.Models;
|
||||||
using Saxonite.Net.Core.Web.Base.App;
|
using Saxonite.Net.Core.Web.Base.App;
|
||||||
+10
-10
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
@@ -220,13 +220,13 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers.Support
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Identify item.
|
// Identify item.
|
||||||
SysId userReportId = SysId.ToSysId(model.UserReport.Id);
|
SysId userReportId = SysId.ToSysId(model.UserReport.Id);
|
||||||
if (!SysId.IsValid(userReportId))
|
if (!SysId.IsValid(userReportId))
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
||||||
|
|
||||||
// Retrieve item.
|
// Retrieve item.
|
||||||
SaxUserReport userReport = SupportMgr.GetUserReportById(userReportId);
|
SaxUserReport userReport = SupportMgr.GetUserReportById(userReportId);
|
||||||
@@ -234,7 +234,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers.Support
|
|||||||
if (userReport == null)
|
if (userReport == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to retrieve userReport for Id: '" + model.UserReport.Id + "'");
|
SaLogger.Warn(fn + " Failed to retrieve userReport for Id: '" + model.UserReport.Id + "'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve user.
|
// Retrieve user.
|
||||||
@@ -267,7 +267,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers.Support
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Validate item properties.
|
// Validate item properties.
|
||||||
@@ -280,19 +280,19 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers.Support
|
|||||||
if (StringUtil.ToBool(model.UserReport.Exists) && !SysId.IsValid(userReportId))
|
if (StringUtil.ToBool(model.UserReport.Exists) && !SysId.IsValid(userReportId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Item Id not supplied for existing item.");
|
SaLogger.Warn(fn + " Item Id not supplied for existing item.");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
}
|
}
|
||||||
if (!StringUtil.ToBool(model.UserReport.Exists) && SysId.IsValid(userReportId))
|
if (!StringUtil.ToBool(model.UserReport.Exists) && SysId.IsValid(userReportId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Item Id supplied for new item: '" + model.UserReport.Id + "'");
|
SaLogger.Warn(fn + " Item Id supplied for new item: '" + model.UserReport.Id + "'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.system"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.system"]));
|
||||||
}
|
}
|
||||||
SaxUserReport userReport = SupportMgr.GetUserReportById(userReportId);
|
SaxUserReport userReport = SupportMgr.GetUserReportById(userReportId);
|
||||||
disposableItems.Add(userReport);
|
disposableItems.Add(userReport);
|
||||||
if (userReport == null && SysId.IsValid(userReportId))
|
if (userReport == null && SysId.IsValid(userReportId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to retrieve userReport for Id: '" + model.UserReport.Id + "'");
|
SaLogger.Warn(fn + " Failed to retrieve userReport for Id: '" + model.UserReport.Id + "'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create new item if required.
|
// Create new item if required.
|
||||||
@@ -319,7 +319,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers.Support
|
|||||||
if (!SupportMgr.InsertUserReport(userReport, DbUpdateInfo))
|
if (!SupportMgr.InsertUserReport(userReport, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to insert userReport: " + SupportMgr.ErrorStateMessage);
|
SaLogger.Warn(fn + " Failed to insert userReport: " + SupportMgr.ErrorStateMessage);
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + SupportMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + SupportMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -327,7 +327,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers.Support
|
|||||||
if (!SupportMgr.UpdateUserReport(userReport, DbUpdateInfo))
|
if (!SupportMgr.UpdateUserReport(userReport, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to update userReport [Id:" + SysId.ToString(userReport.Id) + "]: " + SupportMgr.ErrorStateMessage);
|
SaLogger.Warn(fn + " Failed to update userReport [Id:" + SysId.ToString(userReport.Id) + "]: " + SupportMgr.ErrorStateMessage);
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + SupportMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + SupportMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Saxonite.Net.Core.Web.Admin.Models.Support;
|
using Saxonite.Net.Core.Web.Admin.Models.Support;
|
||||||
using Saxonite.Net.Core.Web.Base.App;
|
using Saxonite.Net.Core.Web.Base.App;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Saxonite.Net.Core.Web.Admin.Models.Support;
|
using Saxonite.Net.Core.Web.Admin.Models.Support;
|
||||||
using Saxonite.Net.Core.Web.Base.App;
|
using Saxonite.Net.Core.Web.Base.App;
|
||||||
+11
-11
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
@@ -61,7 +61,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers.System
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsDisposable> disposableItems = new DisposableCollection<SacsDisposable>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
// Database connection.
|
// Database connection.
|
||||||
Sax.Database databaseInstance = EnumUtil.ParseEnum(StringUtil.EmptyOnNull(model.DatabaseFilter.Instance), Sax.Database.Core);
|
Sax.Database databaseInstance = EnumUtil.ParseEnum(StringUtil.EmptyOnNull(model.DatabaseFilter.Instance), Sax.Database.Core);
|
||||||
@@ -146,32 +146,32 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers.System
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsDisposable> disposableItems = new DisposableCollection<SacsDisposable>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Database instance.
|
// Database instance.
|
||||||
Sax.Database databaseInstance = EnumUtil.ParseEnum(StringUtil.EmptyOnNull(model.DatabaseFilter.Instance), Sax.Database.Unknown);
|
Sax.Database databaseInstance = EnumUtil.ParseEnum(StringUtil.EmptyOnNull(model.DatabaseFilter.Instance), Sax.Database.Unknown);
|
||||||
if (databaseInstance <= 0)
|
if (databaseInstance <= 0)
|
||||||
return Json(responseData.SetMessage(messageTitle, "Database instance must be specified"));
|
return Json(responseData.SetPopupMessage(messageTitle, "Database instance must be specified"));
|
||||||
responseData.Instance = databaseInstance.ToString();
|
responseData.Instance = databaseInstance.ToString();
|
||||||
|
|
||||||
// Database connection.
|
// Database connection.
|
||||||
ISacsDatabase db = App.GetDatabase(SessionContext, databaseInstance);
|
ISacsDatabase db = App.GetDatabase(SessionContext, databaseInstance);
|
||||||
if (db == null)
|
if (db == null)
|
||||||
return Json(responseData.SetMessage(messageTitle, "Unrecognised database instance specified: " + model.DatabaseFilter.Instance));
|
return Json(responseData.SetPopupMessage(messageTitle, "Unrecognised database instance specified: " + model.DatabaseFilter.Instance));
|
||||||
|
|
||||||
// Retrieve XML database schema definition.
|
// Retrieve XML database schema definition.
|
||||||
var assembly = typeof(SaxSystem_Dbas).GetTypeInfo().Assembly;
|
var assembly = typeof(SaxSystem_Dbas).GetTypeInfo().Assembly;
|
||||||
String xmlSchema = SacsResourceHelper.GetManifestResourceAsText(assembly, "", "SaxDbDfn_" + databaseInstance.ToString() + ".xml");
|
String xmlSchema = SacsResourceHelper.GetManifestResourceAsText(assembly, "", "SaxDbDfn_" + databaseInstance.ToString() + ".xml");
|
||||||
if (StringUtil.IsEmpty(xmlSchema))
|
if (StringUtil.IsEmpty(xmlSchema))
|
||||||
return Json(responseData.SetMessage(messageTitle, "Failed to extract XML schema definition."));
|
return Json(responseData.SetPopupMessage(messageTitle, "Failed to extract XML schema definition."));
|
||||||
|
|
||||||
// Extract schema from XML definition.
|
// Extract schema from XML definition.
|
||||||
SaDbProcess_ConvertDbSchema.Config cfgSchemaConvert = new SaDbProcess_ConvertDbSchema.Config();
|
SaDbProcess_ConvertDbSchema.Config cfgSchemaConvert = new SaDbProcess_ConvertDbSchema.Config();
|
||||||
SaDbProcess_ConvertDbSchema procSchemaConvert = new SaDbProcess_ConvertDbSchema(cfgSchemaConvert);
|
SaDbProcess_ConvertDbSchema procSchemaConvert = new SaDbProcess_ConvertDbSchema(cfgSchemaConvert);
|
||||||
List<DbDfnTable> tables = procSchemaConvert.ConvertXmlToTables(xmlSchema);
|
List<DbDfnTable> tables = procSchemaConvert.ConvertXmlToTables(xmlSchema);
|
||||||
if (procSchemaConvert.HasErrorMessage())
|
if (procSchemaConvert.HasErrorMessage())
|
||||||
return Json(responseData.SetMessage(messageTitle, "Failed to convert XML schema: " + procSchemaConvert.GetErrorMessage()));
|
return Json(responseData.SetPopupMessage(messageTitle, "Failed to convert XML schema: " + procSchemaConvert.GetErrorMessage()));
|
||||||
|
|
||||||
SaDbProcess_CompareDatabaseSchemas.Config cfgSchemaCompare = new SaDbProcess_CompareDatabaseSchemas.Config(tables, db);
|
SaDbProcess_CompareDatabaseSchemas.Config cfgSchemaCompare = new SaDbProcess_CompareDatabaseSchemas.Config(tables, db);
|
||||||
cfgSchemaCompare.HideIdenticalObjects = true;
|
cfgSchemaCompare.HideIdenticalObjects = true;
|
||||||
@@ -342,17 +342,17 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers.System
|
|||||||
return GetAjaxResult_InvalidSession(responseData);
|
return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsDisposable> disposableItems = new DisposableCollection<SacsDisposable>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Parameters.
|
// Parameters.
|
||||||
if (StringUtil.IsEmpty(model.DatabaseTable.Name))
|
if (StringUtil.IsEmpty(model.DatabaseTable.Name))
|
||||||
return Json(responseData.SetMessage(messageTitle, "Table name must be supplied."));
|
return Json(responseData.SetPopupMessage(messageTitle, "Table name must be supplied."));
|
||||||
|
|
||||||
// Database instance.
|
// Database instance.
|
||||||
Sax.Database databaseInstance = EnumUtil.ParseEnum(StringUtil.EmptyOnNull(model.DatabaseTable.Instance), Sax.Database.Unknown);
|
Sax.Database databaseInstance = EnumUtil.ParseEnum(StringUtil.EmptyOnNull(model.DatabaseTable.Instance), Sax.Database.Unknown);
|
||||||
if (databaseInstance <= 0)
|
if (databaseInstance <= 0)
|
||||||
return Json(responseData.SetMessage(messageTitle, "Database instance must be specified"));
|
return Json(responseData.SetPopupMessage(messageTitle, "Database instance must be specified"));
|
||||||
|
|
||||||
// Database connection.
|
// Database connection.
|
||||||
ISacsDatabase db = App.GetDatabase(SessionContext, databaseInstance);
|
ISacsDatabase db = App.GetDatabase(SessionContext, databaseInstance);
|
||||||
@@ -360,7 +360,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers.System
|
|||||||
// Table definition.
|
// Table definition.
|
||||||
DbDfnTable tableDfn = db.GetTableDfn(model.DatabaseTable.Name, true);
|
DbDfnTable tableDfn = db.GetTableDfn(model.DatabaseTable.Name, true);
|
||||||
if (tableDfn == null)
|
if (tableDfn == null)
|
||||||
return Json(responseData.SetMessage(messageTitle, "Invalid Table name supplied."));
|
return Json(responseData.SetPopupMessage(messageTitle, "Invalid Table name supplied."));
|
||||||
|
|
||||||
// Populate table response.
|
// Populate table response.
|
||||||
responseData.Table = new AjaxResponseData_Table(tableDfn);
|
responseData.Table = new AjaxResponseData_Table(tableDfn);
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
+17
-17
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
@@ -264,13 +264,13 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
RefreshModel(model);
|
RefreshModel(model);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Identify item.
|
// Identify item.
|
||||||
SysId userAccountId = SysId.ToSysId(model.UserId);
|
SysId userAccountId = SysId.ToSysId(model.UserId);
|
||||||
if (!SysId.IsValid(userAccountId))
|
if (!SysId.IsValid(userAccountId))
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
||||||
|
|
||||||
// Retrieve item.
|
// Retrieve item.
|
||||||
SaxUserAccount user = AccountMgr.GetUserAccountById(userAccountId);
|
SaxUserAccount user = AccountMgr.GetUserAccountById(userAccountId);
|
||||||
@@ -278,7 +278,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to retrieve user for Id: '" + userAccountId + "'");
|
SaLogger.Warn(fn + " Failed to retrieve user for Id: '" + userAccountId + "'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// User Sports.
|
// User Sports.
|
||||||
@@ -314,7 +314,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
RefreshModel(model);
|
RefreshModel(model);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Identify user.
|
// Identify user.
|
||||||
@@ -371,7 +371,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
return Json(responseData);
|
return Json(responseData);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Retrieve existing item.
|
// Retrieve existing item.
|
||||||
@@ -381,7 +381,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (user == null && SysId.IsValid(userAccountId))
|
if (user == null && SysId.IsValid(userAccountId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to retrieve user for Id: '" + model.UserId + "'");
|
SaLogger.Warn(fn + " Failed to retrieve user for Id: '" + model.UserId + "'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// User roles, including deleted in case of reassignment.
|
// User roles, including deleted in case of reassignment.
|
||||||
@@ -439,7 +439,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!AccountMgr.InsertUserAccount(user, DbUpdateInfo))
|
if (!AccountMgr.InsertUserAccount(user, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to insert user: " + AccountMgr.ErrorStateMessage);
|
SaLogger.Warn(fn + " Failed to insert user: " + AccountMgr.ErrorStateMessage);
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -447,7 +447,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (!AccountMgr.UpdateUserAccount(user, DbUpdateInfo))
|
if (!AccountMgr.UpdateUserAccount(user, DbUpdateInfo))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to update user [Id:" + SysId.ToString(user.Id) + "]: " + AccountMgr.ErrorStateMessage);
|
SaLogger.Warn(fn + " Failed to update user [Id:" + SysId.ToString(user.Id) + "]: " + AccountMgr.ErrorStateMessage);
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + AccountMgr.ErrorStateMessage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -501,7 +501,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
RefreshModel(model);
|
RefreshModel(model);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Retrieve user.
|
// Retrieve user.
|
||||||
@@ -511,7 +511,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (userAccount == null)
|
if (userAccount == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to retrieve user for Id: '" + model.UserId + "'");
|
SaLogger.Warn(fn + " Failed to retrieve user for Id: '" + model.UserId + "'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// User roles.
|
// User roles.
|
||||||
@@ -524,28 +524,28 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
bool sendRequestPasswordOnline = StringUtil.ToBool(model.UserEmailRequestPasswordOnline);
|
bool sendRequestPasswordOnline = StringUtil.ToBool(model.UserEmailRequestPasswordOnline);
|
||||||
bool sendRequestPasswordAdmin = StringUtil.ToBool(model.UserEmailRequestPasswordAdmin);
|
bool sendRequestPasswordAdmin = StringUtil.ToBool(model.UserEmailRequestPasswordAdmin);
|
||||||
if (!sendAcountActivationOnline && !sendRequestPasswordOnline && !sendRequestPasswordAdmin)
|
if (!sendAcountActivationOnline && !sendRequestPasswordOnline && !sendRequestPasswordAdmin)
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.validation.select.option"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.validation.select.option"]));
|
||||||
if (sendRequestPasswordAdmin && !systemAdmin)
|
if (sendRequestPasswordAdmin && !systemAdmin)
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["user.msg.not.system.admin"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["user.msg.not.system.admin"]));
|
||||||
|
|
||||||
// Send emails.
|
// Send emails.
|
||||||
int emailsSentCount = 0;
|
int emailsSentCount = 0;
|
||||||
if (sendAcountActivationOnline)
|
if (sendAcountActivationOnline)
|
||||||
{
|
{
|
||||||
if (!OrganisationController.SendAccountActivatedEmail(this, userAccount))
|
if (!OrganisationController.SendAccountActivatedEmail(this, userAccount))
|
||||||
return Json(responseData.SetMessage(messageTitle, "Failed to send Online Account Activation email."));
|
return Json(responseData.SetPopupMessage(messageTitle, "Failed to send Online Account Activation email."));
|
||||||
emailsSentCount++;
|
emailsSentCount++;
|
||||||
}
|
}
|
||||||
if (sendRequestPasswordOnline)
|
if (sendRequestPasswordOnline)
|
||||||
{
|
{
|
||||||
if (!SecurityController.SendRequestPasswordEmail(this, userAccount, true))
|
if (!SecurityController.SendRequestPasswordEmail(this, userAccount, true))
|
||||||
return Json(responseData.SetMessage(messageTitle, "Failed to send Online Request Password email."));
|
return Json(responseData.SetPopupMessage(messageTitle, "Failed to send Online Request Password email."));
|
||||||
emailsSentCount++;
|
emailsSentCount++;
|
||||||
}
|
}
|
||||||
if (sendRequestPasswordAdmin)
|
if (sendRequestPasswordAdmin)
|
||||||
{
|
{
|
||||||
if (!SecurityController.SendRequestPasswordEmail(this, userAccount, false))
|
if (!SecurityController.SendRequestPasswordEmail(this, userAccount, false))
|
||||||
return Json(responseData.SetMessage(messageTitle, "Failed to send Admin Request Password email."));
|
return Json(responseData.SetPopupMessage(messageTitle, "Failed to send Admin Request Password email."));
|
||||||
emailsSentCount++;
|
emailsSentCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -555,7 +555,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
|
|
||||||
// Construct response.
|
// Construct response.
|
||||||
PopulateUserResponseItemData(model, responseData.user, userAccount, userSports, userRoles.GetUserRolesByStatus(SaStatus.Active));
|
PopulateUserResponseItemData(model, responseData.user, userAccount, userSports, userRoles.GetUserRolesByStatus(SaStatus.Active));
|
||||||
responseData.SetNotification(messageTitle, "Emails sent: " + emailsSentCount);
|
responseData.SetNotifyMessage(messageTitle, "Emails sent: " + emailsSentCount);
|
||||||
responseData.Success = true;
|
responseData.Success = true;
|
||||||
}
|
}
|
||||||
return Json(responseData);
|
return Json(responseData);
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Sarand.Net.Standard.Base.Utils;
|
using Sarand.Net.Standard.Base.Utils;
|
||||||
using Saxonite.Net.Core.Web.Admin.Models;
|
using Saxonite.Net.Core.Web.Admin.Models;
|
||||||
+4
-4
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
@@ -156,13 +156,13 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
RefreshModel(model);
|
RefreshModel(model);
|
||||||
|
|
||||||
// Record disposable items as they are created so all can be disposed when needed.
|
// Record disposable items as they are created so all can be disposed when needed.
|
||||||
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
|
using (DisposableCollection<IDisposable> disposableItems = new DisposableCollection<IDisposable>())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Identify item.
|
// Identify item.
|
||||||
SysId userAccountId = SysId.ToSysId(model.UserId);
|
SysId userAccountId = SysId.ToSysId(model.UserId);
|
||||||
if (!SysId.IsValid(userAccountId))
|
if (!SysId.IsValid(userAccountId))
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
|
||||||
|
|
||||||
// Retrieve item.
|
// Retrieve item.
|
||||||
SaxUserAccount user = AccountMgr.GetUserAccountById(userAccountId);
|
SaxUserAccount user = AccountMgr.GetUserAccountById(userAccountId);
|
||||||
@@ -170,7 +170,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Failed to retrieve user for Id: '" + userAccountId + "'");
|
SaLogger.Warn(fn + " Failed to retrieve user for Id: '" + userAccountId + "'");
|
||||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
return Json(responseData.SetPopupMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// User Online.
|
// User Online.
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Sarand.Net.Standard.Base.Utils;
|
using Sarand.Net.Standard.Base.Utils;
|
||||||
using Saxonite.Net.Core.Web.Admin.Models;
|
using Saxonite.Net.Core.Web.Admin.Models;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Sacs.Web.Components;
|
using Sacs.Web.Components;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
using Sarand.Net.Standard.Base.Helpers;
|
using Sarand.Net.Standard.Base.Helpers;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Saxonite.Net.Core.Web.Base.App;
|
using Saxonite.Net.Core.Web.Base.App;
|
||||||
using Saxonite.Net.Core.Web.Base.Models;
|
using Saxonite.Net.Core.Web.Base.Models;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Saxonite.Net.Core.Web.Base.App;
|
using Saxonite.Net.Core.Web.Base.App;
|
||||||
using Saxonite.Net.Core.Web.Base.Models;
|
using Saxonite.Net.Core.Web.Base.Models;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc.Rendering;
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
@@ -211,7 +211,7 @@ namespace Saxonite.Net.Core.Web.Admin.Models
|
|||||||
if (ContactData.Methods.Count != ContactMethods.ToInt())
|
if (ContactData.Methods.Count != ContactMethods.ToInt())
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Inconsistent Contact Methods received. Expected: " + ContactMethods + ". Received: " + ContactData.Methods.Count);
|
SaLogger.Warn(fn + " Inconsistent Contact Methods received. Expected: " + ContactMethods + ". Received: " + ContactData.Methods.Count);
|
||||||
responseData.SetMessage(Localiser["caption.contact.method"], "System error");
|
responseData.SetPopupMessage(Localiser["caption.contact.method"], "System error");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
using Sarand.Net.Standard.Base.Utils;
|
using Sarand.Net.Standard.Base.Utils;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
using Sarand.Net.Standard.Base.Utils;
|
using Sarand.Net.Standard.Base.Utils;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
using Sarand.Net.Standard.Base.App;
|
using Sarand.Net.Standard.Base.App;
|
||||||
using Sarand.Net.Standard.Base.Bus;
|
using Sarand.Net.Standard.Base.Bus;
|
||||||
using Sarand.Net.Standard.Base.Core;
|
using Sarand.Net.Standard.Base.Core;
|
||||||
using Sarand.Net.Standard.Base.Utils;
|
using Sarand.Net.Standard.Base.Utils;
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user