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,
}
//-------------------------------------------------------------------
}
//=======================================================================
}