Files
Saxonite/SaxoniteStandardBase/Base/App/Sax.cs
T
2021-06-25 11:20:18 +01:00

311 lines
8.3 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,
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,
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,
/// <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>Journalist Article image.</summary>
Article = 200,
/// <summary>Journalist 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 - tied to database. */
Member,
MemberAdmin,
ScheduleAdmin,
OpportunityAdmin,
}
//-------------------------------------------------------------------
/// <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,
}
//-------------------------------------------------------------------
}
//=======================================================================
}