diff --git a/SaxoniteCoreUnitTestsOnline/UnitTests/Online/App/SaxApplication_Online_Tester.cs b/SaxoniteCoreUnitTestsOnline/UnitTests/Online/App/SaxApplication_Online_Tester.cs index 3284901..562b6e7 100644 --- a/SaxoniteCoreUnitTestsOnline/UnitTests/Online/App/SaxApplication_Online_Tester.cs +++ b/SaxoniteCoreUnitTestsOnline/UnitTests/Online/App/SaxApplication_Online_Tester.cs @@ -27,7 +27,7 @@ namespace Saxonite.Net.Core.UnitTests.Web.Online.App // Application initialisation currently fails reading configuration. if (SessionContext == null) - SessionContext = new SessionContextData(new SaxSessionContext_Web(100, Sax.Application.Online)).SessionContext; + SessionContext = new SessionContextData_Online(new SaxSessionContext_Web(100, Sax.Application.Online)).SessionContext; } } private static SaxApplication_Online_Test app; diff --git a/SaxoniteCoreWeb/Base/App/SaxAppConfig.cs b/SaxoniteCoreWeb/Base/App/SaxAppConfig.cs index eb7aabf..10c5d47 100644 --- a/SaxoniteCoreWeb/Base/App/SaxAppConfig.cs +++ b/SaxoniteCoreWeb/Base/App/SaxAppConfig.cs @@ -1,4 +1,5 @@ using Microsoft.Extensions.Configuration; +using Sarand.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Utils; using Saxonite.Net.Standard.Base.App; @@ -17,7 +18,7 @@ namespace Saxonite.Net.Core.Web.Base.App //--------------------------------------------------------------- // Construction. - public SaxAppConfig (String context, ConfigurationSection configSection, SaxAppConfig defaultConfig) + public SaxAppConfig(String context, ConfigurationSection configSection, SaxAppConfig defaultConfig) { Context = context; populateDefaults(defaultConfig); @@ -99,7 +100,7 @@ namespace Saxonite.Net.Core.Web.Base.App Logging.RootFolder = StringUtil.OnEmpty(logging["RootFolder"], Logging.RootFolder); } // Database. - extractDatabaseConfig(CoreDatabase, configSection.GetSection("CoreDatabase")); + extractDatabasesConfig(Databases, configSection.GetSection("Databases")); // Variants. foreach (ConfigurationSection variantSection in configSection.GetSection("Variants").GetChildren()) { @@ -121,12 +122,28 @@ namespace Saxonite.Net.Core.Web.Base.App foreach (var addressBcc in emailSection.GetSection("AddressesBcc").GetChildren()) config.AddressesBcc.Add(StringUtil.TrimAll(addressBcc.Value)); } - private void extractDatabaseConfig(DatabaseConfig database, IConfigurationSection databaseSection) + private void extractDatabasesConfig(DatabasesConfig databases, IConfigurationSection databasesSection) + { + if (!databasesSection.Exists()) return; + // 'Database' section contains a separate named configuration for each database: 'Core', 'Support' etc. + foreach (var databaseSection in databasesSection.GetChildren()) + extractDatabaseConfig(databases, databaseSection); + } + private void extractDatabaseConfig(DatabasesConfig databases, IConfigurationSection databaseSection) { if (!databaseSection.Exists()) return; + Sax.Database databaseType = EnumUtil.ParseEnum(databaseSection.Key); + if (databaseType <= 0) + { + SaLogger.Warn(GetType().Name + ".extractDatabaseConfig Unrecognised database: " + databaseSection.Key); + return; + } + // Extract database configuration. + DatabaseConfig database = new DatabaseConfig(); database.Location = StringUtil.OnEmpty(databaseSection["Location"], database.Location); database.User = StringUtil.OnEmpty(databaseSection["User"], database.User); database.Password = StringUtil.OnEmpty(databaseSection["Password"], database.Password); + databases.Databases.Add(databaseType, database); } //--------------------------------------------------------------- @@ -200,7 +217,13 @@ namespace Saxonite.Net.Core.Web.Base.App public String User { get; internal set; } public String Password { get; internal set; } } - public DatabaseConfig CoreDatabase { get; } = new DatabaseConfig(); + public class DatabasesConfig + { + public Dictionary Databases { get; } = new Dictionary(); + public DatabaseConfig Core { get { return Databases.GetValue(Sax.Database.Core, new DatabaseConfig()); } } + public DatabaseConfig Support { get { return Databases.GetValue(Sax.Database.Support, new DatabaseConfig()); } } + } + public DatabasesConfig Databases { get; } = new DatabasesConfig(); // Documents. public class DocumentsConfig { diff --git a/SaxoniteCoreWeb/Base/App/SaxApplication_Web.cs b/SaxoniteCoreWeb/Base/App/SaxApplication_Web.cs index 2da2629..7b6763a 100644 --- a/SaxoniteCoreWeb/Base/App/SaxApplication_Web.cs +++ b/SaxoniteCoreWeb/Base/App/SaxApplication_Web.cs @@ -23,6 +23,18 @@ namespace Saxonite.Net.Core.Web.Base.App // Data members. protected Sax.InstanceType instanceType; protected String environmentName = ""; + // Session context. + protected class SessionContextData_Web + { + public SessionContextData_Web(SaxSessionContext_Web sessionContext) + { + SessionContext = sessionContext; + } + public SaxSessionContext_Web SessionContext { get; } + public Dictionary Databases { get; } = new Dictionary(); + public ISacsDatabase CoreDatabase { get { return Databases.GetValue(Sax.Database.Core, null); } } + public ISacsDatabase SupportDatabase { get { return Databases.GetValue(Sax.Database.Support, null); } } + } //------------------------------------------------------------------- // Protected construction. @@ -47,7 +59,7 @@ namespace Saxonite.Net.Core.Web.Base.App public abstract SaxAppConfig AppConfig { get; } public override SaxConsoleHelper ConsoleHelper { get { return ConsoleHelper_Web; } } public SaxConsoleHelper_Web ConsoleHelper_Web { get; protected set; } - public override IDatabaseInfo CreateCoreDbInfo(SaxSessionContext sessionContext) { return new DbDataItem.DatabaseInfo(GetCoreDatabase(sessionContext)); } + public override IDatabaseInfo CreateDbInfo(SaxSessionContext sessionContext, Sax.Database databaseType) { return new DbDataItem.DatabaseInfo(GetDatabase(sessionContext, databaseType)); } // Configuration. public IConfiguration Configuration { get; protected set; } public IConfiguration SaxConfiguration { get; protected set; } @@ -63,7 +75,10 @@ namespace Saxonite.Net.Core.Web.Base.App applicationParams.Add("Instance", InstanceType.ToString() + (!StringUtil.IsEmpty(AppConfig.Instance) ? " [" + AppConfig.Instance + "]" : "")); applicationParams.Add("Configuration", SaxSystem.DebugMode ? "Debug" : "Release"); applicationParams.Add("Environment", EnvironmentName); - applicationParams.Add("Database", AppConfig.CoreDatabase.Location); + if (!StringUtil.IsBlank(AppConfig.Databases.Core.Location)) + applicationParams.Add("Database - Core", AppConfig.Databases.Core.Location); + if (!StringUtil.IsBlank(AppConfig.Databases.Support.Location)) + applicationParams.Add("Database - Support", AppConfig.Databases.Support.Location); applicationParams.Add("Application root", SaxSystem.ApplicationFolder); if (!StringUtil.IsEmpty(AppConfig.Documents.RootFolder)) applicationParams.Add("Documents root", AppConfig.Documents.RootFolder); diff --git a/SaxoniteCoreWeb/Base/Consoles/SaxActivityConsole_Web.cs b/SaxoniteCoreWeb/Base/Consoles/SaxActivityConsole_Web.cs index 4503c39..36b6878 100644 --- a/SaxoniteCoreWeb/Base/Consoles/SaxActivityConsole_Web.cs +++ b/SaxoniteCoreWeb/Base/Consoles/SaxActivityConsole_Web.cs @@ -86,7 +86,7 @@ namespace Saxonite.Net.Core.Web.Base.Consoles // Query the Activity Index. // NB An item may have multiple index entries but these wil only differe by Sport and/or Region. // User, Organisation Effective & Expiry dates wil be the same for all entries for an item. - ISacsDatabase db = SaxGlobals.App.GetCoreDatabase(SessionContext); + ISacsDatabase db = SaxGlobals.App.GetDatabase(SessionContext, Sax.Database.Core); DbQuery query = new DbQuery(db.DbmsType); query.Tables.Add(SaxDbDfn_Core.GetTableName(SaxDbDfn_Core.TableIdx.ActivityIndex, false), alias_ActivityIndex); query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.ActivityIndex_ItemType, alias_ActivityIndex), colItemType.DataName); @@ -479,7 +479,7 @@ namespace Saxonite.Net.Core.Web.Base.Consoles String filter = SaxDbDfn_Core.GetColumnName(SaxDbDfn_Core.ColumnIdx.ActivityIndex_ItemType) + "=" + itemId.Type + " And " + SaxDbDfn_Core.GetColumnName(SaxDbDfn_Core.ColumnIdx.ActivityIndex_ItemId) + "=" + itemId.Id.ToLong(); - ISacsDatabase db = SaxGlobals.App.GetCoreDatabase(SessionContext); + ISacsDatabase db = CoreDatabase; int recordsDeleted = db.ExecuteDelete(tableName, filter); if (recordsDeleted > 0) SaLogger.Info(fn + " Records deleted: " + recordsDeleted + ". Filter: " + filter, true); @@ -529,7 +529,7 @@ namespace Saxonite.Net.Core.Web.Base.Consoles }; String sql = query.Concat("\n"); //SaLogger.Debug(fn + " Query:\n" + sql); - ISacsDatabase db = SaxGlobals.App.GetCoreDatabase(SessionContext); + ISacsDatabase db = CoreDatabase; int rows = db.ExecuteNonQuery(sql); if (db.HasErrorState()) SaLogger.Debug(fn + " Database error: " + db.ErrorStateMessage); diff --git a/SaxoniteCoreWeb/Base/Models/SaxModel_Base.cs b/SaxoniteCoreWeb/Base/Models/SaxModel_Base.cs index a70cabf..c1e64b1 100644 --- a/SaxoniteCoreWeb/Base/Models/SaxModel_Base.cs +++ b/SaxoniteCoreWeb/Base/Models/SaxModel_Base.cs @@ -164,8 +164,8 @@ namespace Saxonite.Net.Core.Web.Base.Models } } // Additional includes. - public List AdditionalFiles_CSS { get; set; } = new List(); - public List AdditionalFiles_JS { get; set; } = new List(); + public HashSet AdditionalFiles_CSS { get; set; } = new HashSet(StringComparer.OrdinalIgnoreCase); + public HashSet AdditionalFiles_JS { get; set; } = new HashSet(StringComparer.OrdinalIgnoreCase); //------------------------------------------------------------------- // Redirection locations. diff --git a/SaxoniteCoreWebAdmin/Admin/App/SaxApplication_Admin.cs b/SaxoniteCoreWebAdmin/Admin/App/SaxApplication_Admin.cs index 71cd833..0c6eb41 100644 --- a/SaxoniteCoreWebAdmin/Admin/App/SaxApplication_Admin.cs +++ b/SaxoniteCoreWebAdmin/Admin/App/SaxApplication_Admin.cs @@ -35,16 +35,11 @@ namespace Saxonite.Net.Core.Web.Admin.App private Dictionary appConfigs = new Dictionary(); private Dictionary emailConfigs = new Dictionary(); // Session contexts. - private class SessionContextData + private class SessionContextData_Admin : SessionContextData_Web { - public SessionContextData(SaxSessionContext_Web sessionContext) - { - SessionContext = sessionContext; - } - public SaxSessionContext_Web SessionContext { get; } - public ISacsDatabase CoreDatabase { get; set; } + public SessionContextData_Admin(SaxSessionContext_Web sessionContext) : base(sessionContext) { } } - private readonly Dictionary sessionContexts = new Dictionary(); + private readonly Dictionary sessionContexts = new Dictionary(); //------------------------------------------------------------------- // Construction. @@ -70,9 +65,9 @@ namespace Saxonite.Net.Core.Web.Admin.App // Properties. public static SaxApplication_Admin AppInstance { get; private set; } public List Messages { get; } = new List(); - public override ISacsDatabase GetCoreDatabase(SaxSessionContext sessionContext) + public override ISacsDatabase GetDatabase(SaxSessionContext sessionContext, Sax.Database databaseType) { - return sessionContexts.GetValue(sessionContext.Index, null)?.CoreDatabase; + return sessionContexts.GetValue(sessionContext.Index, null)?.Databases.GetValue(databaseType, null); } public override String SessionCookieName { get { return Sax.Config.Admin.Session.Cookie.Name; } } // Configuration. @@ -131,26 +126,15 @@ namespace Saxonite.Net.Core.Web.Admin.App SaLogger.LogFolder = LoggingRootFolder; LogApplicationStart(fn); - //Messages.Add($"Database location: {AppConfig.CoreDatabase.Location}"); - //Messages.Add($"LoggingRootFolder: {SaLogger.LogFolder}"); - - // Configure database connection. - SacsDatabaseConsole.OdbcConfig config = new SacsDatabaseConsole.OdbcConfig(); - config.location = AppConfig.CoreDatabase.Location; - config.user = AppConfig.CoreDatabase.User; - config.pword = AppConfig.CoreDatabase.Password; - SacsDatabase coreDatabase = SacsDatabaseConsole.OpenOdbcDatabase(config); - if (coreDatabase.HasErrorState()) - SaLogger.Warn(fn + " Database initialisation error: " + coreDatabase.ErrorStateMessage); - //Messages.Add($"Database location: {AppConfig.CoreDatabase.Location}"); //Messages.Add($"LoggingRootFolder: {SaLogger.LogFolder}"); //Messages.Add($"OdbcDrivers: {OdbcUtil.GetOdbcDriverNames().Concat(", ")}"); //Messages.Add($"DbConnection: {coreDatabase.ConnectionString}"); // Session context - only one context available/necessary (for now). - SessionContextData sessionContextData = new SessionContextData(new SaxSessionContext_Web(100, Sax.Application.Admin)); - sessionContextData.CoreDatabase = coreDatabase; + SessionContextData_Admin sessionContextData = new SessionContextData_Admin(new SaxSessionContext_Web(100, Sax.Application.Admin)); + ConfigureDatabaseConnection(sessionContextData, Sax.Database.Core); + ConfigureDatabaseConnection(sessionContextData, Sax.Database.Support); sessionContexts.Add(sessionContextData.SessionContext.Index, sessionContextData); SessionContext = sessionContextData.SessionContext; } @@ -161,22 +145,46 @@ namespace Saxonite.Net.Core.Web.Admin.App // Occasional startup processing. if (generateDatabaseDefinitions) - GenerateDatabaseDefinition(SessionContext); + GenerateDatabaseDefinitions(SessionContext); if (populateRegions) populateRegionsFromDataFile(SessionContext); } - //------------------------------------------------------------------- - private void GenerateDatabaseDefinition(SaxSessionContext sessionContext) + private void ConfigureDatabaseConnection(SessionContextData_Admin 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); + } + + //------------------------------------------------------------------- + private void GenerateDatabaseDefinitions(SaxSessionContext sessionContext) + { + // Generate database definitions. if (!generateDatabaseDefinitions || !SaxSystem.DebugMode || SessionContext == null) return; if (!StringUtil.EmptyOnNull(EnvironmentName).EqualsCI("Development")) return; - ISacsDatabase coreDatabase = GetCoreDatabase(sessionContext); - if (coreDatabase == null || StringUtil.IsEmpty(coreDatabase.ConnectionString)) return; - // Generate database definitions. - SaxDbDfnGenerator.Generate(SaxDbDfnGenerator.DatabaseInstance.Core, coreDatabase.ConnectionString); - //SaUpdateLogDbDfnGenerator.Generate(database.ConnectionString); + // Core database. + ISacsDatabase coreDatabase = GetDatabase(sessionContext, Sax.Database.Core); + if (coreDatabase != null && !StringUtil.IsEmpty(coreDatabase.ConnectionString)) + { + SaxDbDfnGenerator.Generate(Sax.Database.Core, coreDatabase.ConnectionString); + //SaUpdateLogDbDfnGenerator.Generate(database.ConnectionString); + } + + // Support database. + ISacsDatabase supportDatabase = GetDatabase(sessionContext, Sax.Database.Support); + if (supportDatabase != null && !StringUtil.IsEmpty(supportDatabase.ConnectionString)) + SaxDbDfnGenerator.Generate(Sax.Database.Support, supportDatabase.ConnectionString); } //------------------------------------------------------------------- diff --git a/SaxoniteCoreWebAdmin/Admin/Controllers/HomeController-Ajax-ApplicationStats.cs b/SaxoniteCoreWebAdmin/Admin/Controllers/HomeController-Ajax-ApplicationStats.cs index 7312e3b..a63e505 100644 --- a/SaxoniteCoreWebAdmin/Admin/Controllers/HomeController-Ajax-ApplicationStats.cs +++ b/SaxoniteCoreWebAdmin/Admin/Controllers/HomeController-Ajax-ApplicationStats.cs @@ -68,7 +68,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers responseData.Stats.Organisation.Caption = Localiser["caption.organisations"]; // Core Database connection. - ISacsDatabase db = SaxGlobals.App.GetCoreDatabase(SessionContext); + ISacsDatabase db = Internals.CoreDatabase; // Query to count items awaiting activation. Dictionary tableRowCounts = new Dictionary(StringComparer.OrdinalIgnoreCase); diff --git a/SaxoniteCoreWebAdmin/Admin/Controllers/SystemController-Ajax-Database.cs b/SaxoniteCoreWebAdmin/Admin/Controllers/SystemController-Ajax-Database.cs index 856f8c9..44d6196 100644 --- a/SaxoniteCoreWebAdmin/Admin/Controllers/SystemController-Ajax-Database.cs +++ b/SaxoniteCoreWebAdmin/Admin/Controllers/SystemController-Ajax-Database.cs @@ -65,7 +65,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers { // Core Database connection. - ISacsDatabase db = SaxGlobals.App.GetCoreDatabase(SessionContext); + ISacsDatabase db = Internals.CoreDatabase; // Database table row counts. Dictionary tableRowCounts = new Dictionary(StringComparer.OrdinalIgnoreCase); @@ -147,7 +147,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers { // Core Database connection. - ISacsDatabase db = SaxGlobals.App.GetCoreDatabase(SessionContext); + ISacsDatabase db = Internals.CoreDatabase; // Retrieve XML database schema definition. var assembly = typeof(SaxSystem_Dbas).GetTypeInfo().Assembly; @@ -345,7 +345,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers return Json(responseData.SetMessage(messageTitle, "Table name must be supplied.")); // Core Database connection. - ISacsDatabase db = SaxGlobals.App.GetCoreDatabase(SessionContext); + ISacsDatabase db = Internals.CoreDatabase; // Table definition. DbDfnTable tableDfn = db.GetTableDfn(model.DatabaseTable.Name, true); diff --git a/SaxoniteCoreWebAdmin/Admin/Models/Model_Organisation.cs b/SaxoniteCoreWebAdmin/Admin/Models/Model_Organisation.cs index 7b30a0f..6e34229 100644 --- a/SaxoniteCoreWebAdmin/Admin/Models/Model_Organisation.cs +++ b/SaxoniteCoreWebAdmin/Admin/Models/Model_Organisation.cs @@ -211,7 +211,7 @@ namespace Saxonite.Net.Core.Web.Admin.Models if (ContactData.Methods.Count != ContactMethods.ToInt()) { SaLogger.Warn(fn + " Inconsistent Contact Methods received. Expected: " + ContactMethods + ". Received: " + ContactData.Methods.Count); - responseData.SetMessage("caption.contact.method", "System error"); + responseData.SetMessage(Localiser["caption.contact.method"], "System error"); } } diff --git a/SaxoniteCoreWebAdmin/Localisation/SaxAdminProperties.resx b/SaxoniteCoreWebAdmin/Localisation/SaxAdminProperties.resx index fe53973..b844789 100644 --- a/SaxoniteCoreWebAdmin/Localisation/SaxAdminProperties.resx +++ b/SaxoniteCoreWebAdmin/Localisation/SaxAdminProperties.resx @@ -690,12 +690,12 @@ Sports + + Core Database Schema + System - Database - - Database Schema - System - Logs diff --git a/SaxoniteCoreWebAdmin/Properties/launchSettings.json b/SaxoniteCoreWebAdmin/Properties/launchSettings.json index bb24730..1db5bc0 100644 --- a/SaxoniteCoreWebAdmin/Properties/launchSettings.json +++ b/SaxoniteCoreWebAdmin/Properties/launchSettings.json @@ -1,15 +1,8 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:50421", - "sslPort": 44351 - } - }, +{ "profiles": { "IIS Express": { "commandName": "IISExpress", + "workingDirectory": "/", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", @@ -19,11 +12,19 @@ "SaxoniteCoreWebAdmin": { "commandName": "Project", "launchBrowser": true, - "applicationUrl": "https://localhost:5001;http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" - } + }, + "applicationUrl": "https://localhost:5001;http://localhost:5000" + } + }, + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:50421", + "sslPort": 44351 } } -} +} \ No newline at end of file diff --git a/SaxoniteCoreWebAdmin/Views/Common/ContactMethods.cshtml b/SaxoniteCoreWebAdmin/Views/Common/ContactMethods.cshtml index c64c6c8..071d406 100644 --- a/SaxoniteCoreWebAdmin/Views/Common/ContactMethods.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Common/ContactMethods.cshtml @@ -1,11 +1,11 @@ @model SaxModel_Admin @inject SaxLocaliser Localiser - -@if (!Model.RegisterView("Views/Common/ContactMethods")) return; - - - +@{ + // Ensure view is only included once in page. + if (!Model.RegisterView("Views/Common/ContactMethods")) return; + // Scripts. + Model.AdditionalFiles_JS.Add("js/sax-cnt-mth.js"); +}
diff --git a/SaxoniteCoreWebAdmin/Views/Common/ResultsPaging.cshtml b/SaxoniteCoreWebAdmin/Views/Common/ResultsPaging.cshtml index d80aced..975cf31 100644 --- a/SaxoniteCoreWebAdmin/Views/Common/ResultsPaging.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Common/ResultsPaging.cshtml @@ -1,8 +1,12 @@ @model SaxModel_Admin @inject SaxLocaliser Localiser +@{ + // Scripts. + Model.AdditionalFiles_JS.Add("js/sax-res-pag.js"); +} - diff --git a/SaxoniteCoreWebAdmin/Views/Common/SelectCode.cshtml b/SaxoniteCoreWebAdmin/Views/Common/SelectCode.cshtml index c201668..0c02aac 100644 --- a/SaxoniteCoreWebAdmin/Views/Common/SelectCode.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Common/SelectCode.cshtml @@ -1,12 +1,13 @@ @model SaxModel_Admin @inject SaxLocaliser Localiser - -@if (!Model.RegisterView("Views/Common/SelectCode")) return; +@{ + // Ensure view is only included once in page. + if (!Model.RegisterView("Views/Common/SelectCode")) return; + // Scripts. + Model.AdditionalFiles_JS.Add("js/sax-sel-cod.js"); +} - -
diff --git a/SaxoniteCoreWebAdmin/Views/Common/SelectItem.cshtml b/SaxoniteCoreWebAdmin/Views/Common/SelectItem.cshtml index 5a6254e..437dee7 100644 --- a/SaxoniteCoreWebAdmin/Views/Common/SelectItem.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Common/SelectItem.cshtml @@ -1,7 +1,11 @@ @model SaxModel_Admin @inject SaxLocaliser Localiser - -@if (!Model.RegisterView("Views/Common/SelectItem")) return; +@{ + // Ensure view is only included once in page. + if (!Model.RegisterView("Views/Common/SelectItem")) return; + // Scripts. + Model.AdditionalFiles_JS.Add("js/sax-sel-itm.js"); +} @@ -46,6 +50,4 @@
- - diff --git a/SaxoniteCoreWebAdmin/Views/Common/SelectOrganisation.cshtml b/SaxoniteCoreWebAdmin/Views/Common/SelectOrganisation.cshtml index 47f7dab..d3b1d27 100644 --- a/SaxoniteCoreWebAdmin/Views/Common/SelectOrganisation.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Common/SelectOrganisation.cshtml @@ -1,11 +1,15 @@ @model SaxModel_Admin @inject SaxLocaliser Localiser - -@if (!Model.RegisterView("Views/Common/SelectOrganisation")) return; +@{ + // Ensure view is only included once in page. + if (!Model.RegisterView("Views/Common/SelectOrganisation")) return; + // Scripts. + Model.AdditionalFiles_JS.Add("js/sax-sel-org.js"); +} - diff --git a/SaxoniteCoreWebAdmin/Views/Home/Index.cshtml b/SaxoniteCoreWebAdmin/Views/Home/Index.cshtml index c7ed855..490060e 100644 --- a/SaxoniteCoreWebAdmin/Views/Home/Index.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Home/Index.cshtml @@ -55,7 +55,7 @@
-
@Localiser["system.caption.database.schema"]
+
@Localiser["system.caption.core.database.schema"]
diff --git a/SaxoniteCoreWebAdmin/Views/Organisation/Panel-Organisation-Address.cshtml b/SaxoniteCoreWebAdmin/Views/Organisation/Panel-Organisation-Address.cshtml index ebfe9bb..a16fb48 100644 --- a/SaxoniteCoreWebAdmin/Views/Organisation/Panel-Organisation-Address.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Organisation/Panel-Organisation-Address.cshtml @@ -2,10 +2,12 @@ @inject SaxLocaliser Localiser @{ /* Organisations - Organisation Address dialog panel */ + // Ensure view is only included once in page. + if (!Model.RegisterView("Views/Organisation/Panel-Organisation-Address")) return; + // Scripts. + Model.AdditionalFiles_JS.Add("js/sax-org-add.js"); } - -
diff --git a/SaxoniteCoreWebAdmin/Views/Organisation/Panel-Organisation-Images.cshtml b/SaxoniteCoreWebAdmin/Views/Organisation/Panel-Organisation-Images.cshtml index b1bb0d6..f3ba160 100644 --- a/SaxoniteCoreWebAdmin/Views/Organisation/Panel-Organisation-Images.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Organisation/Panel-Organisation-Images.cshtml @@ -2,6 +2,10 @@ @inject SaxLocaliser Localiser @{ /* Organisations - Organisation images dialog panel */ + // Ensure view is only included once in page. + if (!Model.RegisterView("Views/Organisation/Panel-Organisation-Images")) return; + // Scripts. + Model.AdditionalFiles_JS.Add("js/sax-org-img.js"); } - - diff --git a/SaxoniteCoreWebOnline/Views/Account/Profile-Organisations.cshtml b/SaxoniteCoreWebOnline/Views/Account/Profile-Organisations.cshtml index e3b4bd1..29e7cb0 100644 --- a/SaxoniteCoreWebOnline/Views/Account/Profile-Organisations.cshtml +++ b/SaxoniteCoreWebOnline/Views/Account/Profile-Organisations.cshtml @@ -1,5 +1,12 @@ @model Model_Account @inject SaxLocaliser Localiser +@{ + // Ensure view is only included once in page. + if (!Model.RegisterView("Views/Account/Profile-Organisations")) return; + // Scripts. + Model.AdditionalFiles_JS.Add("js/sax-pro-org.js"); +} + @* Profile Organisations *@
@@ -134,5 +141,3 @@
- - diff --git a/SaxoniteCoreWebOnline/Views/Account/Profile-SportExperiences.cshtml b/SaxoniteCoreWebOnline/Views/Account/Profile-SportExperiences.cshtml index c74be06..fce15ae 100644 --- a/SaxoniteCoreWebOnline/Views/Account/Profile-SportExperiences.cshtml +++ b/SaxoniteCoreWebOnline/Views/Account/Profile-SportExperiences.cshtml @@ -1,7 +1,13 @@ @model SaxModel_Online @inject SaxLocaliser Localiser +@{ + /* Sport Experience panel - list experience for sport */ + // Ensure view is only included once in page. + if (!Model.RegisterView("Views/Account/Profile-SportExperiences")) return; + // Scripts. + Model.AdditionalFiles_JS.Add("js/sax-spt-exp.js"); +} -@* Sport Experience panel - list experience for sport *@ + @* Contact controls *@ + + @* Sport Participation *@
@@ -161,4 +171,3 @@ sax.dlg.title.addUserSport = '@Localiser.GetJavascriptText("account.caption.profile.sport.add")'; sax.dlg.title.updateUserSport = '@Localiser.GetJavascriptText("account.caption.profile.sport.update")'; - diff --git a/SaxoniteCoreWebOnline/Views/Account/Sports.cshtml b/SaxoniteCoreWebOnline/Views/Account/Sports.cshtml index 53dc0ab..b857056 100644 --- a/SaxoniteCoreWebOnline/Views/Account/Sports.cshtml +++ b/SaxoniteCoreWebOnline/Views/Account/Sports.cshtml @@ -4,8 +4,10 @@ ViewData["Title"] = "Profile - Sports"; } - + - + - + + + diff --git a/SaxoniteCoreWebOnline/Views/Common/CodeSelect.cshtml b/SaxoniteCoreWebOnline/Views/Common/CodeSelect.cshtml index beab9b8..2b4bd20 100644 --- a/SaxoniteCoreWebOnline/Views/Common/CodeSelect.cshtml +++ b/SaxoniteCoreWebOnline/Views/Common/CodeSelect.cshtml @@ -1,13 +1,14 @@ @model SaxModel_Online @inject SaxLocaliser Localiser - -@if (!Model.RegisterView("Views/Common/CodeSelect")) return; +@{ + /* Online Code Select */ + // Ensure view is only included once in page. + if (!Model.RegisterView("Views/Common/CodeSelect")) return; + // Scripts. + Model.AdditionalFiles_JS.Add("js/sax-code-sel.js"); +} - - -
@* Filter *@ diff --git a/SaxoniteCoreWebOnline/Views/Common/ContactMethods.cshtml b/SaxoniteCoreWebOnline/Views/Common/ContactMethods.cshtml index 85b9e5c..4cfc921 100644 --- a/SaxoniteCoreWebOnline/Views/Common/ContactMethods.cshtml +++ b/SaxoniteCoreWebOnline/Views/Common/ContactMethods.cshtml @@ -1,11 +1,12 @@ @model SaxModel_Online @inject SaxLocaliser Localiser - -@if (!Model.RegisterView("Views/Common/ContactMethods")) return; - - - +@{ + /* Online Contact Methods */ + // Ensure view is only included once in page. + if (!Model.RegisterView("Views/Common/ContactMethods")) return; + // Scripts. + Model.AdditionalFiles_JS.Add("js/sax-cnt-mth.js"); +}
@@ -20,7 +21,7 @@
- +
diff --git a/SaxoniteCoreWebOnline/Views/Common/OrganisationControls-Contact.cshtml b/SaxoniteCoreWebOnline/Views/Common/OrganisationControls-Contact.cshtml index 257347b..fdfc5c5 100644 --- a/SaxoniteCoreWebOnline/Views/Common/OrganisationControls-Contact.cshtml +++ b/SaxoniteCoreWebOnline/Views/Common/OrganisationControls-Contact.cshtml @@ -3,6 +3,8 @@ @inject SaxLocaliser Localiser @* NB Organisation contact controls may be present more than once on a page, eg. Profile Organisation. *@ +@if (!Model.RegisterView("Views/Common/OrganisationControls-Contact")) return; + + +@* Sport Contacts *@ +
+ +
+
+
+
+ +
+
+
+ @* Action to add new contact. *@ +
+
@(Localiser[
+
+
+
+
+
+
+ @* List of existing contacts with actions to edit/remove. *@ +
+
+
+ + + + + + + +
+ + + + +
+
@(Localiser[
+
@(Localiser[
+
+
+
+
+
+
+
+
diff --git a/SaxoniteCoreWebOnline/Views/Common/SportSelect.cshtml b/SaxoniteCoreWebOnline/Views/Common/SportSelect.cshtml index c908da5..fa7da5f 100644 --- a/SaxoniteCoreWebOnline/Views/Common/SportSelect.cshtml +++ b/SaxoniteCoreWebOnline/Views/Common/SportSelect.cshtml @@ -1,12 +1,14 @@ @model SaxModel_Online @inject SaxLocaliser Localiser - -@if (!Model.RegisterView("Views/Common/SportSelect")) return; +@{ + /* Online Sport Select */ + // Ensure view is only included once in page. + if (!Model.RegisterView("Views/Common/SportSelect")) return; + // Scripts. + Model.AdditionalFiles_JS.Add("js/sax-spt-sel.js"); +} - -
@@ -49,5 +51,3 @@
- - diff --git a/SaxoniteCoreWebOnline/appsettings.Machine.Sarand110.json b/SaxoniteCoreWebOnline/appsettings.Machine.Sarand110.json index 4ccc7e2..6d62006 100644 --- a/SaxoniteCoreWebOnline/appsettings.Machine.Sarand110.json +++ b/SaxoniteCoreWebOnline/appsettings.Machine.Sarand110.json @@ -3,10 +3,17 @@ "Saxonite-Dev": { "Environments": [ "Development" ], "Instance": "Dev", - "CoreDatabase": { - "Location": "MsSql:Sarand110\\SQL2016.Saxonite_Dev", - "User": "saxonite", - "Password": "sax-dev-2021" + "Databases": { + "Core": { + "Location": "MsSql:Sarand110\\SQL2016.Saxonite_Core_Dev", + "User": "saxonite", + "Password": "sax-dev-2021" + }, + "Support": { + "Location": "MsSql:Sarand110\\SQL2016.Saxonite_Support_Dev", + "User": "saxonite", + "Password": "sax-dev-2021" + } }, "Email": { "Context": "SAX-SF-Dev", @@ -24,10 +31,12 @@ "Saxonite-Test": { "Environments": [ "Production" ], "Instance": "QC", - "CoreDatabase": { - "Location": "MsSql:Sarand106\\SQL2014.Saxonite_Dev", - "User": "saxonite", - "Password": "sax-dev-2021" + "Databases": { + "Core": { + "Location": "MsSql:Sarand110\\SQL2016.Saxonite_Core_Dev", + "User": "saxonite", + "Password": "sax-dev-2021" + } }, "Email": { "Context": "SAX-SF-Dev", diff --git a/SaxoniteCoreWebOnline/appsettings.Machine.Sarand601.json b/SaxoniteCoreWebOnline/appsettings.Machine.Sarand601.json index 137cc57..34b4207 100644 --- a/SaxoniteCoreWebOnline/appsettings.Machine.Sarand601.json +++ b/SaxoniteCoreWebOnline/appsettings.Machine.Sarand601.json @@ -3,10 +3,12 @@ "SAX-Prod": { "Environments": [ "Production" ], "Instance": "", - "CoreDatabase": { - "Location": "MsSql:.\\SQLExpress2012.Saxonite_Core_Demo", - "User": "sax-demo-user", - "Password": "sax-demo-202105" + "Databases": { + "Core": { + "Location": "MsSql:.\\SQLExpress2012.Saxonite_Core_Demo", + "User": "sax-demo-user", + "Password": "sax-demo-202105" + } }, "Security": { "Password": { diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-account.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-account.js index 6bc953f..1e1362a 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-account.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-account.js @@ -1,7 +1,6 @@ /* * Account page scripts. */ - (function (win, doc, undef) { //-------------------------------------------------------------- @@ -61,7 +60,5 @@ setTimeout(sax.refreshProfile, 200); }); //-------------------------------------------------------------- - }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-art.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-art.js index 8f3e926..e88686b 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-art.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-art.js @@ -1,7 +1,6 @@ /* * Article page scripts. */ - (function (win, doc, undef) { "use strict"; @@ -10,7 +9,6 @@ let am = sax.articleMgt = { ajax: {}, data: {}, $pnl: {}, $frm: {}, $dlg: {} }; let $pnl = am.$pnl, $frm = am.$frm, $dlg = am.$dlg; let ac = sax.articleContent = sax.articleContent || {}; - //-------------------------------------------------------------- am.refreshResults = function (delay) { @@ -77,7 +75,6 @@ $bgr.toggle(!!$('.sax-dropdown-menu .sax-dropdown-item', $item).length); return $item; } - //-------------------------------------------------------------- am.getFilterDropdownTemplate = function () { @@ -107,7 +104,6 @@ { return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls); } - //-------------------------------------------------------------- am.selectFilterOrganisation = function () { @@ -126,7 +122,6 @@ $('#frmArticleFilter #ifFilterOrganisation').val(name); am.refreshResults(50); } - //-------------------------------------------------------------- am.createItem = function () { @@ -169,7 +164,6 @@ sax.openDialog($dlg.article, 800, 1200); $('.ArticleHeadline.sax-input,.ArticleSummary.sax-textarea', $frm.article).trigger("input"); } - //-------------------------------------------------------------- am.updateItem = function (item, $item) { @@ -205,7 +199,6 @@ am.populateArticleContent(item.content); am.openArticleDialog(sax.dlg.title.updateArticle); } - //-------------------------------------------------------------- am.switchArticleHeader = function () { @@ -215,7 +208,6 @@ { $('.sax-article').removeClass('ArticleHeader').addClass('ArticleContent'); } - //-------------------------------------------------------------- am.selectArticleSport = function () { @@ -226,7 +218,6 @@ sax.clearControlError($('#ifArticleSportId').val(sport.id)); $('#ifArticleSportCaption').val(sport ? sport.name : ''); } - //-------------------------------------------------------------- am.selectArticleRegion = function () { @@ -237,7 +228,6 @@ sax.clearControlError($('#ifArticleRegionId').val(region.id)); $('#ifArticleRegionCaption').val(region ? region.name : ''); } - //-------------------------------------------------------------- am.segmentId = function (idx) { @@ -460,7 +450,6 @@ $dlg.selectArticleImage.dialog('close'); } } - //-------------------------------------------------------------- am.storeItem = function () { @@ -487,14 +476,12 @@ } am.populateItem($item, item) } - //-------------------------------------------------------------- am.refreshControlInfo = function (ctrl) { let $ctrl = $(ctrl); sax.setAvailableCharsInfo($ctrl, $ctrl.prop('maxlength')); } - //-------------------------------------------------------------- $(function () { @@ -532,7 +519,6 @@ setTimeout(am.refreshResults, 250); }); - + //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-cnt-mth.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-cnt-mth.js index 9ceb376..6259a3c 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-cnt-mth.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-cnt-mth.js @@ -1,13 +1,11 @@ /* * Contact Methods script. */ - (function (win, doc, undef) { "use strict"; let cm = sax.mdl.contactMethods = { fn: {}, data: {}, ajax: {} }; let $dlg = cm.$dlg = {}; - //-------------------------------------------------------------- /* * Config: @@ -19,7 +17,6 @@ */ sax.editContactMethod = cm.fn.edit = function (cfg) { - cm.fn.init(); cm.data.cfg = cfg || {}; cm.$mth.empty(); for (let mth of cfg.methods || []) @@ -29,9 +26,9 @@ } cm.$mth.val(cfg.method).attr('disabled', cfg.method && cm.$mth.val() == cfg.method ? true : null); cm.$val.val(cfg.value); + sax.clearControlErrors($dlg.conMth); sax.openDialog($dlg.conMth, 600, 240); } - //-------------------------------------------------------------- cm.fn.applyChanges = function () { @@ -50,20 +47,16 @@ $dlg.conMth.dialog('close'); if (cm.data.cfg.fnCallback) cm.data.cfg.fnCallback(cm.$mth.val(), $('option:selected', cm.$mth).text(), cm.$val.val()); } - //-------------------------------------------------------------- - cm.fn.init = function () + $(function () { - if ($dlg.conMth) return; var opt = sax.dlgOpts(); opt.buttons[sax.dlg.btn.ok] = function () { cm.fn.applyChanges(); }; opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); }; $dlg.conMth = $('#dlgContactMethod').dialog(opt); cm.$mth = $('.sax-select.ContactMethod', $dlg.conMth); cm.$val = $('.sax-input.ContactValue', $dlg.conMth); - } - + }); //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-code-sel.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-code-sel.js index f0dd00a..c28fdc9 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-code-sel.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-code-sel.js @@ -1,12 +1,10 @@ /* * Code selection. */ - (function (win, doc, undef) { "use strict"; let cs = sax.codeSelect = sax.codeSelect || { fn: {}, $dlg: {} }; - //-------------------------------------------------------------- /* * Code selection config: @@ -23,7 +21,6 @@ cs.fn.openCodeSelect = function (cfg) { //sax.debug('openSelectCode', cfg); - cs.fn.init(); cs.cfg = cfg; cs.selectedCodes = cfg.selectedCodes || []; cs.fn.displayCodes(cfg.codes); @@ -44,6 +41,7 @@ else $codesAvail.append($code); } } + //-------------------------------------------------------------- cs.fn.onClickCode = function (code, $code) { $('.sax-panel-item.Code').removeClass('sel'); @@ -93,6 +91,7 @@ for (const code of codes) $('.sax-panel-item.Code[aria-code="' + code + '"]').addClass('sel'); } + //-------------------------------------------------------------- cs.fn.storeSelectCode = function () { //sax.debug('storeSelectCode', cs.cfg, cs.selectedCodes); @@ -105,19 +104,16 @@ delete cs.cfg; delete cs.selectedCodes; } - //-------------------------------------------------------------- - cs.fn.init = function () + $(function () { - if (!cs.$dlg) return; var opt = sax.dlgOpts(); opt.buttons[sax.dlg.btn.ok] = function () { cs.fn.storeSelectCode(); }; opt.buttons[sax.dlg.btn.cancel] = function () { cs.fn.cleanUp(); $(this).dialog('close'); }; cs.$dlg = $('#dlgCodeSelect').dialog(opt); $('.sax-button.Select', cs.$dlg).on('click', function () { cs.fn.onClickSelect(); }); $('.sax-button.Remove', cs.$dlg).on('click', function () { cs.fn.onClickRemove(); }); - } - + }); + //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-home.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-home.js index 0e664d6..059218a 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-home.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-home.js @@ -1,11 +1,9 @@ /* * Home scripts. */ - (function (win, doc, undef) { "use strict"; - //-------------------------------------------------------------- sax.refreshResults = function (delay) { @@ -57,7 +55,6 @@ $('.ActivityPublishedOn', $item).text(item.publishedOnFmt); $item.on('click', '.sax-header .ActivityCaption', function () { sax.expandActivity(activity); }).on('dblclick', '.sax-content', function () { sax.expandActivity(activity); }); $('.sax-panel-messages', sax.$pnl.results).hide().empty(); - } sax.refreshItem = function (activity) { @@ -71,13 +68,11 @@ for (let i = 1; i <= Math.min(5, activity.item.reaction); i++) $react.append($('').prop('src', '../img/icon/star-gold-16.png')); } - //-------------------------------------------------------------- sax.getActivityTemplate = function () { return $('.sax-panel-item-template .sax-panel-item.Activity', sax.$pnl.results).clone(); } - //-------------------------------------------------------------- sax.expandActivity = function (activity) { @@ -148,7 +143,6 @@ sax.setActivityReactionButton(sax.activity.item.reaction); sax.openDialog(sax.$dlg.activity, 800, dlgH); } - //-------------------------------------------------------------- let selectedClass = 'sax-selected'; sax.setActivityReactionButton = function (r) @@ -172,7 +166,6 @@ sax.ajax.activityReact = sax.ajax.activityReact || { url: sax.url.base + 'Activity/Ajax/React', formId: 'frmActivityReact', callbackFn: fn, noWaitIcon: true }; sax.doAjaxRequest(sax.ajax.activityReact, 20); } - //-------------------------------------------------------------- $(function () { @@ -188,8 +181,6 @@ setTimeout(sax.refreshResults, 250); }); - //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-main.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-main.js index e658b2f..12e5bac 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-main.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-main.js @@ -1,12 +1,10 @@ /* * Main scripts. */ - (function (win, doc, undef) { "use strict"; win.sax = win.sax || {}; - //-------------------------------------------------------------- // Utilities. sax.isDef = function (obj) @@ -73,7 +71,6 @@ evt.stopPropagation(); } sax.debug = sax.debugMode ? win.console.log.bind(win.console) : function () { }; - //-------------------------------------------------------------- sax.compareCI = function (a, b) { @@ -88,7 +85,6 @@ this.sort(function (a, b) { return sax.compareCI(a, b); }); return this; }; - //-------------------------------------------------------------- sax.setOddDataRowClass = function (rowSel, cName) { @@ -142,7 +138,6 @@ if (sax.mdl.resultsPaging.fn.refreshPaging) sax.mdl.resultsPaging.fn.refreshPaging(response.paging, context, refreshFn); } - //-------------------------------------------------------------- // Page navigation. sax.navigateTo = function (action) @@ -155,7 +150,6 @@ sax.doPleaseWait(); location = sax.url.base + action; } - // Account action. sax.onAccountAction = function (select) { @@ -166,7 +160,6 @@ else if (action == "Organisations") sax.navigateTo("Organisations"); } - // Security. sax.redirectHome = function () { @@ -185,7 +178,6 @@ { sax.doAjaxRequest({ url: sax.url.base + 'Security/Ajax/SignOut', formId: 'frmNavigate' }, 50); } - //-------------------------------------------------------------- // Dialogs. sax.openDialog = function ($dlg, width, height) @@ -273,7 +265,6 @@ clearTimeout(sax.toShowProgress); sax.$dlg.progress.dialog('close'); } - //-------------------------------------------------------------- // Notifications. sax.showNotification = function (title, msg) @@ -310,7 +301,6 @@ { if (sax.$pleaseWait) sax.$pleaseWait.stop(true, false).fadeOut(200); } - //-------------------------------------------------------------- // Ajax. sax.doAjaxRequest = function (ajax, delay) @@ -376,7 +366,6 @@ } ajax.request = $.ajax(cfgAjax); } - //-------------------------------------------------------------- // Session. sax.configureKeepLoggedIn = function (single) @@ -434,7 +423,6 @@ }); } } - //-------------------------------------------------------------- // Elements. sax.objBtm = function (sel) @@ -477,7 +465,6 @@ var $obj = $(sel); return parseInt($obj.css('border-top-width'), 10) + parseInt($obj.css('border-bottom-width'), 10); } - //-------------------------------------------------------------- // Viewport - Desktop or Mobile. sax.isMob = function () { return $('body.mob').length > 0; }; @@ -503,7 +490,6 @@ $ftr.css('visibility', 'visible'); sax.onWinResizePage(); } - //-------------------------------------------------------------- $(function () { @@ -526,9 +512,8 @@ //defaultDate: 0, }); }); - + //-------------------------------------------------------------- }(window, window.document)); - //-------------------------------------------------------------- (function () { @@ -538,5 +523,5 @@ } if (!Array.prototype.sortBy) Array.prototype.sortCI = sax.arraySortCI; })(); - +//-------------------------------------------------------------- /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-org-evt.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-org-evt.js index a29a380..0616d05 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-org-evt.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-org-evt.js @@ -1,13 +1,11 @@ /* * Organisation - Events page scripts. */ - (function (win, doc, undef) { "use strict"; let oe = sax.OrgEvt = { data: {}, fn: {} }; let $pnl = oe.$pnl = {}, $frm = oe.$frm = {}, $dlg = oe.$dlg = {}; - //-------------------------------------------------------------- oe.refreshResults = function (delay) { @@ -83,7 +81,6 @@ $bgr.toggle(!!$('.sax-dropdown-menu .sax-dropdown-item', $item).length); return $item; } - //-------------------------------------------------------------- oe.getFilterDropdownTemplate = function () { @@ -109,7 +106,6 @@ { return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls); } - //-------------------------------------------------------------- oe.selectFilterOrganisation = function () { @@ -141,7 +137,6 @@ $('#frmEventFilter #ifFilterOrganisation').val(name); oe.refreshResults(50); } - //-------------------------------------------------------------- oe.selectSportPrimary = function () { @@ -152,7 +147,6 @@ sax.clearControlError($('.EventSportIdPrimary', $frm.evt).val(sport.id)); $('.EventSportCaptionPrimary', $frm.evt).val(sport ? sport.name : ''); } - //-------------------------------------------------------------- oe.selectRegionCountry = function () { @@ -163,7 +157,6 @@ sax.clearControlError($('.EventRegionIdCountry', $frm.evt).val(region.id)); $('.EventRegionCaptionCountry', $frm.evt).val(region ? region.name : ''); } - //-------------------------------------------------------------- oe.createItem = function () { @@ -185,7 +178,6 @@ $('.EventDate', $frm.evt).datepicker('setDate', 'today'); sax.clearControlErrors(); } - //-------------------------------------------------------------- oe.updateItem = function (item, $item) { @@ -216,7 +208,6 @@ $dlg.event.dialog('option', 'title', sax.dlg.title.updateEvent); sax.openDialog($dlg.event, 600, 600); } - //-------------------------------------------------------------- oe.storeItem = function () { @@ -238,7 +229,6 @@ } oe.populateItem(oe.$item, item) } - //-------------------------------------------------------------- $(function () { @@ -265,7 +255,6 @@ setTimeout(oe.refreshResults, 250); }); - + //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-org-mbr.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-org-mbr.js index cd51893..3504f2d 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-org-mbr.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-org-mbr.js @@ -1,13 +1,11 @@ /* * Organisation - Members page scripts. */ - (function (win, doc, undef) { "use strict"; let om = sax.OrgMbr = { data: {}, fn: {} }; let $pnl = om.$pnl = {}, $frm = om.$frm = {}, $dlg = om.$dlg = {}; - //-------------------------------------------------------------- om.refreshResults = function (delay) { @@ -74,7 +72,6 @@ $bgr.toggle(!!$('.sax-dropdown-menu .sax-dropdown-item', $item).length); return $item; } - //-------------------------------------------------------------- om.getFilterDropdownTemplate = function () { @@ -100,7 +97,6 @@ { return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls); } - //-------------------------------------------------------------- om.selectFilterOrganisation = function () { @@ -132,7 +128,6 @@ $('#frmMemberFilter #ifFilterOrganisation').val(name); om.refreshResults(50); } - //-------------------------------------------------------------- om.createItem = function () { @@ -151,7 +146,6 @@ $('.MemberDisplayName,.MemberTitle,.MemberFirstName,.MemberLastName', $frm.mbr).hide(); sax.clearControlErrors(); } - //-------------------------------------------------------------- om.updateItem = function (item, $item) { @@ -182,7 +176,6 @@ $dlg.member.dialog('option', 'title', sax.dlg.title.updateMember); sax.openDialog($dlg.member, 600, 560); } - //-------------------------------------------------------------- // Member Roles. om.selectMemberRoles = function () @@ -212,7 +205,6 @@ sax.data.memberRoles.some(function (value) { if (value.code == roleCode) { roleDesc = value.desc; return true; } return false; }) return roleDesc || roleCode; } - //-------------------------------------------------------------- om.storeItem = function () { @@ -241,7 +233,6 @@ om.populateItem(om.$item, item) delete om.$item; } - //-------------------------------------------------------------- om.removeItem = function (item, $item) { @@ -265,7 +256,6 @@ delete om.$item; } } - //-------------------------------------------------------------- om.activateItem = function (item, $item) { @@ -289,7 +279,6 @@ delete om.$item; } } - //-------------------------------------------------------------- $(function () { @@ -315,7 +304,6 @@ setTimeout(om.refreshResults, 250); }); - + //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-org-opp.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-org-opp.js index 276ea4c..0bb00fa 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-org-opp.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-org-opp.js @@ -1,13 +1,11 @@ /* * Organisation - Opportunities page scripts. */ - (function (win, doc, undef) { "use strict"; let oo = sax.OrgOpp = { data: {}, fn: {} }; let $pnl = oo.$pnl = {}, $frm = oo.$frm = {}, $dlg = oo.$dlg = {}; - //-------------------------------------------------------------- oo.refreshResults = function (delay) { @@ -81,7 +79,6 @@ $bgr.toggle(!!$('.sax-dropdown-menu .sax-dropdown-item', $item).length); return $item; } - //-------------------------------------------------------------- oo.getFilterDropdownTemplate = function () { @@ -107,7 +104,6 @@ { return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls); } - //-------------------------------------------------------------- oo.selectFilterOrganisation = function () { @@ -139,7 +135,6 @@ $('#frmOpportunityFilter #ifFilterOrganisation').val(name); oo.refreshResults(50); } - //-------------------------------------------------------------- oo.selectSport = function () { @@ -150,7 +145,6 @@ sax.clearControlError($('#ifOpportunitySportId').val(sport.id)); $('#ifOpportunitySportCaption').val(sport ? sport.name : ''); } - //-------------------------------------------------------------- oo.selectRegion = function () { @@ -161,7 +155,6 @@ sax.clearControlError($('#ifOpportunityRegionId').val(region.id)); $('#ifOpportunityRegionCaption').val(region ? region.name : ''); } - //-------------------------------------------------------------- oo.createItem = function () { @@ -182,7 +175,6 @@ $('#cbOpportunityType', $frm.opp).find('option[value=""]').remove(); sax.clearControlErrors(); } - //-------------------------------------------------------------- oo.updateItem = function (item, $item) { @@ -212,7 +204,6 @@ $dlg.opportunity.dialog('option', 'title', sax.dlg.title.updateOpportunity); sax.openDialog($dlg.opportunity, 600, 600); } - //-------------------------------------------------------------- oo.storeItem = function () { @@ -234,7 +225,6 @@ } oo.populateItem(oo.$item, item) } - //-------------------------------------------------------------- $(function () { @@ -260,7 +250,6 @@ setTimeout(oo.refreshResults, 250); }); - + //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-org-req.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-org-req.js index 43f77f3..0f87593 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-org-req.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-org-req.js @@ -1,17 +1,14 @@ /* * Organisation Request. */ - (function (win, doc, undef) { "use strict"; let or = sax.orgReq; or.fn = {}; or.ajax = {}; - //-------------------------------------------------------------- or.fn.requestOrganisation = function () { - or.fn.init(); $('input[type="text"],textarea,select,.OrganisationSportId,.OrganisationRegionIdCountry', or.$frm).val(''); $('.OrganisationRegionIdPrimary', or.$frm).val(sax.data.regionIdCountryDefault); $('.OrganisationRegionNamePrimary', or.$frm).val(sax.data.regionNameCountryDefault); @@ -36,7 +33,6 @@ or.fn.cleanUp = function () { } - //-------------------------------------------------------------- or.selectOrgSport = function () { @@ -47,7 +43,6 @@ sax.clearControlError($('.OrganisationSportId', or.$frm).val(sport.id)); $('.OrganisationSportName', or.$frm).val(sport ? sport.name : ''); } - //-------------------------------------------------------------- or.selectOrgRegionPrimary = function () { @@ -59,11 +54,9 @@ sax.clearControlError($('.OrganisationRegionIdPrimary', or.$frm).val(region.id)); $('.OrganisationRegionNamePrimary', or.$frm).val(region ? region.name : ''); } - //-------------------------------------------------------------- - or.fn.init = function () + $(function () { - if (or.$dlg) return; var opt = sax.dlgOpts(); opt.title = sax.orgReq.dlgTitleRequestOrganisation; opt.buttons[sax.dlg.btn.ok] = function () { or.fn.storeOrganisation(); }; @@ -74,8 +67,7 @@ or.$frm.on('dblclick', 'input.OrganisationRegionNamePrimary', or.selectOrgRegionPrimary).on('click', 'button.SelectOrganisationRegionPrimary', or.selectOrgRegionPrimary); $('.sax-input, .sax-textarea', or.$frm).on('input', function () { sax.clearControlError(this); }); $('.sax-select', or.$frm).on('change', function () { sax.clearControlError(this); }); - } - + }); + //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-org-sel.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-org-sel.js index a3329db..7a91131 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-org-sel.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-org-sel.js @@ -1,13 +1,11 @@ /* * Organisation selection. */ - (function (win, doc, undef) { "use strict"; - let so = sax.selectOrganisation; + let so = sax.selectOrganisation = sax.selectOrganisation || {}; so.data = {}; so.fn = {}; - //-------------------------------------------------------------- /* * Organisation selection config: @@ -20,7 +18,6 @@ so.fn.selectOrganisation = function (cfg) { //sax.debug('openDialog', cfg); - so.fn.init(); so.cfg = cfg; sax.openDialog(so.$dlg.dialog('option', { title: cfg.caption || so.dlgTitleSelectOrganisation || 'Select Organisation' }), so.cfg.width || 480, so.cfg.height || 600); } @@ -99,11 +96,9 @@ delete so.cfg; delete so.data.item; } - //-------------------------------------------------------------- - so.fn.init = function () + $(function () { - if (so.$dlg) return; var opt = sax.dlgOpts(); opt.open = function () { so.fn.refreshResults(200); }; opt.buttons[sax.dlg.btn.ok] = function () { so.fn.confirmSelection(); }; @@ -113,8 +108,7 @@ so.$results = $('.sax-selection-results.Organisations', so.$dlg); so.$filter = $('.sax-panel-filter', so.$dlg); $('.sax-input.FilterOrganisation', so.$filter).on('input', function () { sax.selectOrganisation.fn.refreshResults(250); }); - } - + }); + //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-cfg.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-cfg.js index abce39c..fcd5205 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-cfg.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-cfg.js @@ -16,5 +16,4 @@ } //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-elg.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-elg.js index 6cd7562..c33c3ff 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-elg.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-elg.js @@ -1,7 +1,6 @@ /* * Profile Eligibility scripts. */ - (function (win, doc, undef) { //-------------------------------------------------------------- @@ -11,7 +10,6 @@ //-------------------------------------------------------------- sax.refreshProfileEligibilityInfo = function (delay) { - ue.init(); $pnl.infoTip.hide().find('.sax-info').text(sax.msg.eligibilityInfo); $pnl.usrElg.removeClass('sax-edit').addClass('sax-populating'); $('.sax-property', $pnl.usrElg).hide(); @@ -224,9 +222,8 @@ ue.clearItem(); } //-------------------------------------------------------------- - ue.init = function () + $(function () { - if ($pnl.usrElg) return; $pnl.usrElg = $('.sax-panel-section.ProfileEligibility'); $pnl.usrElg.on('click', '.sax-action.sax-add', function (evt) { ue.addItem(); }); $pnl.usrElg.on('click', '.sax-action.sax-info', function (evt) { ue.showInfoTip(); }); @@ -248,7 +245,7 @@ sax.initCalendars('#frmUserEligibility .sax-calendar', { changeMonth: true, changeYear: true, yearRange: '-99:+12', autoClose: true }); ue.$dpExpiresOn.datepicker({ onSelect: function () { ue.onChangeExpiresOn(); }, onClose: function () { ue.onChangeExpiresOn(); } }); sax.allowClearCalendar('#frmUserEligibility .sax-calendar'); - } + }); //-------------------------------------------------------------- }(window, window.document)); diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-org.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-org.js index 9190375..3ad136c 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-org.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-org.js @@ -1,13 +1,11 @@ /* * Account page scripts. */ - (function (win, doc, undef) { "use strict"; let po = sax.mdl.profileOrganisations = sax.mdl.profileOrganisations || { data: {}, ajax: {} }; let $pnl = po.$pnl = {}, $dlg = po.$dlg = {}, $frm = po.$frm = {}; - //-------------------------------------------------------------- sax.refreshProfileOrganisationsInfo = function (delay) { @@ -62,7 +60,6 @@ return $item; } - //-------------------------------------------------------------- po.getHeaderDropdownTemplate = function () { @@ -88,7 +85,6 @@ { return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls); } - //-------------------------------------------------------------- po.updateOrganisation = function ($item, item) { @@ -155,7 +151,6 @@ delete po.data.item; delete po.data.$item; } - //-------------------------------------------------------------- po.selectOrgSport = function () { @@ -166,7 +161,6 @@ sax.clearControlError($('.OrganisationSportId', $frm.org).val(sport.id)); $('.OrganisationSportName', $frm.org).val(sport ? sport.name : ''); } - //-------------------------------------------------------------- po.selectOrgRegionPrimary = function () { @@ -177,7 +171,6 @@ sax.clearControlError($('.OrganisationRegionIdPrimary', $frm.org).val(region.id)); $('.OrganisationRegionNamePrimary', $frm.org).val(region ? region.name : ''); } - //-------------------------------------------------------------- po.getConMthCfg = function (usedMths, mth, val) { @@ -229,8 +222,8 @@ po.clearConMth = function (mth) { $('#' + po.getConMthId(mth), $pnl.conMths).remove(); + po.sortConMths(); } - //-------------------------------------------------------------- $(function () { @@ -248,9 +241,6 @@ $pnl.conMths = $('.OrganisationContactMethods', $frm.org); $pnl.tblconMths = $('table.sax-data', $pnl.conMths); }); - //-------------------------------------------------------------- - }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-spt.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-spt.js index 80a51d5..ba59969 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-spt.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-spt.js @@ -1,7 +1,6 @@ /* * Account page scripts. */ - (function (win, doc, undef) { //-------------------------------------------------------------- @@ -11,7 +10,6 @@ //-------------------------------------------------------------- sax.refreshProfileSportsInfo = function (delay) { - ps.init(); $pnl.proSpt.removeClass('sax-edit').addClass('sax-populating'); $('.sax-property', $pnl.proSpt).hide(); sax.showDataRefreshingMsg($pnl.proSpt); @@ -64,28 +62,28 @@ { //sax.debug('addProfileSport'); ps.clearProfileSport(); - sax.openDialog($dlg.proSpt.dialog('option', 'title', sax.dlg.title.addUserSport), 640, 480); + sax.openDialog($dlg.spt.dialog('option', 'title', sax.dlg.title.addUserSport), 640, 480); } ps.clearProfileSport = function () { - let dlg = $dlg.proSpt; + let dlg = $dlg.spt; $('.UserSportId,.ProfileSportExists,#ifProfileSportId,input.sax-input,textarea.sax-textarea,select.sax-select', dlg).val(''); $('.SelectSport', dlg).show(); sax.clearControlErrors(dlg); } ps.updateProfileSport = function (item) { - //sax.debug('updateProfileSport', item, $frm.proSptId); - $('.UserSportId', $frm.proSptId).val(item.id); - ps.ajax.profileSport = ps.ajax.profileSport || { url: sax.url.base + 'Account/Ajax/GetProfileSport', formId: $frm.proSptId.prop('id'), callbackFn: ps.doUpdateProfileSport }; + //sax.debug('updateProfileSport', item, $frm.sptId); + $('.UserSportId', $frm.sptId).val(item.id); + ps.ajax.profileSport = ps.ajax.profileSport || { url: sax.url.base + 'Account/Ajax/GetProfileSport', formId: $frm.sptId.prop('id'), callbackFn: ps.doUpdateProfileSport }; sax.doAjaxRequest(ps.ajax.profileSport, 50); } ps.doUpdateProfileSport = function (response) { //sax.debug('doUpdateProfileSport', response); ps.clearProfileSport(); - let dlg = $dlg.proSpt; - let frm = $frm.proSpt; + let dlg = $dlg.spt; + let frm = $frm.spt; let item = response.sport; $('.UserSportId', frm).val(item.id); $('.ProfileSportExists', frm).val(1); @@ -101,9 +99,9 @@ ps.selectUserSport = function (sport) { //sax.debug('selectUserSport'); - if ($('.UserSportId', $frm.proSpt).val() > 0) return; + if ($('.UserSportId', $frm.spt).val() > 0) return; let excludeIds = $.grep(sax.profile.sports.Ids, function (value) { return !sport || value != sport.id; }); - sax.mdl.selectSport.fn.selectSport({ caption: sax.dlg.title.selectSport, sportId: $('#ifProfileSportId', $frm.proSpt).val(), excludeIds: excludeIds, fnCallback: ps.onSelectUserSport }) + sax.mdl.selectSport.fn.selectSport({ caption: sax.dlg.title.selectSport, sportId: $('#ifProfileSportId', $frm.spt).val(), excludeIds: excludeIds, fnCallback: ps.onSelectUserSport }) } ps.onSelectUserSport = function (sport) { @@ -111,37 +109,67 @@ $('#ifProfileSport').val(sport ? sport.name : ''); } //-------------------------------------------------------------- + ps.getSportContactCfg = function (contact) + { + let cfg = { fnCallback: ps.applySportContact, methods: ps.data.contactTypes, typesUsed: ps.getUsedContactTypes(), contact: contact}; + return cfg; + } + ps.getUsedContactTypes = function () + { + return $('input[name="Contacts.ContactTypes"]', $frm.org).map(function () { return $(this).val(); }).get(); + } + ps.addSportContact = function () + { + sax.debug('addSportContact'); + ps.showSportContact(ps.getSportContactCfg()); + } + ps.editSportContact= function (contact) + { + sax.debug('editSportContact'); + ps.showSportContact(ps.getSportContactCfg(contact)); + } + ps.showSportContact=function(cfg) + { + sax.mdl.sportContact.showSportContact(cfg); + } + ps.getConId = function (contact) + { + return 'SptCon_' + contact.type; + } + ps.applySportContact = function () + { + sax.debug('applySportContact'); + } + //-------------------------------------------------------------- ps.storeProfileSport = function () { //sax.debug('storeProfileSport'); sax.clearControlErrors(); - ps.ajax.storeProfileSport = ps.ajax.storeProfileSport || { url: sax.url.base + 'Account/Ajax/StoreProfileSport', formId: $frm.proSpt.prop('id'), callbackFn: ps.onStoreProfileSport }; + ps.ajax.storeProfileSport = ps.ajax.storeProfileSport || { url: sax.url.base + 'Account/Ajax/StoreProfileSport', formId: $frm.spt.prop('id'), callbackFn: ps.onStoreProfileSport }; sax.doAjaxRequest(ps.ajax.storeProfileSport, 50); } ps.onStoreProfileSport = function (response) { sax.refreshControlValues(response.controlValues); if (!response || !response.success) return; - $dlg.proSpt.dialog('close'); + $dlg.spt.dialog('close'); sax.refreshProfileSportsInfo(); } //-------------------------------------------------------------- - ps.init = function () + $(function () { - if ($pnl.proSpt) return; $pnl.proSpt = $('.sax-panel-section.ProfileSports'); $('.sax-action.sax-add', $pnl.proSpt).on('click', function (evt) { ps.addProfileSport(); }); - $frm.proSptId = $('#frmProfileSportId', $pnl.proSpt); + $frm.sptId = $('#frmProfileSportId', $pnl.proSpt); var opt = sax.dlgOpts(); opt.buttons[sax.dlg.btn.ok] = function () { ps.storeProfileSport(); }; opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); }; - $dlg.proSpt = $('#dlgProfileSport').dialog(opt); - $frm.proSpt = $('#frmProfileSport', $dlg.proSpt); - $frm.proSpt.on('dblclick', '.ProfileSport.sax-input', ps.selectUserSport); - $frm.proSpt.on('click', '.SelectSport.sax-button', ps.selectUserSport); - } + $dlg.spt = $('#dlgProfileSport').dialog(opt); + $frm.spt = $('#frmProfileSport', $dlg.spt); + $frm.spt.on('dblclick', '.ProfileSport.sax-input', ps.selectUserSport); + $frm.spt.on('click', '.SelectSport.sax-button', ps.selectUserSport); + $frm.spt.on('click', '.SportContacts .sax-action.sax-add', ps.addSportContact); + }); //-------------------------------------------------------------- - }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-usr.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-usr.js index 7cd232f..d071788 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-usr.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-usr.js @@ -1,12 +1,10 @@ /* * Account page scripts. */ - (function (win, doc, undef) { "use strict"; let $pnl = sax.$pnl, $dlg = sax.$dlg, $frm = sax.$frm; - //-------------------------------------------------------------- sax.refreshProfileContactInfo = function () { @@ -86,7 +84,6 @@ if (!response.success) return; sax.refreshProfileContactInfo(); } - //-------------------------------------------------------------- sax.refreshDob = function () { @@ -125,7 +122,6 @@ $selDobDay.val(''); $selDobDay.prop('disabled', !monthVal); } - //-------------------------------------------------------------- sax.selectRegionCountry = function () { @@ -137,7 +133,6 @@ sax.clearControlError($('#ifAccountRegionIdCountry').val(region.id)); $('#ifAccountRegionCaptionCountry').val(region ? region.name : ''); } - //-------------------------------------------------------------- sax.onDropContactImage = function (evt) { @@ -193,7 +188,6 @@ let file = $fileCtrl[0].files[0]; sax.onDropContactImageFile(file, dlg); } - //-------------------------------------------------------------- $(function () { @@ -215,9 +209,6 @@ opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); }; $dlg.selectContactImage = $('#dlgSelectContactImage').dialog(opt); }); - //-------------------------------------------------------------- - }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-reg-sel.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-reg-sel.js index 9485d47..09a8d81 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-reg-sel.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-reg-sel.js @@ -1,13 +1,11 @@ /* * Region selection. */ - (function (win, doc, undef) { "use strict"; let sr = sax.mdl.selectRegion = sax.mdl.selectRegion || {}; sr.regions = {}; sr.fn = {}; sr.ajax = {}; sr.itemIdPrefix = 'Rgn_'; - //-------------------------------------------------------------- /* * Region selection config: @@ -19,7 +17,6 @@ */ sr.fn.selectRegion = function (cfg) { - sr.fn.init(); sr.cfg = cfg; sr.regionId = cfg.regionId; if (sr.regions.length) sr.fn.showSelectRegion(); @@ -43,7 +40,6 @@ sr.fn.displayRegions(); sax.openDialog(sr.$dlg.dialog('option', { title: sr.cfg.caption || 'Select Region' }), sr.cfg.width || 400, sr.cfg.height || 800); } - //-------------------------------------------------------------- sr.fn.compareRegions = function (a, b) { @@ -52,7 +48,6 @@ return a.name.localeCompare(b.name); return comparison; } - //-------------------------------------------------------------- sr.fn.displayRegions = function () { @@ -90,7 +85,6 @@ let region = sr.fn.getRegion(id); return region ? region.name : ''; } - //-------------------------------------------------------------- sr.fn.onClickRegion = function (region, $region) { @@ -117,26 +111,22 @@ delete sr.cfg; delete sr.regionId; } - //-------------------------------------------------------------- sr.fn.onDlgSize = function () { let $pnl = $('.sax-selectRegion-regions.AvailableRegions', sr.$dlg); $pnl.outerHeight(Math.floor(sr.$dlg.innerHeight() - $pnl.position().top - ($pnl.outerHeight(true) - $pnl.innerHeight()))); } - //-------------------------------------------------------------- - sr.fn.init = function () + $(function () { - if (sr.$dlg) return; var opt = sax.dlgOpts(); opt.open = function (evt, ui) { sr.fn.onDlgSize(); }; opt.resize = function (evt, ui) { sr.fn.onDlgSize(); }; opt.buttons[sax.dlg.btn.ok] = function () { sr.fn.storeSelectRegion(); }; opt.buttons[sax.dlg.btn.cancel] = function () { sr.fn.cleanUp(); $(this).dialog('close'); }; sr.$dlg = $('#dlgSelectRegion').dialog(opt); - } - + }); + //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-res-pag.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-res-pag.js index 365cda9..ef0e174 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-res-pag.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-res-pag.js @@ -1,12 +1,11 @@ /* * Admin - Results paging. */ - (function (win, doc, undef) { "use strict"; - let rp = sax.mdl.resultsPaging = sax.mdl.resultsPaging || { fn: {}, msg: {}, contexts: [] }; - + let rp = sax.mdl.resultsPaging = sax.mdl.resultsPaging || { msg: {} }; + rp.fn = {}; rp.contexts = []; //-------------------------------------------------------------- rp.fn.refreshPaging = function (paging, contextSel, refreshFn) { @@ -20,7 +19,6 @@ //$('.sax-paging-first,.sax-paging-prev', context.$rp).toggle(paging.pageNo > 1); //$('.sax-paging-next,.sax-paging-last', context.$rp).toggle(paging.pageNo < paging.pageCount); } - //-------------------------------------------------------------- rp.fn.getContext = function (contextSel, refreshFn) { @@ -33,7 +31,6 @@ rp.contexts.push(context); return context; } - //-------------------------------------------------------------- rp.fn.firstPage = function (context) { @@ -63,7 +60,6 @@ context.$pageNo.val(context.paging.pageCount); context.refreshFn(); } - //-------------------------------------------------------------- rp.fn.init = function (context) { @@ -77,7 +73,10 @@ $('.sax-paging-next', context.$rp).off('click').on('click', function () { rp.fn.nextPage(context); }); $('.sax-paging-last', context.$rp).off('click').on('click', function () { rp.fn.lastPage(context); }); } - + //-------------------------------------------------------------- + $(function () + { + }); + //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-security.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-security.js index 05e9ced..61839f0 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-security.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-security.js @@ -1,11 +1,9 @@ /* * Security page scripts. */ - (function (win, doc, undef) { "use strict"; - //-------------------------------------------------------------- sax.doSignin = function () { @@ -19,7 +17,6 @@ if (!response.success) return; sax.goToPage(''); } - //-------------------------------------------------------------- sax.doScorePassword = function () { @@ -31,7 +28,6 @@ var score = (response || {}).score || 0; sax.$prgPwordStrength.progressbar("option", "value", score).removeClass('amber green').addClass(score > 3 ? 'green' : score > 2 ? 'amber' : ''); } - //-------------------------------------------------------------- sax.doChangePassword = function () { @@ -47,7 +43,6 @@ sax.goToPage('Security/Signin'); else sax.goToPage(''); } - //-------------------------------------------------------------- sax.doRequestPassword = function () { @@ -67,7 +62,6 @@ sax.doAlert($('.sax-page-caption').text(), response.successMsg, gotoSigninPage); else gotoSigninPage(); } - //-------------------------------------------------------------- $(function () { @@ -85,8 +79,6 @@ sax.$frm.reqPword.on('keypress', '#ifEmailAddress', function (e) { if (e.which == 13) sax.doRequestPassword(); }); $('#pbRequestPassword', sax.$frm.reqPword).on('click', function () { sax.doRequestPassword(); }).on('keypress', function (e) { if (e.which == 13) sax.doRequestPassword(); }); }); - //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-spt-cnt.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-spt-cnt.js index 255baf6..6dded7d 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-spt-cnt.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-spt-cnt.js @@ -1,12 +1,11 @@ /* - * Sport contact. + * Sport contacts. */ - (function (win, doc, undef) { //-------------------------------------------------------------- "use strict"; - let sc = sax.mdl.sportContact = { ajax: {}, data: {}, $pnl: {}, $dlg: {}, $frm: {} }; + let sc = sax.mdl.sportContact = { fn: {}, ajax: {}, data: {}, $pnl: {}, $dlg: {}, $frm: {} }; //-------------------------------------------------------------- /* * Sport Contact config: @@ -19,28 +18,25 @@ * - typesUsed * - fnCallback - method to call on completion to store details. */ - sax.showSportContact = function (cfg) + sc.showSportContact = function (cfg) { - sc.fn.init(); sc.data.cfg = cfg; - sax.openDialog(sc.$dlg.dialog('option', { title: sc.data.cfg.caption || 'Select Sport' }), sc.data.cfg.width || 400, sc.data.cfg.height || 800); + sax.openDialog(sc.$dlg.sptCnt.dialog('option', { title: sc.data.cfg.caption || 'Sport Contact' }), sc.data.cfg.width || 400, sc.data.cfg.height || 800); } //-------------------------------------------------------------- sc.fn.displayContact = function () { } //-------------------------------------------------------------- - sc.fn.init = function () + $(function () { - if (sc.$dlg.sptCnt) return; var opt = sax.dlgOpts(); opt.open = function (evt, ui) { sc.fn.onDlgSize(); }; opt.resize = function (evt, ui) { sc.fn.onDlgSize(); }; opt.buttons[sax.dlg.btn.ok] = function () { sc.fn.storeSelectSport(); }; opt.buttons[sax.dlg.btn.cancel] = function () { sc.fn.cleanUp(); $(this).dialog('close'); }; sc.$dlg.sptCnt = $('#dlgSportContact').dialog(opt); - } + }); //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-exp.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-spt-exp.js similarity index 98% rename from SaxoniteCoreWebOnline/wwwroot/js/sax-pro-exp.js rename to SaxoniteCoreWebOnline/wwwroot/js/sax-spt-exp.js index 414d75b..7b09fe6 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-pro-exp.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-spt-exp.js @@ -9,7 +9,6 @@ //-------------------------------------------------------------- sax.showSportExperience = function (usrSpt) { - se.init(); //sax.debug('showSportExperience', usrSpt); $('.sax-header .SportName', se.$pnl.sportExp).text(usrSpt.sportName); $('.sax-panel-section').slideUp(750, function () { se.$pnl.sportExp.slideDown(750); }); @@ -131,9 +130,8 @@ sax.refreshProfileSportsInfo(50); } //-------------------------------------------------------------- - se.init=function () + $(function () { - if (se.$pnl.sportExp) return; se.$pnl.sportExp = $('.sax-panel.ProfileSportExperience'); se.$pnl.hdr = $('.sax-header', se.$pnl.sportExp); se.$pnl.results = $('.sax-panel-results.ProfileSportExperiences', se.$pnl.sportExp); @@ -151,7 +149,7 @@ se.$dpPeriodTo = $('.sax-calendar.ExperiencePeriodTo', se.$frm.sportExp); se.$dpPeriodFrom.datepicker({ onSelect: function () { $(this).change(); } }); sax.allowClearCalendar('#frmSportExperience .sax-calendar.ExperiencePeriodTo'); - } + }); //-------------------------------------------------------------- }(window, window.document)); diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-spt-sel.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-spt-sel.js index 8f087a4..65e614c 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-spt-sel.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-spt-sel.js @@ -1,13 +1,11 @@ /* * Sport selection. */ - (function (win, doc, undef) { "use strict"; let ss = sax.mdl.selectSport = sax.mdl.selectSport || {}; ss.sports = {}; ss.fn = {}; ss.ajax = {};; - //-------------------------------------------------------------- /* * Sport selection config: @@ -18,7 +16,6 @@ */ ss.fn.selectSport = function (cfg) { - ss.fn.init(); ss.cfg = cfg; ss.sportId = cfg.sportId; if (ss.sports.length) ss.fn.showSelectSport(); @@ -42,7 +39,6 @@ ss.fn.displaySports(); sax.openDialog(ss.$dlg.dialog('option', { title: ss.cfg.caption || 'Select Sport' }), ss.cfg.width || 400, ss.cfg.height || 800); } - //-------------------------------------------------------------- ss.fn.compareSports = function (a, b) { @@ -51,7 +47,6 @@ return a.name.localeCompare(b.name); return comparison; } - //-------------------------------------------------------------- ss.fn.displaySports = function () { @@ -86,7 +81,6 @@ let sport = ss.fn.getSport(id); return sport ? sport.name : ''; } - //-------------------------------------------------------------- ss.fn.onClickSport = function (sport, $sport) { @@ -113,26 +107,22 @@ delete ss.cfg; delete ss.sportId; } - //-------------------------------------------------------------- ss.fn.onDlgSize = function () { let $pnl = $('.sax-selectSport-sports.AvailableSports', ss.$dlg); $pnl.outerHeight(Math.floor(ss.$dlg.innerHeight() - $pnl.position().top - ($pnl.outerHeight(true) - $pnl.innerHeight()))); } - //-------------------------------------------------------------- - ss.fn.init = function () + $(function () { - if (ss.$dlg) return; var opt = sax.dlgOpts(); opt.open = function (evt, ui) { ss.fn.onDlgSize(); }; opt.resize = function (evt, ui) { ss.fn.onDlgSize(); }; opt.buttons[sax.dlg.btn.ok] = function () { ss.fn.storeSelectSport(); }; opt.buttons[sax.dlg.btn.cancel] = function () { ss.fn.cleanUp(); $(this).dialog('close'); }; ss.$dlg = $('#dlgSelectSport').dialog(opt); - } - + }); + //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-src-org.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-src-org.js index 64ae3e6..f1b5192 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-src-org.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-src-org.js @@ -1,14 +1,12 @@ /* * Search - Organisations. */ - (function (win, doc, undef) { "use strict"; let so = sax.searchOrganisations = {}; so.ajax = {}; so.data = {}; so.fn = {}; let $pnl = so.$pnl = {}, $frm = so.$frm = {}, $dlg = so.$dlg = {}; - //-------------------------------------------------------------- so.refreshResults = function (delay) { @@ -63,7 +61,6 @@ $bgr.toggle(!!$('.sax-dropdown-menu .sax-dropdown-item', $item).length); return $item; } - //-------------------------------------------------------------- so.getFilterDropdownTemplate = function () { @@ -89,7 +86,6 @@ { return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls); } - //-------------------------------------------------------------- so.selectFilterSport = function () { @@ -107,7 +103,6 @@ $('.FilterSportId,.FilterSportCaption', $frm.filter).val(''); so.refreshResults(); } - //-------------------------------------------------------------- so.selectFilterRegion = function () { @@ -125,7 +120,6 @@ $('.FilterRegionId,.FilterRegionCaption', $frm.filter).val(''); so.refreshResults(); } - //-------------------------------------------------------------- so.viewItem = function (item) { @@ -155,7 +149,6 @@ $dlg.org.dialog('option', 'title', item.name || sax.dlg.title.organisation); sax.openDialog($dlg.org, 720, 800); } - //-------------------------------------------------------------- $(function () { @@ -177,7 +170,6 @@ setTimeout(so.refreshResults, 250); }); - + //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteCoreWebOnline/wwwroot/js/sax-src-usr.js b/SaxoniteCoreWebOnline/wwwroot/js/sax-src-usr.js index 2b0d089..fba3a96 100644 --- a/SaxoniteCoreWebOnline/wwwroot/js/sax-src-usr.js +++ b/SaxoniteCoreWebOnline/wwwroot/js/sax-src-usr.js @@ -1,14 +1,12 @@ /* * Search - Users. */ - (function (win, doc, undef) { "use strict"; let su = sax.searchUsers = {}; su.ajax = {}; su.data = {}; su.fn = {}; let $pnl = su.$pnl = {}, $frm = su.$frm = {}, $dlg = su.$dlg = {}; - //-------------------------------------------------------------- su.refreshResults = function (delay) { @@ -60,7 +58,6 @@ $bgr.toggle(!!$('.sax-dropdown-menu .sax-dropdown-item', $item).length); return $item; } - //-------------------------------------------------------------- su.getFilterDropdownTemplate = function () { @@ -86,7 +83,6 @@ { return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls); } - //-------------------------------------------------------------- su.selectFilterSport = function () { @@ -104,7 +100,6 @@ $('.FilterSportId,.FilterSportCaption', $frm.filter).val(''); su.refreshResults(); } - //-------------------------------------------------------------- su.selectFilterRegion = function () { @@ -122,7 +117,6 @@ $('.FilterRegionId,.FilterRegionCaption', $frm.filter).val(''); su.refreshResults(); } - //-------------------------------------------------------------- su.viewItem = function (item) { @@ -141,7 +135,6 @@ $dlg.usr.dialog('option', 'title', item.name || sax.dlg.title.user); sax.openDialog($dlg.usr, 600, 600); } - //-------------------------------------------------------------- $(function () { @@ -163,7 +156,6 @@ setTimeout(su.refreshResults, 250); }); - + //-------------------------------------------------------------- }(window, window.document)); - /* The End */ \ No newline at end of file diff --git a/SaxoniteStandardBase/Base/App/Sax-Version.cs b/SaxoniteStandardBase/Base/App/Sax-Version.cs index 9636662..ed9d1f4 100644 --- a/SaxoniteStandardBase/Base/App/Sax-Version.cs +++ b/SaxoniteStandardBase/Base/App/Sax-Version.cs @@ -18,7 +18,7 @@ namespace Saxonite.Net.Standard.Base.App //------------------------------------------------------------------- public static class Version { - private static String version { get; } = "1.2.9.2"; + private static String version { get; } = "1.2.10.0"; // Retrieve version. public static String GetFullVersion () { return version; } public static String GetAppVersion () @@ -40,6 +40,8 @@ namespace Saxonite.Net.Standard.Base.App //------------------------------------------------------------------- // Version history. //------------------------------------------------------------------- + // 1.2.10 11-Oct-2022 + // - Online organisations display issue fixed. // 1.2.9 12-Oct-2022 // - Online Sports Experience update bug resolved. // - Sports Experience Awards. diff --git a/SaxoniteStandardBase/Base/App/Sax.cs b/SaxoniteStandardBase/Base/App/Sax.cs index ef98faf..6dd617a 100644 --- a/SaxoniteStandardBase/Base/App/Sax.cs +++ b/SaxoniteStandardBase/Base/App/Sax.cs @@ -42,8 +42,15 @@ namespace Saxonite.Net.Standard.Base.App //------------------------------------------------------------------- public enum Application { - Admin, - Online, + Online = 100, + Admin = 900, + } + + //------------------------------------------------------------------- + public enum Database + { + Core = 10, + Support = 20, } //------------------------------------------------------------------- @@ -155,6 +162,7 @@ namespace Saxonite.Net.Standard.Base.App /* Do not change the values - tied to database. */ Journalist, SystemAdmin, + SystemReviewer, } //------------------------------------------------------------------- diff --git a/SaxoniteStandardBase/Base/App/SaxApplication_Base.cs b/SaxoniteStandardBase/Base/App/SaxApplication_Base.cs index f55a637..2cb5ce9 100644 --- a/SaxoniteStandardBase/Base/App/SaxApplication_Base.cs +++ b/SaxoniteStandardBase/Base/App/SaxApplication_Base.cs @@ -20,8 +20,8 @@ namespace Saxonite.Net.Standard.Base.App // Properties. public abstract SaxSystem System { get; } public abstract SaxConsoleHelper ConsoleHelper { get; } - public abstract ISacsDatabase GetCoreDatabase(SaxSessionContext sessionContext); - public abstract IDatabaseInfo CreateCoreDbInfo(SaxSessionContext sessionContext); + public abstract ISacsDatabase GetDatabase(SaxSessionContext sessionContext, Sax.Database databaseType); + public abstract IDatabaseInfo CreateDbInfo(SaxSessionContext sessionContext, Sax.Database databaseType); // Application instance. public abstract Sax.InstanceType InstanceType { get; } public bool IsLiveHost() { return InstanceType == Sax.InstanceType.Production; } diff --git a/SaxoniteStandardBase/Base/App/SaxDbDfn_Core.cs b/SaxoniteStandardBase/Base/App/SaxDbDfn_Core.cs index 01a9ea4..73e5c48 100644 --- a/SaxoniteStandardBase/Base/App/SaxDbDfn_Core.cs +++ b/SaxoniteStandardBase/Base/App/SaxDbDfn_Core.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- namespace Saxonite.Base.App { @@ -379,6 +379,7 @@ namespace Saxonite.Base.App UserSport_UserAccountId, UserSport_SportId, UserSport_About, + UserSport_ContactsData, UserSport_Participation, UserSport_Officiating, UserSport_UserSportData, @@ -420,7 +421,7 @@ namespace Saxonite.Base.App //------------------------------------------------------------------- // Data members. private static readonly int tableCount = 22; - private static readonly int columnCount = 369; + private static readonly int columnCount = 370; private static ulong maxTextLen = 0; //------------------------------------------------------------------- @@ -947,6 +948,7 @@ namespace Saxonite.Base.App new ColumnDfn(21,"UserAccountId",4,4,false,10), new ColumnDfn(21,"SportId",4,4,false,10), new ColumnDfn(21,"About",0,-9,false,2000), + new ColumnDfn(21,"ContactsData",0,-9,false,0), new ColumnDfn(21,"Participation",3,5,false,5), new ColumnDfn(21,"Officiating",3,5,false,5), new ColumnDfn(21,"UserSportData",0,-9,false,0), diff --git a/SaxoniteStandardBase/Base/App/SaxDbDfn_Support.cs b/SaxoniteStandardBase/Base/App/SaxDbDfn_Support.cs new file mode 100644 index 0000000..6515b32 --- /dev/null +++ b/SaxoniteStandardBase/Base/App/SaxDbDfn_Support.cs @@ -0,0 +1,288 @@ +using Sarand.Net.Standard.Base.Core; +using Sarand.Net.Standard.Base.Dbas; +using Sarand.Net.Standard.Base.Utils; +using System; +using System.Collections.Generic; +using System.Linq; + +//--------------------------------------------------------------------------- +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 +//--------------------------------------------------------------------------- +namespace Saxonite.Base.App +{ + public class SaxDbDfn_Support + { + //------------------------------------------------------------------- + // Table identifiers. + public enum TableIdx + { + Unknown = 0, + } + + //------------------------------------------------------------------- + // Column identifiers. + public enum ColumnIdx + { + Unknown = 0, + } + + //------------------------------------------------------------------- + // Data members. + private static readonly int tableCount = 0; + private static readonly int columnCount = 0; + private static ulong maxTextLen = 0; + + //------------------------------------------------------------------- + // Retrieve Table details (eg. name: 'Company'). + public static int GetTableCount () + { + return tableCount; + } + public static String GetTableName (TableIdx table, bool delimitReservedWords = true) + { + int tableIdx = (int)table - 1; + if (tableIdx < 0 || tableIdx >= tableCount) return String.Empty; + String tableName = tables[(int)tableIdx]; + if (delimitReservedWords) tableName = DelimitReservedWord(tableName); + return tableName; + } + + //------------------------------------------------------------------- + // Identify the table that corresponds with the specified column. + public static TableIdx GetTableForColumn (ColumnIdx column) + { + int columnIdx = (int)column - 1; + if (columnIdx < 0 || columnIdx >= columnCount) return TableIdx.Unknown; + return columns[columnIdx].TableIdx; + } + + //------------------------------------------------------------------- + // Retrieve the specified Column's name (Qualified include table name: '(.Column>)'). + public static String GetColumnName (ColumnIdx column, bool delimitReservedWords = true) + { + int columnIdx = (int)column - 1; + if (columnIdx < 0 || columnIdx >= columnCount) return String.Empty; + String columnName = columns[columnIdx].Name; + if (delimitReservedWords) columnName = DelimitReservedWord(columnName); + return columnName; + } + public static String GetColumnNameQual (ColumnIdx column, String tableAlias = "", bool braces = false) + { + String columnName = GetColumnName(column); + if (!String.IsNullOrEmpty(columnName)) + { + String tableName = StringUtil.EmptyOnNull(tableAlias); + if (tableName.IsEmpty()) tableName = GetTableName(GetTableForColumn(column)); + columnName = tableName + (tableName.Length > 0 ? "." : "") + columnName; + if (braces) + columnName = "(" + columnName + ")"; + } + return columnName; + } + + //------------------------------------------------------------------- + // Reserved words. + private static DbReservedWordDelim reservedWordDelim = DbReservedWordDelim.SquareBrackets; + public static void SetReservedWordDelim (DbReservedWordDelim reservedWordDelim) + { + SaxDbDfn_Support.reservedWordDelim = reservedWordDelim; + } + public static bool IsReservedWord (String word) + { + if (String.IsNullOrEmpty(word)) return false; + if (reservedWords.Contains(word, StringComparer.OrdinalIgnoreCase)) return true; + return false; + } + public static String DelimitReservedWord (String word) + { + if (!IsReservedWord(word)) return word; + switch (reservedWordDelim) + { + case DbReservedWordDelim.None: + break; + case DbReservedWordDelim.DoubleQuotes: + word = "\"" + word + "\""; + break; + case DbReservedWordDelim.SquareBrackets: + default: + word = "[" + word + "]"; + break; + } + return word; + } + + //------------------------------------------------------------------- + // Retrieve information about the specified Column. + public static DbColumnDataType GetColDataType (ColumnIdx column) + { + int columnIdx = (int)column - 1; + if (columnIdx < 0 || columnIdx >= columnCount) return DbColumnDataType.Unknown; + return columns[columnIdx].DataType; + } + public static short GetColNativeDataType (ColumnIdx column) + { + int columnIdx = (int)column - 1; + if (columnIdx < 0 || columnIdx >= columnCount) return 0; + return columns[columnIdx].NativeDataType; + } + public static void SetMaxTextLen (ulong maxTextLen) + { + SaxDbDfn_Support.maxTextLen = maxTextLen; + } + public static bool IsColFmtText (ColumnIdx column) + { + int columnIdx = (int)column - 1; + if (columnIdx < 0 || columnIdx >= columnCount) return false; + return (columns[columnIdx].DataType == DbColumnDataType.VarChar); + } + public static ulong GetColTextLen (ColumnIdx column) + { + int columnIdx = (int)column - 1; + if (columnIdx < 0 || columnIdx >= columnCount) return 0; + if (columns[columnIdx].DataType == DbColumnDataType.VarChar) + { + ulong textLen = columns[columnIdx].DataLen; + if (maxTextLen > 0 && textLen > maxTextLen) textLen = maxTextLen; + return textLen; + } + return 0; + } + public static bool IsColFmtBool (ColumnIdx column) + { + int columnIdx = (int)column - 1; + if (columnIdx < 0 || columnIdx >= columnCount) return false; + return (columns[columnIdx].DataType == DbColumnDataType.Bit); + } + public static bool IsColFmtNumeric (ColumnIdx column) + { + int columnIdx = (int)column - 1; + if (columnIdx < 0 || columnIdx >= columnCount) return false; + switch (columns[columnIdx].DataType) + { + case DbColumnDataType.TinyInt: + case DbColumnDataType.SmallInt: + case DbColumnDataType.Int: + case DbColumnDataType.BigInt: + case DbColumnDataType.Single: + case DbColumnDataType.Double: + case DbColumnDataType.Decimal: + return true; + } + return false; + } + + //------------------------------------------------------------------- + // Table definitions. + private static readonly String[] tables = + { + }; + + //------------------------------------------------------------------- + // Table column definitions. + private class ColumnDfn + { + internal TableIdx TableIdx { get; set; } + internal String Name { get; set; } + internal DbColumnDataType DataType { get; set; } + internal short NativeDataType { get; set; } + internal bool IsIdentity { get; set; } + internal ulong DataLen { get; set; } + internal ColumnDfn (int tableIdx, String name, int dataType, short nativeDataType, bool isIdentity, ulong dataLen) + { + this.TableIdx = (TableIdx)tableIdx; + this.Name = name; + this.DataType = (DbColumnDataType)dataType; + this.NativeDataType = nativeDataType; + this.IsIdentity = isIdentity; + this.DataLen = dataLen; + } + } + + //------------------------------------------------------------------- + private static readonly ColumnDfn[] columns = + { + }; + + //------------------------------------------------------------------- + // Reserved words. + private static readonly List reservedWords = new List() + { + "ADD", + "ALL", + "ALTER", + "AND", + "ANY", + "AS", + "ASC", + "AVG", + "BEGIN", + "BETWEEN", + "BY", + "CASE", + "CAST", + "COLUMN", + "COMMIT", + "CONSTRAINT", + "CONVERT", + "COUNT", + "CREATE", + "CURRENCY", + "DEFAULT", + "DELETE", + "DESC", + "DISTINCT", + "DROP", + "ELSE", + "END", + "EXECUTE", + "EXISTS", + "FALSE", + "FROM", + "GRANT", + "GROUP", + "HAVING", + "IN", + "INDEX", + "INNER", + "INSERT", + "INTO", + "IS", + "JOIN", + "KEY", + "LEFT", + "LIKE", + "MAX", + "MIN", + "NOT", + "NULL", + "ON", + "OR", + "ORDER", + "OUTER", + "OUTPUT", + "PRIMARY", + "PROCEDURE", + "REVOKE", + "ROLLBACK", + "ROWCOUNT", + "SELECT", + "SET", + "SQL", + "SUM", + "TABLE", + "THEN", + "TRANSACTION", + "TRUE", + "UNION", + "UNIQUE", + "UPDATE", + "USER", + "VALUES", + "VIEW", + "WHEN", + "WHERE", + }; + + //------------------------------------------------------------------- + } +} diff --git a/SaxoniteStandardBase/Base/App/SaxInternals.cs b/SaxoniteStandardBase/Base/App/SaxInternals.cs index 225d8ea..2b72fd4 100644 --- a/SaxoniteStandardBase/Base/App/SaxInternals.cs +++ b/SaxoniteStandardBase/Base/App/SaxInternals.cs @@ -79,10 +79,10 @@ namespace Saxonite.Net.Standard.Base.App public bool DebugMode { get; } = SacsSystem.DebugMode; public SaxSystem System { get; } public SaxSessionContext SessionContext { get; } - public ISacsDatabase CoreDatabase { get { return SaxGlobals.App.GetCoreDatabase(SessionContext); } } + public ISacsDatabase CoreDatabase { get { return SaxGlobals.App.GetDatabase(SessionContext, Sax.Database.Core); } } public IDatabaseInfo CreateCoreDbInfo() { - return SaxGlobals.App.CreateCoreDbInfo(SessionContext); + return SaxGlobals.App.CreateDbInfo(SessionContext, Sax.Database.Core); } //------------------------------------------------------------------- diff --git a/SaxoniteStandardBase/Base/App/SaxSystem-CodeTypes.cs b/SaxoniteStandardBase/Base/App/SaxSystem-CodeTypes.cs index 4e9465b..2e73008 100644 --- a/SaxoniteStandardBase/Base/App/SaxSystem-CodeTypes.cs +++ b/SaxoniteStandardBase/Base/App/SaxSystem-CodeTypes.cs @@ -180,6 +180,7 @@ namespace Saxonite.Net.Standard.Base.App // User roles. userRoleCodes.Add(Sax.UserRole.Journalist, "JRNLST", "Journalist"); userRoleCodes.Add(Sax.UserRole.SystemAdmin, "SYSADM", "System Admin"); + userRoleCodes.Add(Sax.UserRole.SystemReviewer, "SYSRVR", "System Reviewer"); //--------------------------------------------------------------- // Titles. diff --git a/SaxoniteStandardBase/Base/Bus/SaxContactData.cs b/SaxoniteStandardBase/Base/Bus/SaxContactData.cs index dd4b52a..f57658d 100644 --- a/SaxoniteStandardBase/Base/Bus/SaxContactData.cs +++ b/SaxoniteStandardBase/Base/Bus/SaxContactData.cs @@ -69,7 +69,7 @@ namespace Saxonite.Net.Standard.Base.Bus } /// Clear all contact methods. - public void ClearContactMethods(Sax.ContactMethod method) + public void ClearContactMethods() { contactMethods.Clear(); } diff --git a/SaxoniteStandardBase/Base/Bus/SaxSportContactsData.cs b/SaxoniteStandardBase/Base/Bus/SaxSportContactsData.cs new file mode 100644 index 0000000..e85b349 --- /dev/null +++ b/SaxoniteStandardBase/Base/Bus/SaxSportContactsData.cs @@ -0,0 +1,210 @@ +using Sarand.Net.Standard.Base.App; +using Sarand.Net.Standard.Base.Bus; +using Sarand.Net.Standard.Base.Core; +using Sarand.Net.Standard.Base.Utils; +using Saxonite.Net.Standard.Base.App; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Xml.Linq; + +namespace Saxonite.Net.Standard.Base.Bus +{ + //======================================================================= + // Contact data - associated with Organisations, Users etc. + //======================================================================= + public class SaxSportContactsData + { + //------------------------------------------------------------------- + // Definitions. + private static readonly String ElementName_Contacts = "Contacts"; + private static readonly String ElementName_Contact = "Contact"; + private static readonly String AttributeName_Type = "Type"; + private static readonly String ElementName_Type = "Type"; + private static readonly String ElementName_UserAccountId = "UserAccountId"; + private static readonly String ElementName_Name = "Name"; + private static readonly String ElementName_Phone = "Phone"; + private static readonly String ElementName_Email = "Email"; + + //------------------------------------------------------------------- + // Data members. + private class ContactData + { + public Sax.SportContactType ContactType { get; set; } + public SysId UserAccountId { get; set; } + public String Name { get; set; } + public String Phone { get; set; } + public String Email { get; set; } + } + private Dictionary contacts { get; } = new Dictionary(); + + //------------------------------------------------------------------- + // Construction - from serialised data. + public SaxSportContactsData(String contactsData = "") + { + FromXml(contactsData); + } + + //------------------------------------------------------------------- + // Properties. + public List ContactTypes { get { return contacts.Keys.ToList(); } } + + //------------------------------------------------------------------- + // Utilities. + + /// Get the contact for the specified type. + private ContactData GetContactData(Sax.SportContactType contactType) + { + if ((int)contactType < 1) return null; + ContactData contact = contacts.GetValueOrDefault(contactType, null); + if (contact == null) + contacts.Add(contactType, contact = new ContactData() { ContactType = contactType }); + return contact; + } + + //------------------------------------------------------------------- + // Contacts. + //------------------------------------------------------------------- + /// Extract the name associated with the specified type. + public String GetContactName(Sax.SportContactType contactType) + { + return contacts.GetValueOrDefault(contactType, new ContactData()).Name; + } + + /// Extract the phone associated with the specified type. + public String GetContactPhone(Sax.SportContactType contactType) + { + return contacts.GetValueOrDefault(contactType, new ContactData()).Phone; + } + + /// Extract the email associated with the specified type. + public String GetContactEmail(Sax.SportContactType contactType) + { + return contacts.GetValueOrDefault(contactType, new ContactData()).Email; + } + + /// Set the name associated with the specified contact. + public bool SetContactName(Sax.SportContactType contactType, String name) + { + if ((int)contactType < 1 || name.IsEmpty()) return false; + ContactData contact = GetContactData(contactType); + if (contact == null) return false; + contact.Name = name; + return true; + } + + /// Set the phone associated with the specified contact. + public bool SetContactPhone(Sax.SportContactType contactType, String phone) + { + if ((int)contactType < 1 || phone.IsEmpty()) return false; + ContactData contact = GetContactData(contactType); + if (contact == null) return false; + contact.Phone = phone; + return true; + } + + /// Set the email associated with the specified contact. + public bool SetContactEmail(Sax.SportContactType contactType, String email) + { + if ((int)contactType < 1 || email.IsEmpty()) return false; + ContactData contact = GetContactData(contactType); + if (contact == null) return false; + contact.Email = email; + return true; + } + + //------------------------------------------------------------------- + /// Clear the value associated with the specified method. + public bool ClearContact(Sax.SportContactType contactType) + { + return contacts.Remove(contactType); + } + + /// Clear all contact methods. + public void ClearContacts() + { + contacts.Clear(); + } + + //------------------------------------------------------------------- + // Serialisation. + //------------------------------------------------------------------- + /// Serialise as XML. + public String ToXml() + { + String fn = typeof(SaxContactData).FullName + ".ToXml"; + try + { + XDocument doc = new XDocument(); + XElement contactsElement = doc.AppendElement(ElementName_Contacts); + foreach (ContactData contactData in contacts.Values) + { + if ((int)contactData.ContactType < 1 || (!SysId.IsValid(contactData.UserAccountId) && contactData.Name.IsEmpty())) continue; + XElement contactElement = contactsElement.AppendElement(ElementName_Contact); + contactElement.SetAttribute(AttributeName_Type, ((int)contactData.ContactType).ToString()); + contactElement.AppendElement(ElementName_Type, contactData.ContactType.ToString()); + if (!StringUtil.IsBlank(contactData.Name)) + contactElement.AppendElement(ElementName_Name, contactData.Name); + if (!StringUtil.IsBlank(contactData.Phone)) + contactElement.AppendElement(ElementName_Phone, contactData.Phone); + if (!StringUtil.IsBlank(contactData.Email)) + contactElement.AppendElement(ElementName_Email, contactData.Email); + } + return doc.GetXml(); + } + catch (Exception exc) + { + SaLogger.Warn(fn + " " + ExceptionUtil.GetLogMessage(exc)); + } + return ""; + } + + //------------------------------------------------------------------- + /// Deserialise from XML data. + private void FromXml(String contactsData) + { + String fn = typeof(SaxContactData).FullName + ".FromXml"; + contacts.Clear(); + if (StringUtil.IsEmpty(contactsData)) return; + + try + { + // Load XML data. + XDocument doc = XDocument.Parse(contactsData); + XElement rootElement = doc.Root; + foreach (XElement rootChildElement in rootElement.GetChildElements()) + { + String rootChildElementName = rootChildElement.GetLocalName(); + if (rootChildElementName.EqualsCI(ElementName_Contact)) + { + // Contact. + String contactTypeValue = rootChildElement.GetChildText(ElementName_Type); + Sax.SportContactType contactType = EnumUtil.ParseEnum(contactTypeValue, Sax.SportContactType.Unknown); + if (contactType != Sax.SportContactType.Unknown) + { + ContactData contactData = new ContactData() + { + ContactType = contactType, + UserAccountId = rootChildElement.GetChildText(ElementName_UserAccountId).ToSysId(), + Name = rootChildElement.GetChildText(ElementName_Name), + Phone = rootChildElement.GetChildText(ElementName_Phone), + Email = rootChildElement.GetChildText(ElementName_Email), + }; + contacts.Add(contactType, contactData); + } + else SaLogger.Warn(fn + " Unrecognised contact type: " + contactType); + } + else SaLogger.Warn(fn + " Unexpected 'Root' child element: " + rootChildElementName); + } + } + catch (Exception exc) + { + SaLogger.Warn(fn + " " + ExceptionUtil.GetLogMessage(exc)); + } + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaxoniteStandardBase/Base/Bus/SaxUserSport.cs b/SaxoniteStandardBase/Base/Bus/SaxUserSport.cs index 75ee7f5..d40442b 100644 --- a/SaxoniteStandardBase/Base/Bus/SaxUserSport.cs +++ b/SaxoniteStandardBase/Base/Bus/SaxUserSport.cs @@ -54,6 +54,7 @@ namespace Saxonite.Net.Standard.Base.Bus public SysId UserAccountId { get; set; } public SysId SportId { get; set; } public String About { get; set; } = String.Empty; + public String ContactsData { get; set; } = String.Empty; public Sax.SportParticipation Participation { get; set; } public Sax.SportOfficiating Officiating { get; set; } public String UserSportData { get; set; } @@ -86,6 +87,11 @@ namespace Saxonite.Net.Standard.Base.Bus get { return data.About; } set { CheckChanged(data.About, value); data.About = value; } } + public String ContactsData + { + get { return data.ContactsData; } + set { CheckChanged(data.ContactsData, value); data.ContactsData = value; } + } public Sax.SportParticipation Participation { get { return data.Participation; } @@ -107,6 +113,7 @@ namespace Saxonite.Net.Standard.Base.Bus UserAccountId = data.UserAccountId; SportId = data.SportId; About = data.About; + ContactsData = data.ContactsData; Participation = data.Participation; Officiating = data.Officiating; UserSportData = data.UserSportData; @@ -128,6 +135,7 @@ namespace Saxonite.Net.Standard.Base.Bus public ValidValue UserAccountId { get; set; } = ValidValue.Valid; public ValidValue SportId { get; set; } = ValidValue.Valid; public ValidValue About { get; set; } = ValidValue.Valid; + public ValidValue ContactsAbout { get; set; } = ValidValue.Valid; public ValidValue Participation { get; set; } = ValidValue.Valid; public ValidValue Officiating { get; set; } = ValidValue.Valid; public ValidValue UserSportData { get; set; } = ValidValue.Valid; @@ -202,6 +210,11 @@ namespace Saxonite.Net.Standard.Base.Bus get { return data.About; } set { data.About = value; } } + public String ContactsData + { + get { return data.ContactsData; } + set { data.ContactsData = value; } + } public Sax.SportParticipation Participation { get { return data.Participation; } diff --git a/SaxoniteStandardBase/Base/Consoles/SaxActivityConsole.cs b/SaxoniteStandardBase/Base/Consoles/SaxActivityConsole.cs index e341a10..aff363a 100644 --- a/SaxoniteStandardBase/Base/Consoles/SaxActivityConsole.cs +++ b/SaxoniteStandardBase/Base/Consoles/SaxActivityConsole.cs @@ -128,6 +128,7 @@ namespace Saxonite.Net.Standard.Base.Consoles // Properties. protected SaxSessionContext SessionContext { get; } protected SaxInternals Internals { get { if (internals == null) internals = new SaxInternals(SessionContext); return internals; } } + protected ISacsDatabase CoreDatabase { get { return Internals.CoreDatabase; } } protected List ValidActivityItemTypes { get { return validActivityItemTypes.ToList(); } } //------------------------------------------------------------------- diff --git a/SaxoniteStandardBase/Resources/Data/Application/VersionHistory.json b/SaxoniteStandardBase/Resources/Data/Application/VersionHistory.json new file mode 100644 index 0000000..1d3945c --- /dev/null +++ b/SaxoniteStandardBase/Resources/Data/Application/VersionHistory.json @@ -0,0 +1 @@ +{ "Versions": [] } \ No newline at end of file diff --git a/SaxoniteStandardBase/SaxoniteStandardBase.csproj b/SaxoniteStandardBase/SaxoniteStandardBase.csproj index 00e1a26..664d1cf 100644 --- a/SaxoniteStandardBase/SaxoniteStandardBase.csproj +++ b/SaxoniteStandardBase/SaxoniteStandardBase.csproj @@ -24,6 +24,7 @@ + diff --git a/SaxoniteStandardDbas/Dbas/App/SaxDbDfnGenerator.cs b/SaxoniteStandardDbas/Dbas/App/SaxDbDfnGenerator.cs index 558f4f5..e33ff5a 100644 --- a/SaxoniteStandardDbas/Dbas/App/SaxDbDfnGenerator.cs +++ b/SaxoniteStandardDbas/Dbas/App/SaxDbDfnGenerator.cs @@ -9,6 +9,7 @@ using System.Reflection; using System.Text; using Sarand.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Utils; +using Saxonite.Net.Standard.Base.App; namespace Saxonite.Net.Standard.Dbas.App { @@ -17,17 +18,12 @@ namespace Saxonite.Net.Standard.Dbas.App { //------------------------------------------------------------------- // Data members. - //public static readonly string messageTitle = "Saxonite database definition generator"; - public enum DatabaseInstance - { - Core - } //------------------------------------------------------------------- /// /// Generate database definitions. /// - public static bool Generate(DatabaseInstance dbInstance, String connectionString) + public static bool Generate(Sax.Database dbInstance, String connectionString) { String fn = nameof(SaxDbDfnGenerator) + ".Generate"; @@ -54,7 +50,7 @@ namespace Saxonite.Net.Standard.Dbas.App } //------------------------------------------------------------------- - private static bool GenerateDatabaseDefinition(DatabaseInstance dbInstance, SacsDatabase database, String directory) + private static bool GenerateDatabaseDefinition(Sax.Database dbInstance, SacsDatabase database, String directory) { DatabaseDefinitionGenerator.Config config = new DatabaseDefinitionGenerator.Config() { @@ -81,7 +77,7 @@ namespace Saxonite.Net.Standard.Dbas.App config.TableClass.Usings.Add("Sarand.Net.Standard.Base.Utils"); config.TableClass.Usings.Add("Sarand.Net.Standard.Base.Dbas"); config.TableClass.Namespace_BaseClass = "Saxonite.Net.Standard.Dbas.Data"; - config.TableClass.Namespace = "Saxonite.Net.Standard.Dbas.Internal"; + config.TableClass.Namespace = "Saxonite.Net.Standard.Dbas.Internal." + dbInstance.ToString(); config.TableClass.BaseClass = "SaxDbDataItem"; config.TableClass.ClassName_DatabaseInfo = "IDatabaseInfo"; config.TableClass.MandatoryConstructorDbInfo = true; @@ -92,7 +88,7 @@ namespace Saxonite.Net.Standard.Dbas.App } //------------------------------------------------------------------- - private static String GetOutputFolder(DatabaseInstance dbInstance) + private static String GetOutputFolder(Sax.Database dbInstance) { String fn = nameof(SaxDbDfnGenerator) + ".GetOutputFolder"; var assembly = Assembly.GetAssembly(typeof(DatabaseDefinitionGenerator)); diff --git a/SaxoniteStandardDbas/Dbas/Internal/Association_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Association_Db.cs deleted file mode 100644 index 8afc634..0000000 --- a/SaxoniteStandardDbas/Dbas/Internal/Association_Db.cs +++ /dev/null @@ -1,221 +0,0 @@ -using Microsoft.Data.SqlClient; -using Sarand.Net.Standard.Base.Core; -using Sarand.Net.Standard.Base.Dbas; -using Sarand.Net.Standard.Base.Utils; -using Saxonite.Net.Standard.Dbas.Data; -using System; -using System.Collections.Generic; -using System.Data.Common; -using System.Linq; - -//--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Thu 9-Jun-2022 17:41:18 -//--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal -{ - internal class Association_Db : SaxDbDataItem - { - //------------------------------------------------------------------- - // Column definitions. - public class ColumnsData - { - public ColumnDataInt16 _ItemTypeFrom { get; } = new ColumnDataInt16("ItemTypeFrom"); - public ColumnDataInt32 _ItemIdFrom { get; } = new ColumnDataInt32("ItemIdFrom"); - public ColumnDataInt16 _ItemTypeTo { get; } = new ColumnDataInt16("ItemTypeTo"); - public ColumnDataInt32 _ItemIdTo { get; } = new ColumnDataInt32("ItemIdTo"); - public ColumnDataInt16 _AssociationType { get; } = new ColumnDataInt16("AssociationType"); - public ColumnDataString _Notes { get; } = new ColumnDataString("Notes"); - public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags"); - public ColumnDataString _Status { get; } = new ColumnDataString("Status"); - public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn"); - public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy"); - public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost"); - public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn"); - public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy"); - public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost"); - } - - //------------------------------------------------------------------- - // Data members. - protected static List fields { get; } = new List() - { - "ItemTypeFrom", - "ItemIdFrom", - "ItemTypeTo", - "ItemIdTo", - "AssociationType", - "Notes", - "Flags", - "Status", - "CreateOn", - "CreateBy", - "CreateHost", - "UpdateOn", - "UpdateBy", - "UpdateHost", - }; - protected static List fieldsId { get; } = new List() - { - }; - protected static List fieldsPrimary { get; } = new List() - { - "ItemTypeFrom", - "ItemIdFrom", - "ItemTypeTo", - "ItemIdTo", - "AssociationType", - }; - protected static List fieldsIgnoreOnUpdate { get; } = new List() - { - "CreateOn", - "CreateBy", - "CreateHost", - }; - - //------------------------------------------------------------------- - // Construction. - internal Association_Db (IDatabaseInfo dbInfo) : base(dbInfo) - { - } - - //------------------------------------------------------------------- - // Properties. - public override String SchemaName { get; } = "dbo"; - public override String TableName { get; } = "Association"; - public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } } - public static List Fields { get { return new List(fields); } } - public static List FieldsId { get { return new List(fieldsId); } } - public static List FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } } - // Columns. - public ColumnsData Cols { get; } = new ColumnsData(); - public Int16 _ItemTypeFrom { get { return Cols._ItemTypeFrom.Value; } set { Cols._ItemTypeFrom.Value = value; } } - public Int32 _ItemIdFrom { get { return Cols._ItemIdFrom.Value; } set { Cols._ItemIdFrom.Value = value; } } - public Int16 _ItemTypeTo { get { return Cols._ItemTypeTo.Value; } set { Cols._ItemTypeTo.Value = value; } } - public Int32 _ItemIdTo { get { return Cols._ItemIdTo.Value; } set { Cols._ItemIdTo.Value = value; } } - public Int16 _AssociationType { get { return Cols._AssociationType.Value; } set { Cols._AssociationType.Value = value; } } - public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } } - public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } } - public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } } - public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } } - public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } } - public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } } - public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } } - public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } } - public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } } - // Existing columns - confirmed on database if table exists. - public List ExistingColumnNames { get { return GetExistingColumnNames(Fields); } } - public List ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } } - - //------------------------------------------------------------------- - // Population. - public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter) - { - dbCommand.CommandText = - "SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " + - "FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " + - (!String.IsNullOrEmpty(filter) ? "WHERE " + filter : ""); - Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText); - using (DbDataReader dbDataReader = dbCommand.ExecuteReader()) - { - dbDataReader.Read(); - PopulateFrom(dbDataReader); - } - } - public override void PopulateFrom (DbDataReader dbDataReader) - { - _ItemTypeFrom = GetFieldInt16(dbDataReader, "ItemTypeFrom", _ItemTypeFrom); - _ItemIdFrom = GetFieldInt32(dbDataReader, "ItemIdFrom", _ItemIdFrom); - _ItemTypeTo = GetFieldInt16(dbDataReader, "ItemTypeTo", _ItemTypeTo); - _ItemIdTo = GetFieldInt32(dbDataReader, "ItemIdTo", _ItemIdTo); - _AssociationType = GetFieldInt16(dbDataReader, "AssociationType", _AssociationType); - _Notes = GetFieldString(dbDataReader, "Notes", _Notes); - _Flags = GetFieldInt16(dbDataReader, "Flags", _Flags); - _Status = GetFieldString(dbDataReader, "Status", _Status); - _CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn); - _CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy); - _CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost); - _UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn); - _UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy); - _UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost); - } - - //------------------------------------------------------------------- - // Insert command. - public override bool ExecuteInsertCommand (DbCommand dbCommand) - { - List columnNames = ExistingColumnNamesNonId; - // Construct query. - String query = - "INSERT INTO " + TableNameFmt + " " + - "("+columnNames.Concat(",","[","]")+") "; - if (dbCommand is SqlCommand) - query += "VALUES (" + columnNames.Concat(",", "@", "") + ") "; - else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") "; - dbCommand.CommandText = query; - Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText); - // Populate parameters. - dbCommand.Parameters.Clear(); - if (columnNames.ContainsCI("ItemTypeFrom")) AddCommandParameter(dbCommand, "@ItemTypeFrom", _ItemTypeFrom); - if (columnNames.ContainsCI("ItemIdFrom")) AddCommandParameter(dbCommand, "@ItemIdFrom", _ItemIdFrom); - if (columnNames.ContainsCI("ItemTypeTo")) AddCommandParameter(dbCommand, "@ItemTypeTo", _ItemTypeTo); - if (columnNames.ContainsCI("ItemIdTo")) AddCommandParameter(dbCommand, "@ItemIdTo", _ItemIdTo); - if (columnNames.ContainsCI("AssociationType")) AddCommandParameter(dbCommand, "@AssociationType", _AssociationType); - if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes); - if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags); - if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status); - if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn); - if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy); - if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost); - if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn); - if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy); - if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost); - // Execute insert command. - bool commandSuccess = false; - int executeNonQuery = dbCommand.ExecuteNonQuery(); - if (executeNonQuery == 1) - { - commandSuccess = true; - } - return commandSuccess; - } - - //------------------------------------------------------------------- - // Update command. - public override bool ExecuteUpdateCommand (DbCommand dbCommand) - { - // Columns to update. - List columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList(); - // Construct query. - String query = "UPDATE " + TableNameFmt + " SET "; - if (dbCommand is SqlCommand) - { - query += StringPairList.CreateFrom(columnNames.Bracket("[","]"),columnNames).Concat("=@").Concat(", ") + " "; - query += "WHERE ItemTypeFrom=@ItemTypeFrom AND ItemIdFrom=@ItemIdFrom AND ItemTypeTo=@ItemTypeTo AND ItemIdTo=@ItemIdTo AND AssociationType=@AssociationType;"; - } - else - { - query += columnNames.Concat(", ", "", "=?") + " "; - query += "WHERE ItemTypeFrom=? AND ItemIdFrom=? AND ItemTypeTo=? AND ItemIdTo=? AND AssociationType=?;"; - } - dbCommand.CommandText = query; - Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText); - // Populate parameters. - dbCommand.Parameters.Clear(); - if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes); - if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags); - if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status); - if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn); - if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy); - if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost); - AddCommandParameter(dbCommand, "@ItemTypeFrom", _ItemTypeFrom); - AddCommandParameter(dbCommand, "@ItemIdFrom", _ItemIdFrom); - AddCommandParameter(dbCommand, "@ItemTypeTo", _ItemTypeTo); - AddCommandParameter(dbCommand, "@ItemIdTo", _ItemIdTo); - AddCommandParameter(dbCommand, "@AssociationType", _AssociationType); - int executeNonQueryResult = dbCommand.ExecuteNonQuery(); - return (executeNonQueryResult == 1); - } - - //------------------------------------------------------------------- - } -} diff --git a/SaxoniteStandardDbas/Dbas/Internal/ActivityFeedback_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/ActivityFeedback_Db.cs similarity index 98% rename from SaxoniteStandardDbas/Dbas/Internal/ActivityFeedback_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/ActivityFeedback_Db.cs index 80f22f8..9353461 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/ActivityFeedback_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/ActivityFeedback_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class ActivityFeedback_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/ActivityIndex_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/ActivityIndex_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/ActivityIndex_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/ActivityIndex_Db.cs index 6b842c9..410e761 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/ActivityIndex_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/ActivityIndex_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class ActivityIndex_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/Article_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/Article_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/Article_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/Article_Db.cs index 31a92c3..bf96c21 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/Article_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/Article_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class Article_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/ItemAddress_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/ItemAddress_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/ItemAddress_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/ItemAddress_Db.cs index 3026f00..8631da0 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/ItemAddress_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/ItemAddress_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class ItemAddress_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/ItemAssociation_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/ItemAssociation_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/ItemAssociation_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/ItemAssociation_Db.cs index ad6a9ea..088f462 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/ItemAssociation_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/ItemAssociation_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class ItemAssociation_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/ItemImage_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/ItemImage_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/ItemImage_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/ItemImage_Db.cs index b6d3cbd..0bf1c98 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/ItemImage_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/ItemImage_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class ItemImage_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/ItemSport_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/ItemSport_Db.cs similarity index 98% rename from SaxoniteStandardDbas/Dbas/Internal/ItemSport_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/ItemSport_Db.cs index 4db92c4..1498865 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/ItemSport_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/ItemSport_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class ItemSport_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/OrganisationEvent_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/OrganisationEvent_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/OrganisationEvent_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/OrganisationEvent_Db.cs index 60fe441..eea872d 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/OrganisationEvent_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/OrganisationEvent_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class OrganisationEvent_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/OrganisationOpportunity_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/OrganisationOpportunity_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/OrganisationOpportunity_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/OrganisationOpportunity_Db.cs index 94a3529..ae933b0 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/OrganisationOpportunity_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/OrganisationOpportunity_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class OrganisationOpportunity_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/Organisation_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/Organisation_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/Organisation_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/Organisation_Db.cs index 54dc158..ed74cad 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/Organisation_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/Organisation_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class Organisation_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/Region_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/Region_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/Region_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/Region_Db.cs index a4f6922..db3c500 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/Region_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/Region_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class Region_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/Sport_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/Sport_Db.cs similarity index 98% rename from SaxoniteStandardDbas/Dbas/Internal/Sport_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/Sport_Db.cs index 89e148a..42f6c6f 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/Sport_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/Sport_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class Sport_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/UserAccount_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/UserAccount_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/UserAccount_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/UserAccount_Db.cs index 388810d..6533f10 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/UserAccount_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/UserAccount_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class UserAccount_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/UserActivity_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/UserActivity_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/UserActivity_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/UserActivity_Db.cs index 090ed18..d539560 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/UserActivity_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/UserActivity_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class UserActivity_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/UserConfig_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/UserConfig_Db.cs similarity index 98% rename from SaxoniteStandardDbas/Dbas/Internal/UserConfig_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/UserConfig_Db.cs index 158344b..bb3ce99 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/UserConfig_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/UserConfig_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class UserConfig_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/UserEligibility_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/UserEligibility_Db.cs similarity index 98% rename from SaxoniteStandardDbas/Dbas/Internal/UserEligibility_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/UserEligibility_Db.cs index bf1ff32..496297f 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/UserEligibility_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/UserEligibility_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class UserEligibility_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/UserOnline_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/UserOnline_Db.cs similarity index 98% rename from SaxoniteStandardDbas/Dbas/Internal/UserOnline_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/UserOnline_Db.cs index d88bc84..1c9e6d9 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/UserOnline_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/UserOnline_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class UserOnline_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/UserOrganisation_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/UserOrganisation_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/UserOrganisation_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/UserOrganisation_Db.cs index b25c668..84d0f45 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/UserOrganisation_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/UserOrganisation_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class UserOrganisation_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/UserRole_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/UserRole_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/UserRole_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/UserRole_Db.cs index e1bb0fa..31ad3ad 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/UserRole_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/UserRole_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class UserRole_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/UserSession_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/UserSession_Db.cs similarity index 98% rename from SaxoniteStandardDbas/Dbas/Internal/UserSession_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/UserSession_Db.cs index c09c726..934e9f5 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/UserSession_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/UserSession_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class UserSession_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/UserSportExperience_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/UserSportExperience_Db.cs similarity index 99% rename from SaxoniteStandardDbas/Dbas/Internal/UserSportExperience_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/UserSportExperience_Db.cs index 515f1e7..b075b8d 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/UserSportExperience_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/UserSportExperience_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class UserSportExperience_Db : SaxDbDataItem { diff --git a/SaxoniteStandardDbas/Dbas/Internal/UserSport_Db.cs b/SaxoniteStandardDbas/Dbas/Internal/Core/UserSport_Db.cs similarity index 95% rename from SaxoniteStandardDbas/Dbas/Internal/UserSport_Db.cs rename to SaxoniteStandardDbas/Dbas/Internal/Core/UserSport_Db.cs index 3d94ffc..071be8e 100644 --- a/SaxoniteStandardDbas/Dbas/Internal/UserSport_Db.cs +++ b/SaxoniteStandardDbas/Dbas/Internal/Core/UserSport_Db.cs @@ -9,9 +9,9 @@ using System.Data.Common; using System.Linq; //--------------------------------------------------------------------------- -// Code generated by Sarand Database Utilities Tue 15-Nov-2022 13:33:16 +// Code generated by Sarand Database Utilities Tue 6-Dec-2022 18:22:59 //--------------------------------------------------------------------------- -namespace Saxonite.Net.Standard.Dbas.Internal +namespace Saxonite.Net.Standard.Dbas.Internal.Core { internal class UserSport_Db : SaxDbDataItem { @@ -23,6 +23,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal public ColumnDataInt32 _UserAccountId { get; } = new ColumnDataInt32("UserAccountId"); public ColumnDataInt32 _SportId { get; } = new ColumnDataInt32("SportId"); public ColumnDataString _About { get; } = new ColumnDataString("About"); + public ColumnDataString _ContactsData { get; } = new ColumnDataString("ContactsData"); public ColumnDataInt16 _Participation { get; } = new ColumnDataInt16("Participation"); public ColumnDataInt16 _Officiating { get; } = new ColumnDataInt16("Officiating"); public ColumnDataString _UserSportData { get; } = new ColumnDataString("UserSportData"); @@ -45,6 +46,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal "UserAccountId", "SportId", "About", + "ContactsData", "Participation", "Officiating", "UserSportData", @@ -93,6 +95,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal public Int32 _UserAccountId { get { return Cols._UserAccountId.Value; } set { Cols._UserAccountId.Value = value; } } public Int32 _SportId { get { return Cols._SportId.Value; } set { Cols._SportId.Value = value; } } public String _About { get { return Cols._About.Value; } set { Cols._About.Value = value; } } + public String _ContactsData { get { return Cols._ContactsData.Value; } set { Cols._ContactsData.Value = value; } } public Int16 _Participation { get { return Cols._Participation.Value; } set { Cols._Participation.Value = value; } } public Int16 _Officiating { get { return Cols._Officiating.Value; } set { Cols._Officiating.Value = value; } } public String _UserSportData { get { return Cols._UserSportData.Value; } set { Cols._UserSportData.Value = value; } } @@ -130,6 +133,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal _UserAccountId = GetFieldInt32(dbDataReader, "UserAccountId", _UserAccountId); _SportId = GetFieldInt32(dbDataReader, "SportId", _SportId); _About = GetFieldString(dbDataReader, "About", _About); + _ContactsData = GetFieldString(dbDataReader, "ContactsData", _ContactsData); _Participation = GetFieldInt16(dbDataReader, "Participation", _Participation); _Officiating = GetFieldInt16(dbDataReader, "Officiating", _Officiating); _UserSportData = GetFieldString(dbDataReader, "UserSportData", _UserSportData); @@ -166,6 +170,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal if (columnNames.ContainsCI("UserAccountId")) AddCommandParameter(dbCommand, "@UserAccountId", _UserAccountId); if (columnNames.ContainsCI("SportId")) AddCommandParameter(dbCommand, "@SportId", _SportId); if (columnNames.ContainsCI("About")) AddCommandParameter(dbCommand, "@About", _About); + if (columnNames.ContainsCI("ContactsData")) AddCommandParameter(dbCommand, "@ContactsData", _ContactsData); if (columnNames.ContainsCI("Participation")) AddCommandParameter(dbCommand, "@Participation", _Participation); if (columnNames.ContainsCI("Officiating")) AddCommandParameter(dbCommand, "@Officiating", _Officiating); if (columnNames.ContainsCI("UserSportData")) AddCommandParameter(dbCommand, "@UserSportData", _UserSportData); @@ -217,6 +222,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal if (columnNames.ContainsCI("UserAccountId")) AddCommandParameter(dbCommand, "@UserAccountId", _UserAccountId); if (columnNames.ContainsCI("SportId")) AddCommandParameter(dbCommand, "@SportId", _SportId); if (columnNames.ContainsCI("About")) AddCommandParameter(dbCommand, "@About", _About); + if (columnNames.ContainsCI("ContactsData")) AddCommandParameter(dbCommand, "@ContactsData", _ContactsData); if (columnNames.ContainsCI("Participation")) AddCommandParameter(dbCommand, "@Participation", _Participation); if (columnNames.ContainsCI("Officiating")) AddCommandParameter(dbCommand, "@Officiating", _Officiating); if (columnNames.ContainsCI("UserSportData")) AddCommandParameter(dbCommand, "@UserSportData", _UserSportData); diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-Organisation.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-Organisation.cs index 2fea6f9..eb07306 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-Organisation.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-Organisation.cs @@ -14,6 +14,7 @@ using System.Data.Common; using System.Text; using Sarand.Net.Standard.Base.Utils; using System.Linq; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserAccount.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserAccount.cs index 7f786d8..71c9047 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserAccount.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserAccount.cs @@ -14,6 +14,7 @@ using System.Text; using Sarand.Net.Standard.Base.Utils; using Saxonite.Net.Standard.Base.App; using System.Linq; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserConfig.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserConfig.cs index 218776d..40a2d07 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserConfig.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserConfig.cs @@ -14,6 +14,7 @@ using System.Text; using Saxonite.Net.Standard.Base.App; using System.Linq; using Sarand.Net.Standard.Base.Utils; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserEligibility.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserEligibility.cs index bb937ce..5edd8e5 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserEligibility.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserEligibility.cs @@ -16,6 +16,7 @@ using System.Linq; using Sarand.Net.Standard.Base.Utils; using static Saxonite.Net.Standard.Base.App.Sax; using System.ComponentModel; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserOnline.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserOnline.cs index fb8d8ba..7f018a9 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserOnline.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserOnline.cs @@ -14,6 +14,7 @@ using System.Text; using Saxonite.Net.Standard.Base.App; using System.Linq; using Sarand.Net.Standard.Base.Utils; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { @@ -61,7 +62,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr }; String sql = query.Concat("\n"); //SaLogger.Debug(fn + " Query:\n" + sql); - ISacsDatabase db = SaxGlobals.App.GetCoreDatabase(SessionContext); + ISacsDatabase db = CoreDatabase; int rows = db.ExecuteNonQuery(sql); if (db.HasErrorState()) SaLogger.Error(fn + " Database error: " + db.ErrorStateMessage); diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserOrganisation.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserOrganisation.cs index 51662bb..9ac0eba 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserOrganisation.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserOrganisation.cs @@ -14,6 +14,7 @@ using System.Text; using Saxonite.Net.Standard.Base.App; using System.Linq; using Sarand.Net.Standard.Base.Utils; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserRole.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserRole.cs index 41e6469..ecf1a01 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserRole.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserRole.cs @@ -14,6 +14,7 @@ using System.Text; using Saxonite.Net.Standard.Base.App; using System.Linq; using Sarand.Net.Standard.Base.Utils; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserSession.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserSession.cs index cb22d9b..8cbb863 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserSession.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserSession.cs @@ -14,6 +14,7 @@ using System.Text; using Saxonite.Net.Standard.Base.App; using System.Linq; using Sarand.Net.Standard.Base.Utils; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserSport.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserSport.cs index 2cb09d1..6dbb059 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserSport.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserSport.cs @@ -14,6 +14,7 @@ using System.Text; using Saxonite.Net.Standard.Base.App; using System.Linq; using Sarand.Net.Standard.Base.Utils; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { @@ -215,6 +216,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr dbUserSport._UserAccountId = SysId.ToInt(userSport.UserAccountId); dbUserSport._SportId = SysId.ToInt(userSport.SportId); dbUserSport._About = userSport.About; + dbUserSport._ContactsData = userSport.ContactsData; dbUserSport._Participation = (short)userSport.Participation; dbUserSport._Officiating = (short)userSport.Officiating; dbUserSport._UserSportData = userSport.UserSportData; @@ -238,6 +240,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr //userSport.UserAccountId = new SysId(dbUserSport._UserAccountId); //userSport.SportId = new SysId(dbUserSport._SportId); userSport.About = dbUserSport._About; + userSport.ContactsData = dbUserSport._ContactsData; userSport.Participation = (Sax.SportParticipation)dbUserSport._Participation; userSport.Officiating = (Sax.SportOfficiating)dbUserSport._Officiating; userSport.UserSportData = dbUserSport._UserSportData; diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserSportExperience.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserSportExperience.cs index 9207303..e27bfcf 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserSportExperience.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxAccountMgr_Dbas-UserSportExperience.cs @@ -14,6 +14,7 @@ using System.Text; using Saxonite.Net.Standard.Base.App; using System.Linq; using Sarand.Net.Standard.Base.Utils; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-ActivityFeedback.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-ActivityFeedback.cs index 99f6dd7..47bc50e 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-ActivityFeedback.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-ActivityFeedback.cs @@ -14,6 +14,7 @@ using System.Data.Common; using System.Text; using Sarand.Net.Standard.Base.Utils; using System.Linq; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-ActivityIndex.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-ActivityIndex.cs index c69ad51..77713da 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-ActivityIndex.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-ActivityIndex.cs @@ -14,6 +14,7 @@ using System.Data.Common; using System.Text; using Sarand.Net.Standard.Base.Utils; using System.Linq; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-Article.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-Article.cs index 25665d5..04c314d 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-Article.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-Article.cs @@ -14,6 +14,7 @@ using System.Data.Common; using System.Text; using Sarand.Net.Standard.Base.Utils; using System.Linq; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-OrganisationEvent.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-OrganisationEvent.cs index ec56b27..4fe7af6 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-OrganisationEvent.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-OrganisationEvent.cs @@ -14,6 +14,7 @@ using System.Data.Common; using System.Text; using Sarand.Net.Standard.Base.Utils; using System.Linq; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-OrganisationOpportunity.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-OrganisationOpportunity.cs index f675ac2..fff2368 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-OrganisationOpportunity.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-OrganisationOpportunity.cs @@ -14,6 +14,7 @@ using System.Data.Common; using System.Text; using Sarand.Net.Standard.Base.Utils; using System.Linq; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-UserActivity.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-UserActivity.cs index 83869fc..aa2e938 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-UserActivity.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxActivityMgr_Dbas-UserActivity.cs @@ -14,6 +14,7 @@ using System.Data.Common; using System.Text; using Sarand.Net.Standard.Base.Utils; using System.Linq; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemAddress.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemAddress.cs index 066a617..63ce95f 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemAddress.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemAddress.cs @@ -14,6 +14,7 @@ using System.Text; using Saxonite.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Utils; using System.Linq; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemAssociation.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemAssociation.cs index c4f8201..800844d 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemAssociation.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemAssociation.cs @@ -14,6 +14,7 @@ using System.Text; using Saxonite.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Utils; using System.Linq; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemImage.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemImage.cs index bbf204c..4a910f1 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemImage.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemImage.cs @@ -14,6 +14,7 @@ using System.Text; using Saxonite.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Utils; using System.Linq; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemSport.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemSport.cs index 319f111..7f72c7f 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemSport.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxItemDataMgr_Dbas-ItemSport.cs @@ -13,6 +13,7 @@ using System.Data.Common; using System.Text; using Saxonite.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Utils; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxReferenceMgr_Dbas-Region.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxReferenceMgr_Dbas-Region.cs index 0ad3f45..87c794e 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxReferenceMgr_Dbas-Region.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxReferenceMgr_Dbas-Region.cs @@ -14,6 +14,7 @@ using System.Data.Common; using System.Text; using Sarand.Net.Standard.Base.Utils; using System.Linq; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Dbas/Mgr/SaxReferenceMgr_Dbas-Sport.cs b/SaxoniteStandardDbas/Dbas/Mgr/SaxReferenceMgr_Dbas-Sport.cs index 4c93874..130ae96 100644 --- a/SaxoniteStandardDbas/Dbas/Mgr/SaxReferenceMgr_Dbas-Sport.cs +++ b/SaxoniteStandardDbas/Dbas/Mgr/SaxReferenceMgr_Dbas-Sport.cs @@ -14,6 +14,7 @@ using System.Data.Common; using System.Text; using Sarand.Net.Standard.Base.Utils; using System.Linq; +using Saxonite.Net.Standard.Dbas.Internal.Core; namespace Saxonite.Net.Standard.Dbas.Mgr { diff --git a/SaxoniteStandardDbas/Resources/Database/SaxDbDfn_Core.xml b/SaxoniteStandardDbas/Resources/Database/SaxDbDfn_Core.xml index 9ffe7e6..93e2800 100644 --- a/SaxoniteStandardDbas/Resources/Database/SaxDbDfn_Core.xml +++ b/SaxoniteStandardDbas/Resources/Database/SaxDbDfn_Core.xml @@ -5980,8 +5980,8 @@ false false false - 0 - 0 + 1 + 1 false @@ -6289,8 +6289,8 @@ false false false - 0 - 0 + 1 + 5 false @@ -7371,6 +7371,23 @@ dbo
UserSport
5 + ContactsData + VarChar + + -9 + nvarchar + false + 0 + 0 + 0 + Nullable + true + + + + dbo + UserSport
+ 6 Participation SmallInt @@ -7387,7 +7404,7 @@ dbo UserSport
- 6 + 7 Officiating SmallInt @@ -7404,7 +7421,7 @@ dbo UserSport
- 7 + 8 UserSportData VarChar @@ -7421,7 +7438,7 @@ dbo UserSport
- 8 + 9 Notes VarChar @@ -7438,7 +7455,7 @@ dbo UserSport
- 9 + 10 Flags SmallInt @@ -7455,7 +7472,7 @@ dbo UserSport
- 10 + 11 Status VarChar @@ -7472,7 +7489,7 @@ dbo UserSport
- 11 + 12 CreateOn DateTime @@ -7489,7 +7506,7 @@ dbo UserSport
- 12 + 13 CreateBy Int @@ -7506,7 +7523,7 @@ dbo UserSport
- 13 + 14 CreateHost VarChar @@ -7523,7 +7540,7 @@ dbo UserSport
- 14 + 15 UpdateOn DateTime @@ -7540,7 +7557,7 @@ dbo UserSport
- 15 + 16 UpdateBy Int @@ -7557,7 +7574,7 @@ dbo UserSport
- 16 + 17 UpdateHost VarChar diff --git a/SaxoniteStandardDbas/Resources/Database/SaxDbDfn_Support.xml b/SaxoniteStandardDbas/Resources/Database/SaxDbDfn_Support.xml new file mode 100644 index 0000000..5110bd4 --- /dev/null +++ b/SaxoniteStandardDbas/Resources/Database/SaxDbDfn_Support.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/SaxoniteStandardDbas/SaxoniteStandardDbas.csproj b/SaxoniteStandardDbas/SaxoniteStandardDbas.csproj index 68cf8b2..4bd5ac6 100644 --- a/SaxoniteStandardDbas/SaxoniteStandardDbas.csproj +++ b/SaxoniteStandardDbas/SaxoniteStandardDbas.csproj @@ -15,4 +15,9 @@ + + + + +