using Sarand.Net.Standard.Base.App; using System; using System.Collections.Generic; using System.Text; namespace Saxonite.Net.Standard.Base.App { //======================================================================= public static partial class Sax { //------------------------------------------------------------------- // Application configuration defaults. public static class Config { public static String Context_Defaults { get; } = "Defaults"; public static class Security { public static class Password { } public static class Activation { public static int EmailLinkExpiresMins_Default { get; } = 60; public static int EmailLinkExpiresMins_Min { get; } = 30; public static int EmailLinkExpiresMins_Max { get; } = 60 * 24; } public static class SignIn { public static class PasswordRequest { public static int EmailLinkExpiresMins_Default { get; } = 60; public static int EmailLinkExpiresMins_Min { get; } = 30; public static int EmailLinkExpiresMins_Max { get; } = 60 * 24; } public static class KeepLoggedIn { public static bool Allowed_Default { get; } = true; public static int CookieExpiresDays_Default { get; } = 10; public static int CookieExpiresDays_Min { get; } = 1; public static int CookieExpiresDays_Max { get; } = 30; } } } public class Online { public static class Session { public static class Cookie { /// Default cookie name: '.AspNetCore.Session' public static String Name { get; } = "Saxonite.Online.Session"; public static bool HttpOnly { get; } = true; public static TimeSpan IdleTimeout { get; } = SacsSystem.DebugMode ? TimeSpan.FromMinutes(5) : TimeSpan.FromMinutes(60); public static long RememberMeTimeoutMilis { get; } = (long)(SacsSystem.DebugMode ? TimeSpan.FromMinutes(2) : TimeSpan.FromMinutes(10)).TotalMilliseconds; } } public static class DataCache { public static class RefreshIntervalSecs { public static int Initial { get; } = SacsSystem.DebugMode ? 2 : 5; public static int Periodic{ get; } = SacsSystem.DebugMode ? 60 : 1800; } } } public class Admin { public static class Session { public static class Cookie { /// Default cookie name: '.AspNetCore.Session' public static String Name { get; } = "Saxonite.Admin.Session"; public static bool HttpOnly { get; } = true; public static TimeSpan IdleTimeout { get; } = SacsSystem.DebugMode ? TimeSpan.FromMinutes(5) : TimeSpan.FromMinutes(15); public static long KeepLoggedInTimeoutMillis { get; } = (long)(SacsSystem.DebugMode ? TimeSpan.FromMinutes(2) : TimeSpan.FromMinutes(10)).TotalMilliseconds; } } } } //------------------------------------------------------------------- /// /// Code types (static lists). /// Defined by the underlying system and available for use throughout any application. /// Only maintainable by updates to the software, ie. not held on the database. /// public enum CodeType { YesNo, RegionType, UserRole, Title, OrganisationType, OrganisationCategory, OrganisationRole, }; //------------------------------------------------------------------- public enum Application { Admin, Online, } //------------------------------------------------------------------- public enum InstanceType { Production, UAT, QC, Dev } //------------------------------------------------------------------- public enum DataItemType { Unknown = 0, /* Do not change the numeric values - tied to database. */ // Reference data. Region = 10, Sport = 11, // Accounts. UserAccount = 100, UserRole = 101, UserOrganisation = 102, Organisation = 120, // Activty data. ScheduledEvent = 200, JournalistArticle = 210, OrganisationOpportunity = 220, // Item link components. ItemSport = 400, } //------------------------------------------------------------------- public enum RegionType { Unknown = 0, /* Do not change the numeric values - tied to database. */ Continent = 10, SubContinent = 20, /// Country - self-governing political entity, eg. Country, State (not US state) Country = 30, /// Nation, eg. Home Nation. Nation = 40, /// STate - major subdivision of country, eg. US state. State = 50, /// Province - eg. GB County. Province = 60 } //------------------------------------------------------------------- /// User roles public enum UserRole { Unknown = 0, /* Do not change the values - tied to database. */ Journalist, SystemAdmin, } //------------------------------------------------------------------- /// Yes or No option. public enum YesNo { Unknown = 0, Yes, No } //------------------------------------------------------------------- /// Titles - for Contact details. public enum Title { Unknown = 0, Mr, Mrs, Miss, Mx, Dr, Sir, Madam, Lord, Lady } //------------------------------------------------------------------- /// Organisation Types. public enum OrganisationType { Unknown = 0, /* Do not change the names/codes - tied to database. */ Commercial, SocialEnterprise, CommunityGroup, Charity, PublicSector, } //------------------------------------------------------------------- /// Organisation Category. public enum OrganisationCategory { Unknown = 0, /* Do not change the names/codes - tied to database. */ Association, Club, Education, Syndicate, /// Commercial partner Partner, /// Other Other, } //------------------------------------------------------------------- /// Organisation roles public enum OrganisationRole { Unknown = 0, /* Do not change the values - tied to database. */ Member, MemberAdmin, ScheduleAdmin, OpportunityAdmin, } //------------------------------------------------------------------- } //======================================================================= }