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, DataItemType, SportParticipation, SportOfficiating, RegionType, UserRole, Title, ImageType, OrganisationType, OrganisationCategory, OrganisationRole, OpportunityType, ActivityReaction, }; //------------------------------------------------------------------- public enum Application { Admin, Online, } //------------------------------------------------------------------- public enum InstanceType { Production, UAT, QC, Dev } //------------------------------------------------------------------- /// Yes or No option. public enum YesNo { Unknown = 0, Yes, No } //------------------------------------------------------------------- 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, UserSport = 103, Organisation = 120, // Activty data. ActivityIndex = 200, UserActivity = 202, JournalistArticle = 210, OrganisationOpportunity = 220, OrganisationEvent = 225, // Item link components. ItemImage = 400, ItemSport = 420, } //------------------------------------------------------------------- public enum RegionType { Unknown = 0, /* Do not change the numeric values - tied to database. */ Universe = 1, Galaxy = 2, World = 5, Continent = 10, SubContinent = 20, /// Country - self-governing political entity, eg. Country, State (not US state) Country = 30, /// Nation, eg. Home Nation. Nation = 70, /// STate - major subdivision of country, eg. US state. State = 80, /// Province - eg. GB County. Province = 90 } //------------------------------------------------------------------- /// User roles public enum UserRole { Unknown = 0, /* Do not change the values - tied to database. */ Journalist, SystemAdmin, } //------------------------------------------------------------------- /// Sport Participation public enum SportParticipation { Unknown = 0, /* Do not change the values/codes - tied to database. */ Professional = 100, Regular = 200, Occasional = 300, Spectator = 400, Interested = 900, } //------------------------------------------------------------------- /// Sport Officiating public enum SportOfficiating { Unknown = 0, /* Do not change the values/codes - tied to database. */ Professional = 100, Regular = 200, Occasional = 300, Interested = 900, } //------------------------------------------------------------------- /// Titles - for Contact details. public enum Title { Unknown = 0, Mr, Mrs, Miss, Mx, Dr, Sir, Madam, Lord, Lady } //------------------------------------------------------------------- /// Image Types. public enum ImageType { Unknown, /// User's profile image. Avatar = 100, /// User's profile image, uploaded awaiting confirmation. AvatarUpload = 101, /// Journalist Article image. Article = 200, /// Journalist Article image uploaded, awaiting confirmation. ArticleUpload = 201, } //------------------------------------------------------------------- /// 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, } //------------------------------------------------------------------- /// Opportunity Type public enum OpportunityType { Unknown = 0, /* Do not change the values or codes - tied to database. */ Playing, Official, Coaching, Volunteer, Staff, Board, } //------------------------------------------------------------------- /// Activity Reaction public enum ActivityReaction { Unknown = 0, /* Do not change the values or codes - tied to database. */ Good = 400, VeryGood = 600, Exceptional = 800, } //------------------------------------------------------------------- } //======================================================================= }