Portal password request - in progress.
This commit is contained in:
@@ -23,7 +23,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Control.App
|
||||
Host.CreateDefaultBuilder(args)
|
||||
.ConfigureWebHostDefaults(webBuilder =>
|
||||
{
|
||||
webBuilder.UseStartup<SbmStartup_Admin>();
|
||||
webBuilder.UseStartup<SbmStartup_Control>();
|
||||
});
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
+78
-35
@@ -20,15 +20,18 @@ using System.Threading.Tasks;
|
||||
namespace Sarand.BusinessMgr.Net.Core.Web.Control.App
|
||||
{
|
||||
//=======================================================================
|
||||
public class SbmApplication_Admin : SbmApplication_Web
|
||||
public class SbmApplication_Control : SbmApplication_Web
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private bool generateDatabaseDefinitions = false;
|
||||
private bool generateDatabaseDefinitions_Control = true;
|
||||
private bool generateDatabaseDefinitions_BusMgr = true;
|
||||
private PropertySet propertySet;
|
||||
private Dictionary<String, SbmSessionConfig> sessionConfigs = new Dictionary<string, SbmSessionConfig>();
|
||||
private Dictionary<String, SbmAppConfig> appConfigs = new Dictionary<string, SbmAppConfig>();
|
||||
private Dictionary<String, SbmEmailConfig> emailConfigs = new Dictionary<string, SbmEmailConfig>();
|
||||
// Session contexts.
|
||||
private static ushort sessionContextIdx_Next = 100;
|
||||
private ushort sessionContextIdx_Control = 0;
|
||||
private class SessionContextData
|
||||
{
|
||||
public SessionContextData(SbmSessionContext_Web sessionContext)
|
||||
@@ -36,19 +39,18 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Control.App
|
||||
SessionContext = sessionContext;
|
||||
}
|
||||
public SbmSessionContext_Web SessionContext { get; }
|
||||
public ISacsDatabase ControlDatabase { get; set; }
|
||||
public ISacsDatabase BusMgrDatabase { get; set; }
|
||||
}
|
||||
private readonly Dictionary<int, SessionContextData> sessionContexts = new Dictionary<int, SessionContextData>();
|
||||
private readonly Dictionary<ushort, SessionContextData> sessionContexts = new Dictionary<ushort, SessionContextData>();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SbmApplication_Admin(IConfiguration configuration)
|
||||
public SbmApplication_Control(IConfiguration configuration)
|
||||
{
|
||||
InitialiseTemporaryLoggingFolder();
|
||||
try
|
||||
{
|
||||
AppInstance = this;
|
||||
SbmGlobals.Application = this;
|
||||
propertySet = new PropertySet();
|
||||
SbmGlobals.System = (System_Web = new SbmSystem_Web(propertySet));
|
||||
Configuration = configuration;
|
||||
@@ -62,15 +64,27 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Control.App
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public static SbmApplication_Admin AppInstance { get; private set; }
|
||||
// Application Configuration.
|
||||
public override SbmAppConfig AppConfig { get { return appConfigs.Values.ToList().getConfigForApplication(); } }
|
||||
// Session Configuration.
|
||||
public override String SessionCookieName { get { return Sbm.Config.Control.Session.Cookie.Name; } }
|
||||
public override List<ushort> GetSessionContextIdxs()
|
||||
{
|
||||
return sessionContexts.Values.Select(item => item.SessionContext.Index).ToList();
|
||||
}
|
||||
public override SbmSessionContext GetSessionContext(ushort index)
|
||||
{
|
||||
return sessionContexts.GetValue(index, null)?.SessionContext ?? null;
|
||||
}
|
||||
public override ISacsDatabase GetControlDatabase(SbmSessionContext sessionContext)
|
||||
{
|
||||
return sessionContexts.GetValue(sessionContext.Index, null)?.ControlDatabase;
|
||||
}
|
||||
public override ISacsDatabase GetBusMgrDatabase(SbmSessionContext sessionContext)
|
||||
{
|
||||
return sessionContexts.GetValue(sessionContext.Index, null)?.BusMgrDatabase;
|
||||
}
|
||||
public override String SessionCookieName { get { return Sbm.Config.Admin.Session.Cookie.Name; } }
|
||||
// Configuration.
|
||||
public override SbmSessionConfig SessionConfig { get { return sessionConfigs.Values.ToList().getConfigForApplication(); } }
|
||||
public override SbmEmailConfig EmailConfig { get { return emailConfigs.Values.ToList().getConfigForSession(SessionConfig); } }
|
||||
public override SbmEmailConfig EmailConfig { get { return emailConfigs.Values.ToList().getConfigForSession(AppConfig); } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Initialisation.
|
||||
@@ -101,15 +115,15 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Control.App
|
||||
SbmConfiguration = builder.Build();
|
||||
|
||||
// Application configuration.
|
||||
sessionConfigs = SbmSessionConfigHelper.ExtractSessionConfigs(SbmConfiguration.GetSection("SessionConfigs"));
|
||||
appConfigs = SbmAppConfigHelper.ExtractAppConfigs(SbmConfiguration.GetSection("AppConfigs"));
|
||||
emailConfigs = SbmEmailConfigHelper.ExtractEmailConfigs(SbmConfiguration.GetSection("EmailConfigs"));
|
||||
LoggingRootFolder = SessionConfig.Logging.RootFolder;
|
||||
LoggingRootFolder = AppConfig.Logging.RootFolder;
|
||||
|
||||
// Application instance.
|
||||
if (SessionConfig.Instance.EqualsCI("Dev")) instanceType = Sbm.InstanceType.Dev;
|
||||
else if (SessionConfig.Instance.ContainsCI("Q")) instanceType = Sbm.InstanceType.QC;
|
||||
else if (SessionConfig.Instance.ContainsCI("UAT")) instanceType = Sbm.InstanceType.UAT;
|
||||
else if (SessionConfig.Instance.EqualsCI("PreProd")) instanceType = Sbm.InstanceType.UAT;
|
||||
if (AppConfig.Instance.EqualsCI("Dev")) instanceType = Sbm.InstanceType.Dev;
|
||||
else if (AppConfig.Instance.ContainsCI("Q")) instanceType = Sbm.InstanceType.QC;
|
||||
else if (AppConfig.Instance.ContainsCI("UAT")) instanceType = Sbm.InstanceType.UAT;
|
||||
else if (AppConfig.Instance.EqualsCI("PreProd")) instanceType = Sbm.InstanceType.UAT;
|
||||
|
||||
// Initialise hard-coded logging path.
|
||||
if (StringUtil.IsEmpty(LoggingRootFolder))
|
||||
@@ -121,20 +135,30 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Control.App
|
||||
SaLogger.LogFolder = LoggingRootFolder;
|
||||
LogApplicationStart(fn);
|
||||
|
||||
// Configure database connection.
|
||||
// Control database connection.
|
||||
SacsDatabaseConsole.OdbcConfig config = new SacsDatabaseConsole.OdbcConfig();
|
||||
config.location = SessionConfig.BusMgrDatabase.Location;
|
||||
config.user = SessionConfig.BusMgrDatabase.User;
|
||||
config.pword = SessionConfig.BusMgrDatabase.Password;
|
||||
SacsDatabase coreDatabase = SacsDatabaseConsole.OpenOdbcDatabase(config);
|
||||
if (coreDatabase.HasErrorState())
|
||||
SaLogger.Warn(fn + " Database initialisation error: " + coreDatabase.ErrorStateMessage);
|
||||
config.location = AppConfig.ControlDatabase.Location;
|
||||
config.user = AppConfig.ControlDatabase.User;
|
||||
config.pword = AppConfig.ControlDatabase.Password;
|
||||
SacsDatabase controlDatabase = SacsDatabaseConsole.OpenOdbcDatabase(config);
|
||||
if (controlDatabase.HasErrorState())
|
||||
SaLogger.Warn(fn + " Control Database initialisation error: " + controlDatabase.ErrorStateMessage);
|
||||
|
||||
// BusinessMgr database connection.
|
||||
config = new SacsDatabaseConsole.OdbcConfig();
|
||||
config.location = AppConfig.BusMgrDatabase.Location;
|
||||
config.user = AppConfig.BusMgrDatabase.User;
|
||||
config.pword = AppConfig.BusMgrDatabase.Password;
|
||||
SacsDatabase busMgrDatabase = SacsDatabaseConsole.OpenOdbcDatabase(config);
|
||||
if (busMgrDatabase.HasErrorState())
|
||||
SaLogger.Warn(fn + " BusMgr Database initialisation error: " + busMgrDatabase.ErrorStateMessage);
|
||||
|
||||
// Session context - only one context available/necessary (for now).
|
||||
SessionContextData sessionContextData = new SessionContextData(new SbmSessionContext_Web(100, Sbm.Application.WebControl));
|
||||
sessionContextData.BusMgrDatabase = coreDatabase;
|
||||
sessionContextIdx_Control = sessionContextIdx_Next++;
|
||||
SessionContextData sessionContextData = new SessionContextData(new SbmSessionContext_Web(sessionContextIdx_Control, Sbm.Application.WebControl));
|
||||
sessionContextData.ControlDatabase = controlDatabase;
|
||||
sessionContextData.BusMgrDatabase = busMgrDatabase;
|
||||
sessionContexts.Add(sessionContextData.SessionContext.Index, sessionContextData);
|
||||
SessionContext = sessionContextData.SessionContext;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
@@ -142,20 +166,39 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Control.App
|
||||
}
|
||||
|
||||
// Occasional startup processing.
|
||||
if (generateDatabaseDefinitions)
|
||||
GenerateDatabaseDefinition(SessionContext);
|
||||
SbmSessionContext sessionContext = GetSessionContext(sessionContextIdx_Control);
|
||||
if (generateDatabaseDefinitions_Control)
|
||||
GenerateDatabaseDefinition(sessionContext, SbmDbDfnGenerator.DatabaseInstance.Control, GetControlDatabase(sessionContext));
|
||||
if (generateDatabaseDefinitions_BusMgr)
|
||||
{
|
||||
// Use the 'template' database connection parameters.
|
||||
SacsDatabaseConsole.OdbcConfig config = new SacsDatabaseConsole.OdbcConfig();
|
||||
config.location = AppConfig.TemplateDatabase.Location;
|
||||
config.user = AppConfig.TemplateDatabase.User;
|
||||
config.pword = AppConfig.TemplateDatabase.Password;
|
||||
GenerateDatabaseDefinition(sessionContext, SbmDbDfnGenerator.DatabaseInstance.BusinessMgr, SacsDatabaseConsole.GenerateConnectionString(config));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private void GenerateDatabaseDefinition(SbmSessionContext sessionContext)
|
||||
// Generate database definition.
|
||||
private void GenerateDatabaseDefinition(SbmSessionContext sessionContext, SbmDbDfnGenerator.DatabaseInstance dbInstance, ISacsDatabase db)
|
||||
{
|
||||
if (!generateDatabaseDefinitions || !SbmSystem.DebugMode || SessionContext == null) return;
|
||||
if (!generateDatabaseDefinitions_BusMgr || !SbmSystem.DebugMode || sessionContext == null) return;
|
||||
if (!StringUtil.EmptyOnNull(EnvironmentName).EqualsCI("Development")) return;
|
||||
ISacsDatabase coreDatabase = GetBusMgrDatabase(sessionContext);
|
||||
if (coreDatabase == null || StringUtil.IsEmpty(coreDatabase.ConnectionString)) return;
|
||||
if (db == null || StringUtil.IsEmpty(db.ConnectionString)) return;
|
||||
|
||||
// Generate database definitions.
|
||||
SbmDbDfnGenerator.Generate(SbmDbDfnGenerator.DatabaseInstance.BusinessMgr, coreDatabase.ConnectionString);
|
||||
GenerateDatabaseDefinition(sessionContext, dbInstance, db.ConnectionString);
|
||||
}
|
||||
private void GenerateDatabaseDefinition(SbmSessionContext sessionContext, SbmDbDfnGenerator.DatabaseInstance dbInstance, String connectionString)
|
||||
{
|
||||
if (!generateDatabaseDefinitions_BusMgr || !SbmSystem.DebugMode || sessionContext == null) return;
|
||||
if (!StringUtil.EmptyOnNull(EnvironmentName).EqualsCI("Development")) return;
|
||||
if (StringUtil.IsEmpty(connectionString)) return;
|
||||
|
||||
// Generate database definitions.
|
||||
SbmDbDfnGenerator.Generate(dbInstance, connectionString);
|
||||
//SaUpdateLogDbDfnGenerator.Generate(database.ConnectionString);
|
||||
}
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web
|
||||
namespace Sarand.BusinessMgr.Net.Core.Web.Control.App
|
||||
{
|
||||
//=======================================================================
|
||||
public class SbmLocaliser_Admin : SbmLocaliser
|
||||
public class SbmLocaliser_Control : SbmLocaliser
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
@@ -32,7 +32,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Control.App
|
||||
/// <summary>
|
||||
/// Localisers are supplied using construction injection.
|
||||
/// </summary>
|
||||
public SbmLocaliser_Admin(IStringLocalizer<SbmControlProperties> webAppProperties)
|
||||
public SbmLocaliser_Control(IStringLocalizer<SbmControlProperties> webAppProperties)
|
||||
{
|
||||
this.webAppProperties = webAppProperties;
|
||||
}
|
||||
+8
-8
@@ -14,19 +14,19 @@ using System.Threading.Tasks;
|
||||
namespace Sarand.BusinessMgr.Net.Core.Web.Control.App
|
||||
{
|
||||
//=======================================================================
|
||||
public class SbmStartup_Admin : SbmStartup_Web
|
||||
public class SbmStartup_Control : SbmStartup_Web
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private SbmApplication_Admin application = null;
|
||||
private SbmApplication_Control application = null;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SbmStartup_Admin(IConfiguration configuration) :
|
||||
public SbmStartup_Control(IConfiguration configuration) :
|
||||
base(configuration)
|
||||
{
|
||||
// Initialise application.
|
||||
application = new SbmApplication_Admin(Configuration);
|
||||
application = new SbmApplication_Control(Configuration);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -36,13 +36,13 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Control.App
|
||||
// Common configuration.
|
||||
ConfigureServicesConfig configureServicesConfig = new ConfigureServicesConfig();
|
||||
configureServicesConfig.services = services;
|
||||
configureServicesConfig.sessionCookieName = Sbm.Config.Admin.Session.Cookie.Name;
|
||||
configureServicesConfig.sessionCookieHttpOnly = Sbm.Config.Admin.Session.Cookie.HttpOnly;
|
||||
configureServicesConfig.sessionIdleTimeout = Sbm.Config.Admin.Session.Cookie.IdleTimeout;
|
||||
configureServicesConfig.sessionCookieName = Sbm.Config.Control.Session.Cookie.Name;
|
||||
configureServicesConfig.sessionCookieHttpOnly = Sbm.Config.Control.Session.Cookie.HttpOnly;
|
||||
configureServicesConfig.sessionIdleTimeout = Sbm.Config.Control.Session.Cookie.IdleTimeout;
|
||||
ConfigureServices(configureServicesConfig);
|
||||
|
||||
// Application localisation.
|
||||
services.AddSingleton<SbmLocaliser, SbmLocaliser_Admin>();
|
||||
services.AddSingleton<SbmLocaliser, SbmLocaliser_Control>();
|
||||
|
||||
services.Configure<CookiePolicyOptions>(options =>
|
||||
{
|
||||
+2
-2
@@ -1,13 +1,13 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using SaBusinessMgrCoreWebAdmin.Models;
|
||||
using Sarand.BusinessMgr.Net.Core.Web.Control.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SaBusinessMgrCoreWebAdmin.Controllers
|
||||
namespace Sarand.BusinessMgr.Net.Core.Web.Control.Controllers
|
||||
{
|
||||
public class HomeController : Controller
|
||||
{
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
using System;
|
||||
|
||||
namespace SaBusinessMgrCoreWebAdmin.Models
|
||||
namespace Sarand.BusinessMgr.Net.Core.Web.Control.Models
|
||||
{
|
||||
public class ErrorViewModel
|
||||
{
|
||||
@@ -26,4 +26,27 @@
|
||||
<Folder Include="Control\Consoles\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Update="appsettings.Development.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Update="appsettings.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Update="appsettings.Machine.Sarand107.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
<Content Update="appsettings.Production.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -4,5 +4,4 @@
|
||||
|
||||
<div class="text-center">
|
||||
<h1 class="display-4">Welcome</h1>
|
||||
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
|
||||
</div>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<header>
|
||||
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">SaBusinessMgrCoreWebAdmin</a>
|
||||
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">SaBusinessMgr-Control</a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
|
||||
aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
@@ -21,9 +21,6 @@
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -37,7 +34,7 @@
|
||||
|
||||
<footer class="border-top footer text-muted">
|
||||
<div class="container">
|
||||
© 2021 - SaBusinessMgrCoreWebAdmin - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
|
||||
© 2021 - Sarand BusinessMgr
|
||||
</div>
|
||||
</footer>
|
||||
<script src="~/lib/jquery/dist/jquery.min.js"></script>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
@using SaBusinessMgrCoreWebAdmin
|
||||
@using SaBusinessMgrCoreWebAdmin.Models
|
||||
@using Sarand.BusinessMgr.Net.Core.Web.Control
|
||||
@using Sarand.BusinessMgr.Net.Core.Web.Control.Models
|
||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||
|
||||
@@ -1,9 +1,26 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft": "Warning",
|
||||
"Microsoft.Hosting.Lifetime": "Information"
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft": "Warning",
|
||||
"Microsoft.Hosting.Lifetime": "Information"
|
||||
}
|
||||
},
|
||||
"EmailConfigs": {
|
||||
"SBM-Dev": {
|
||||
"SMTP": {
|
||||
"Server": "smtp.ionos.co.uk",
|
||||
"ServerPort": 587,
|
||||
"UseSSL": true
|
||||
},
|
||||
"Send": {
|
||||
"Using": 2,
|
||||
"UserName": "businessmgr@sarand.com",
|
||||
"Password": "sarand-busmgr-5apP1re"
|
||||
},
|
||||
"Message": {
|
||||
"AddressFrom": "DoNotReply@SaBusinessMgr.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"AppConfigs": {
|
||||
"SaBusMgr-Dev": {
|
||||
"Environments": [ "Development" ],
|
||||
"Instance": "Dev",
|
||||
"ControlDatabase": {
|
||||
"Location": "MsSql:Sarand107\\SQL2016.SaBusinessMgr_Control",
|
||||
"User": "SaBusMgr-Control",
|
||||
"Password": "sbm-c0Ntrul-dev-2021"
|
||||
},
|
||||
"BusMgrDatabases": [
|
||||
{
|
||||
"Code": "Sarand",
|
||||
"Location": "MsSql:Sarand106\\SQL2014.SaBusinessMgr_Sarand"
|
||||
},
|
||||
{
|
||||
"Code": "Cadix",
|
||||
"Location": "MsSql:Sarand107\\SQL2016.SaBusinessMgr_Cadix",
|
||||
"User": "SaBusMgr-Cadix",
|
||||
"Password": "sbm-cul-dev-2021"
|
||||
}
|
||||
],
|
||||
"BusMgrDatabase": {
|
||||
"Code": "Cadix",
|
||||
"Location": "MsSql:Sarand107\\SQL2016.SaBusinessMgr_Cadix",
|
||||
"User": "SaBusMgr-Cadix",
|
||||
"Password": "sbm-cul-dev-2021"
|
||||
},
|
||||
"TemplateDatabase": {
|
||||
"Location": "MsSql:Sarand107\\SQL2016.SaBusinessMgr_Template",
|
||||
"User": "SaBusMgr-Control",
|
||||
"Password": "sbm-c0Ntrul-dev-2021"
|
||||
},
|
||||
"Email": {
|
||||
"Context": "SBM-Dev",
|
||||
"ContactUs": {
|
||||
"AddressesTo": [ "dev@SaBusinessMgr.com" ]
|
||||
}
|
||||
},
|
||||
"Documents": {
|
||||
"RootFolder": "D:\\Sarand\\Projects\\Users\\AHoward\\VS2019\\BusinessMgr\\Docs"
|
||||
},
|
||||
"Logging": {
|
||||
"RootFolder": "D:\\Sarand\\Projects\\Users\\AHoward\\VS2019\\BusinessMgr\\Logs\\WebControl"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"EmailConfigs": {
|
||||
"SBM-Prod": {
|
||||
"SMTP": {
|
||||
"Server": "smtp.ionos.co.uk",
|
||||
"ServerPort": 587,
|
||||
"UseSSL": true
|
||||
},
|
||||
"Send": {
|
||||
"Using": 2,
|
||||
"UserName": "businessmgr@sarand.com",
|
||||
"Password": "sarand-busmgr-5apP1re"
|
||||
},
|
||||
"Message": {
|
||||
"AddressFrom": "DoNotReply@SaBusinessMgr.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user