325 lines
8.6 KiB
C#
325 lines
8.6 KiB
C#
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
|
|
{
|
|
/// <summary>Default cookie name: '.AspNetCore.Session'</summary>
|
|
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
|
|
{
|
|
/// <summary>Default cookie name: '.AspNetCore.Session'</summary>
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>
|
|
/// Code types (static lists).
|
|
/// <para>Defined by the underlying system and available for use throughout any application.</para>
|
|
/// <para>Only maintainable by updates to the software, ie. not held on the database.</para>
|
|
/// </summary>
|
|
public enum CodeType
|
|
{
|
|
YesNo,
|
|
DataItemType,
|
|
SportParticipation,
|
|
SportOfficiating,
|
|
RegionType,
|
|
UserRole,
|
|
Title,
|
|
ImageType,
|
|
OrganisationType,
|
|
OrganisationCategory,
|
|
OrganisationRole,
|
|
AddressType,
|
|
OpportunityType,
|
|
ActivityReaction,
|
|
};
|
|
|
|
//-------------------------------------------------------------------
|
|
public enum Application
|
|
{
|
|
Admin,
|
|
Online,
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
public enum InstanceType
|
|
{
|
|
Production,
|
|
UAT,
|
|
QC,
|
|
Dev
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>Yes or No option.</summary>
|
|
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,
|
|
Article = 210,
|
|
OrganisationOpportunity = 220,
|
|
OrganisationEvent = 225,
|
|
// Item link components.
|
|
ItemImage = 400,
|
|
ItemAddress = 405,
|
|
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,
|
|
/// <summary>Country - self-governing political entity, eg. Country, State (not US state)</summary>
|
|
Country = 30,
|
|
/// <summary>Nation, eg. Home Nation.</summary>
|
|
Nation = 70,
|
|
/// <summary>STate - major subdivision of country, eg. US state.</summary>
|
|
State = 80,
|
|
/// <summary>Province - eg. GB County.</summary>
|
|
Province = 90
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>User roles</summary>
|
|
public enum UserRole
|
|
{
|
|
Unknown = 0,
|
|
/* Do not change the values - tied to database. */
|
|
Journalist,
|
|
SystemAdmin,
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>Sport Participation</summary>
|
|
public enum SportParticipation
|
|
{
|
|
Unknown = 0,
|
|
/* Do not change the values/codes - tied to database. */
|
|
Professional = 100,
|
|
Regular = 200,
|
|
Occasional = 300,
|
|
Spectator = 400,
|
|
Interested = 900,
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>Sport Officiating</summary>
|
|
public enum SportOfficiating
|
|
{
|
|
Unknown = 0,
|
|
/* Do not change the values/codes - tied to database. */
|
|
Professional = 100,
|
|
Regular = 200,
|
|
Occasional = 300,
|
|
Interested = 900,
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>Titles - for Contact details.</summary>
|
|
public enum Title
|
|
{
|
|
Unknown = 0,
|
|
Mr,
|
|
Mrs,
|
|
Miss,
|
|
Mx,
|
|
Dr,
|
|
Sir,
|
|
Madam,
|
|
Lord,
|
|
Lady
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>Image Types.</summary>
|
|
public enum ImageType
|
|
{
|
|
Unknown,
|
|
/// <summary>User's profile image.</summary>
|
|
Avatar = 100,
|
|
/// <summary>User's profile image, uploaded awaiting confirmation.</summary>
|
|
AvatarUpload = 101,
|
|
/// <summary>Article image.</summary>
|
|
Article = 200,
|
|
/// <summary>Article image uploaded, awaiting confirmation.</summary>
|
|
ArticleUpload = 201,
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>Organisation Types.</summary>
|
|
public enum OrganisationType
|
|
{
|
|
Unknown = 0,
|
|
/* Do not change the names/codes - tied to database. */
|
|
Commercial,
|
|
SocialEnterprise,
|
|
CommunityGroup,
|
|
Charity,
|
|
PublicSector,
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>Organisation Category.</summary>
|
|
public enum OrganisationCategory
|
|
{
|
|
Unknown = 0,
|
|
/* Do not change the names/codes - tied to database. */
|
|
Association,
|
|
Club,
|
|
Education,
|
|
Syndicate,
|
|
/// <summary>Commercial partner</summary>
|
|
Partner,
|
|
/// <summary>Other</summary>
|
|
Other,
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>Organisation roles</summary>
|
|
public enum OrganisationRole
|
|
{
|
|
Unknown = 0,
|
|
/* Do not change the values/codes - tied to database. */
|
|
Member,
|
|
MemberAdmin,
|
|
ScheduleAdmin,
|
|
OpportunityAdmin,
|
|
ArticleAdmin,
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
public enum AddressType
|
|
{
|
|
Unknown = 0,
|
|
/* Do not change the numeric values - tied to database. */
|
|
Location = 10,
|
|
Home = 20,
|
|
Office = 50,
|
|
Delivery = 60,
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>Opportunity Type</summary>
|
|
public enum OpportunityType
|
|
{
|
|
Unknown = 0,
|
|
/* Do not change the values or codes - tied to database. */
|
|
Playing,
|
|
Official,
|
|
Coaching,
|
|
Volunteer,
|
|
Staff,
|
|
Board,
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>Activity Reaction</summary>
|
|
public enum ActivityReaction
|
|
{
|
|
Unknown = 0,
|
|
/* Do not change the values or codes - tied to database. */
|
|
Good = 400,
|
|
VeryGood = 600,
|
|
Exceptional = 800,
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|