Saxonite 1.2.10.4

This commit is contained in:
2023-02-07 08:46:58 +00:00
parent c5f8b43087
commit aa2f350a35
11 changed files with 447 additions and 49 deletions
@@ -61,7 +61,7 @@ namespace Saxonite.Net.Core.Web.Online.App
public static SaxApplication_Online AppInstance { get; private set; }
public override ISacsDatabase GetDatabase(SaxSessionContext sessionContext, Sax.Database databaseType)
{
return sessionContexts.GetValue(sessionContext.Index, null)?.Databases.GetValue(databaseType, null);
return sessionContexts.GetValue(sessionContext.Index, null)?.Databases.GetValue(databaseType, null) ?? null;
}
public override String SessionCookieName { get { return Sax.Config.Online.Session.Cookie.Name; } }
// Configuration.
@@ -117,18 +117,10 @@ namespace Saxonite.Net.Core.Web.Online.App
SaLogger.LogFolder = LoggingRootFolder;
LogApplicationStart(fn);
// Configure database connection.
SacsDatabaseConsole.OdbcConfig config = new SacsDatabaseConsole.OdbcConfig();
config.location = AppConfig.Databases.Core.Location;
config.user = AppConfig.Databases.Core.User;
config.pword = AppConfig.Databases.Core.Password;
SacsDatabase coreDatabase = SacsDatabaseConsole.OpenOdbcDatabase(config);
if (coreDatabase.HasErrorState())
SaLogger.Warn(fn + " Database initialisation error: " + coreDatabase.ErrorStateMessage);
// Session context - only one context available/necessary (for now).
SessionContextData_Online sessionContextData = new SessionContextData_Online(new SaxSessionContext_Web(100, Sax.Application.Online));
sessionContextData.Databases.Add(Sax.Database.Core, coreDatabase);
ConfigureDatabaseConnection(sessionContextData, Sax.Database.Core);
ConfigureDatabaseConnection(sessionContextData, Sax.Database.Support);
sessionContexts.Add(sessionContextData.SessionContext.Index, sessionContextData);
SessionContext = sessionContextData.SessionContext;
@@ -141,6 +133,23 @@ namespace Saxonite.Net.Core.Web.Online.App
}
}
//-------------------------------------------------------------------
private void ConfigureDatabaseConnection(SessionContextData_Online sessionContextData, Sax.Database databaseInstance)
{
String fn = GetType().Name + ".ConfigureDatabaseConnection";
// Configure database connection.
SaxAppConfig.DatabaseConfig databaseConfig = AppConfig.Databases.Databases.GetValue(databaseInstance, new SaxAppConfig.DatabaseConfig());
SacsDatabaseConsole.OdbcConfig config = new SacsDatabaseConsole.OdbcConfig();
config.location = databaseConfig.Location;
config.user = databaseConfig.User;
config.pword = databaseConfig.Password;
SacsDatabase database = SacsDatabaseConsole.OpenOdbcDatabase(config);
if (database.HasErrorState())
SaLogger.Warn(fn + " " + databaseInstance.ToString() + " Database initialisation error: " + database.ErrorStateMessage);
sessionContextData.Databases.Add(databaseInstance, database);
}
//-------------------------------------------------------------------
}
//=======================================================================