v1.0.5.0
Activity Index. User Account country. Internals regions.
This commit is contained in:
@@ -18,7 +18,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
public static class Version
|
||||
{
|
||||
private static String version { get; } = "1.0.4.2";
|
||||
private static String version { get; } = "1.0.5.0";
|
||||
// Retrieve version.
|
||||
public static String GetFullVersion () { return version; }
|
||||
public static String GetAppVersion ()
|
||||
@@ -39,6 +39,9 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Version history.
|
||||
// 1.0.5 ?-May-2021 Activity Index
|
||||
// - Admin Database page.
|
||||
// - Online Account country.
|
||||
// 1.0.4 20-May-2021 Online profile sports & opportunities
|
||||
// - Admin Organisation Region & Sport.
|
||||
// - Online Profile Sports - simple list with name.
|
||||
|
||||
@@ -95,6 +95,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
OrganisationCategory,
|
||||
OrganisationRole,
|
||||
OpportunityType,
|
||||
DataItemType,
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -128,9 +129,10 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
UserSport = 103,
|
||||
Organisation = 120,
|
||||
// Activty data.
|
||||
ScheduledEvent = 200,
|
||||
ActivityIndex = 200,
|
||||
JournalistArticle = 210,
|
||||
OrganisationOpportunity = 220,
|
||||
OrganisationEvent = 225,
|
||||
// Item link components.
|
||||
ItemSport = 400,
|
||||
}
|
||||
|
||||
+99
-65
@@ -6,17 +6,18 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Thu 20-May-2021 17:19:55
|
||||
// Code generated by Sarand Database Utilities Tue 25-May-2021 19:36:10
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Base.App
|
||||
{
|
||||
public class SaxDbDfn
|
||||
public class SaxDbDfn_Core
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Table identifiers.
|
||||
public enum TableIdx
|
||||
{
|
||||
Unknown = 0,
|
||||
ActivityIndex,
|
||||
ItemSport,
|
||||
JournalistArticle,
|
||||
Organisation,
|
||||
@@ -34,6 +35,20 @@ namespace Saxonite.Base.App
|
||||
public enum ColumnIdx
|
||||
{
|
||||
Unknown = 0,
|
||||
ActivityIndex_ItemType,
|
||||
ActivityIndex_ItemId,
|
||||
ActivityIndex_SportId,
|
||||
ActivityIndex_RegionId,
|
||||
ActivityIndex_EffectiveOn,
|
||||
ActivityIndex_Notes,
|
||||
ActivityIndex_Flags,
|
||||
ActivityIndex_Status,
|
||||
ActivityIndex_CreateOn,
|
||||
ActivityIndex_CreateBy,
|
||||
ActivityIndex_CreateHost,
|
||||
ActivityIndex_UpdateOn,
|
||||
ActivityIndex_UpdateBy,
|
||||
ActivityIndex_UpdateHost,
|
||||
ItemSport_Id,
|
||||
ItemSport_ItemType,
|
||||
ItemSport_ItemId,
|
||||
@@ -50,8 +65,8 @@ namespace Saxonite.Base.App
|
||||
ItemSport_UpdateHost,
|
||||
JournalistArticle_Id,
|
||||
JournalistArticle_UserAccountIdJournalist,
|
||||
JournalistArticle_RegionIdPrimary,
|
||||
JournalistArticle_SportIdPrimary,
|
||||
JournalistArticle_RegionIdPrimary,
|
||||
JournalistArticle_Headline,
|
||||
JournalistArticle_Summary,
|
||||
JournalistArticle_BodyData,
|
||||
@@ -69,8 +84,8 @@ namespace Saxonite.Base.App
|
||||
Organisation_Name,
|
||||
Organisation_OrganisationType,
|
||||
Organisation_OrganisationCategory,
|
||||
Organisation_RegionIdPrimary,
|
||||
Organisation_SportIdPrimary,
|
||||
Organisation_RegionIdPrimary,
|
||||
Organisation_CountryIso2Code,
|
||||
Organisation_PhoneMain,
|
||||
Organisation_PhoneAlt,
|
||||
@@ -85,8 +100,8 @@ namespace Saxonite.Base.App
|
||||
Organisation_UpdateHost,
|
||||
OrganisationOpportunity_Id,
|
||||
OrganisationOpportunity_OrganisationId,
|
||||
OrganisationOpportunity_RegionIdPrimary,
|
||||
OrganisationOpportunity_SportIdPrimary,
|
||||
OrganisationOpportunity_RegionIdPrimary,
|
||||
OrganisationOpportunity_OpportunityTypeCode,
|
||||
OrganisationOpportunity_Position,
|
||||
OrganisationOpportunity_Outline,
|
||||
@@ -139,6 +154,8 @@ namespace Saxonite.Base.App
|
||||
UserAccount_PhoneMobile,
|
||||
UserAccount_PhoneAlt,
|
||||
UserAccount_DateOfBirth,
|
||||
UserAccount_RegionIdCountry,
|
||||
UserAccount_RegionIdProvince,
|
||||
UserAccount_PasswordToken,
|
||||
UserAccount_PasswordHashed,
|
||||
UserAccount_PasswordHistory,
|
||||
@@ -198,8 +215,8 @@ namespace Saxonite.Base.App
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private static readonly int tableCount = 10;
|
||||
private static readonly int columnCount = 160;
|
||||
private static readonly int tableCount = 11;
|
||||
private static readonly int columnCount = 176;
|
||||
private static ulong maxTextLen = 0;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -255,7 +272,7 @@ namespace Saxonite.Base.App
|
||||
private static DbReservedWordDelim reservedWordDelim = DbReservedWordDelim.SquareBrackets;
|
||||
public static void SetReservedWordDelim (DbReservedWordDelim reservedWordDelim)
|
||||
{
|
||||
SaxDbDfn.reservedWordDelim = reservedWordDelim;
|
||||
SaxDbDfn_Core.reservedWordDelim = reservedWordDelim;
|
||||
}
|
||||
public static bool IsReservedWord (String word)
|
||||
{
|
||||
@@ -297,7 +314,7 @@ namespace Saxonite.Base.App
|
||||
}
|
||||
public static void SetMaxTextLen (ulong maxTextLen)
|
||||
{
|
||||
SaxDbDfn.maxTextLen = maxTextLen;
|
||||
SaxDbDfn_Core.maxTextLen = maxTextLen;
|
||||
}
|
||||
public static bool IsColFmtText (ColumnIdx column)
|
||||
{
|
||||
@@ -345,6 +362,7 @@ namespace Saxonite.Base.App
|
||||
// Table definitions.
|
||||
private static readonly String[] tables =
|
||||
{
|
||||
"ActivityIndex",
|
||||
"ItemSport",
|
||||
"JournalistArticle",
|
||||
"Organisation",
|
||||
@@ -381,11 +399,11 @@ namespace Saxonite.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
private static readonly ColumnDfn[] columns =
|
||||
{
|
||||
new ColumnDfn(1,"Id",4,4,true,10),
|
||||
new ColumnDfn(1,"ItemType",3,5,false,5),
|
||||
new ColumnDfn(1,"ItemId",4,4,false,10),
|
||||
new ColumnDfn(1,"ItemId",5,-5,false,19),
|
||||
new ColumnDfn(1,"SportId",4,4,false,10),
|
||||
new ColumnDfn(1,"ItemSportData",0,-9,false,0),
|
||||
new ColumnDfn(1,"RegionId",4,4,false,10),
|
||||
new ColumnDfn(1,"EffectiveOn",9,93,false,16),
|
||||
new ColumnDfn(1,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(1,"Flags",3,5,false,5),
|
||||
new ColumnDfn(1,"Status",0,12,false,3),
|
||||
@@ -396,13 +414,10 @@ namespace Saxonite.Base.App
|
||||
new ColumnDfn(1,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(1,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(2,"Id",4,4,true,10),
|
||||
new ColumnDfn(2,"UserAccountIdJournalist",4,4,false,10),
|
||||
new ColumnDfn(2,"RegionIdPrimary",4,4,false,10),
|
||||
new ColumnDfn(2,"SportIdPrimary",4,4,false,10),
|
||||
new ColumnDfn(2,"Headline",0,-9,false,200),
|
||||
new ColumnDfn(2,"Summary",0,-9,false,2000),
|
||||
new ColumnDfn(2,"BodyData",0,-9,false,0),
|
||||
new ColumnDfn(2,"PublishedAt",9,93,false,16),
|
||||
new ColumnDfn(2,"ItemType",3,5,false,5),
|
||||
new ColumnDfn(2,"ItemId",4,4,false,10),
|
||||
new ColumnDfn(2,"SportId",4,4,false,10),
|
||||
new ColumnDfn(2,"ItemSportData",0,-9,false,0),
|
||||
new ColumnDfn(2,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(2,"Flags",3,5,false,5),
|
||||
new ColumnDfn(2,"Status",0,12,false,3),
|
||||
@@ -413,14 +428,13 @@ namespace Saxonite.Base.App
|
||||
new ColumnDfn(2,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(2,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(3,"Id",4,4,true,10),
|
||||
new ColumnDfn(3,"Name",0,-9,false,100),
|
||||
new ColumnDfn(3,"OrganisationType",0,12,false,3),
|
||||
new ColumnDfn(3,"OrganisationCategory",0,12,false,3),
|
||||
new ColumnDfn(3,"RegionIdPrimary",4,4,false,10),
|
||||
new ColumnDfn(3,"UserAccountIdJournalist",4,4,false,10),
|
||||
new ColumnDfn(3,"SportIdPrimary",4,4,false,10),
|
||||
new ColumnDfn(3,"CountryIso2Code",0,12,false,2),
|
||||
new ColumnDfn(3,"PhoneMain",0,-9,false,50),
|
||||
new ColumnDfn(3,"PhoneAlt",0,-9,false,50),
|
||||
new ColumnDfn(3,"RegionIdPrimary",4,4,false,10),
|
||||
new ColumnDfn(3,"Headline",0,-9,false,200),
|
||||
new ColumnDfn(3,"Summary",0,-9,false,2000),
|
||||
new ColumnDfn(3,"BodyData",0,-9,false,0),
|
||||
new ColumnDfn(3,"PublishedAt",9,93,false,16),
|
||||
new ColumnDfn(3,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(3,"Flags",3,5,false,5),
|
||||
new ColumnDfn(3,"Status",0,12,false,3),
|
||||
@@ -431,15 +445,14 @@ namespace Saxonite.Base.App
|
||||
new ColumnDfn(3,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(3,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(4,"Id",4,4,true,10),
|
||||
new ColumnDfn(4,"OrganisationId",4,4,false,10),
|
||||
new ColumnDfn(4,"RegionIdPrimary",4,4,false,10),
|
||||
new ColumnDfn(4,"Name",0,-9,false,100),
|
||||
new ColumnDfn(4,"OrganisationType",0,12,false,3),
|
||||
new ColumnDfn(4,"OrganisationCategory",0,12,false,3),
|
||||
new ColumnDfn(4,"SportIdPrimary",4,4,false,10),
|
||||
new ColumnDfn(4,"OpportunityTypeCode",0,12,false,3),
|
||||
new ColumnDfn(4,"Position",0,-9,false,200),
|
||||
new ColumnDfn(4,"Outline",0,-9,false,2000),
|
||||
new ColumnDfn(4,"OpportunityData",0,-9,false,0),
|
||||
new ColumnDfn(4,"PublishedAt",9,93,false,16),
|
||||
new ColumnDfn(4,"ExpiresAt",9,93,false,16),
|
||||
new ColumnDfn(4,"RegionIdPrimary",4,4,false,10),
|
||||
new ColumnDfn(4,"CountryIso2Code",0,12,false,2),
|
||||
new ColumnDfn(4,"PhoneMain",0,-9,false,50),
|
||||
new ColumnDfn(4,"PhoneAlt",0,-9,false,50),
|
||||
new ColumnDfn(4,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(4,"Flags",3,5,false,5),
|
||||
new ColumnDfn(4,"Status",0,12,false,3),
|
||||
@@ -450,12 +463,15 @@ namespace Saxonite.Base.App
|
||||
new ColumnDfn(4,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(4,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(5,"Id",4,4,true,10),
|
||||
new ColumnDfn(5,"RegionType",3,5,false,5),
|
||||
new ColumnDfn(5,"CountryIso2Code",0,12,false,2),
|
||||
new ColumnDfn(5,"Name",0,-9,false,100),
|
||||
new ColumnDfn(5,"Latitude",8,3,false,9),
|
||||
new ColumnDfn(5,"Longitude",8,3,false,9),
|
||||
new ColumnDfn(5,"RegionIdParent",4,4,false,10),
|
||||
new ColumnDfn(5,"OrganisationId",4,4,false,10),
|
||||
new ColumnDfn(5,"SportIdPrimary",4,4,false,10),
|
||||
new ColumnDfn(5,"RegionIdPrimary",4,4,false,10),
|
||||
new ColumnDfn(5,"OpportunityTypeCode",0,12,false,3),
|
||||
new ColumnDfn(5,"Position",0,-9,false,200),
|
||||
new ColumnDfn(5,"Outline",0,-9,false,2000),
|
||||
new ColumnDfn(5,"OpportunityData",0,-9,false,0),
|
||||
new ColumnDfn(5,"PublishedAt",9,93,false,16),
|
||||
new ColumnDfn(5,"ExpiresAt",9,93,false,16),
|
||||
new ColumnDfn(5,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(5,"Flags",3,5,false,5),
|
||||
new ColumnDfn(5,"Status",0,12,false,3),
|
||||
@@ -466,7 +482,12 @@ namespace Saxonite.Base.App
|
||||
new ColumnDfn(5,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(5,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(6,"Id",4,4,true,10),
|
||||
new ColumnDfn(6,"RegionType",3,5,false,5),
|
||||
new ColumnDfn(6,"CountryIso2Code",0,12,false,2),
|
||||
new ColumnDfn(6,"Name",0,-9,false,100),
|
||||
new ColumnDfn(6,"Latitude",8,3,false,9),
|
||||
new ColumnDfn(6,"Longitude",8,3,false,9),
|
||||
new ColumnDfn(6,"RegionIdParent",4,4,false,10),
|
||||
new ColumnDfn(6,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(6,"Flags",3,5,false,5),
|
||||
new ColumnDfn(6,"Status",0,12,false,3),
|
||||
@@ -477,22 +498,7 @@ namespace Saxonite.Base.App
|
||||
new ColumnDfn(6,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(6,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(7,"Id",4,4,true,10),
|
||||
new ColumnDfn(7,"EmailAddress",0,-9,false,200),
|
||||
new ColumnDfn(7,"Title",0,-9,false,20),
|
||||
new ColumnDfn(7,"FirstName",0,-9,false,100),
|
||||
new ColumnDfn(7,"Initials",0,-9,false,10),
|
||||
new ColumnDfn(7,"LastName",0,-9,false,100),
|
||||
new ColumnDfn(7,"PhoneMain",0,-9,false,50),
|
||||
new ColumnDfn(7,"PhoneMobile",0,-9,false,50),
|
||||
new ColumnDfn(7,"PhoneAlt",0,-9,false,50),
|
||||
new ColumnDfn(7,"DateOfBirth",9,93,false,16),
|
||||
new ColumnDfn(7,"PasswordToken",0,12,false,32),
|
||||
new ColumnDfn(7,"PasswordHashed",0,-9,false,100),
|
||||
new ColumnDfn(7,"PasswordHistory",0,-9,false,0),
|
||||
new ColumnDfn(7,"PasswordChangedAt",9,93,false,16),
|
||||
new ColumnDfn(7,"LastLoginAt",9,93,false,16),
|
||||
new ColumnDfn(7,"LastInvalidLoginAt",9,93,false,16),
|
||||
new ColumnDfn(7,"InvalidLoginCount",3,5,false,5),
|
||||
new ColumnDfn(7,"Name",0,-9,false,100),
|
||||
new ColumnDfn(7,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(7,"Flags",3,5,false,5),
|
||||
new ColumnDfn(7,"Status",0,12,false,3),
|
||||
@@ -502,11 +508,25 @@ namespace Saxonite.Base.App
|
||||
new ColumnDfn(7,"UpdateOn",9,93,false,23),
|
||||
new ColumnDfn(7,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(7,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(8,"Id",5,-5,true,19),
|
||||
new ColumnDfn(8,"UserAccountId",4,4,false,10),
|
||||
new ColumnDfn(8,"OrganisationId",4,4,false,10),
|
||||
new ColumnDfn(8,"OrganisationRoleCodes",0,12,false,256),
|
||||
new ColumnDfn(8,"OrganisationRoleCount",2,-6,false,3),
|
||||
new ColumnDfn(8,"Id",4,4,true,10),
|
||||
new ColumnDfn(8,"EmailAddress",0,-9,false,200),
|
||||
new ColumnDfn(8,"Title",0,-9,false,20),
|
||||
new ColumnDfn(8,"FirstName",0,-9,false,100),
|
||||
new ColumnDfn(8,"Initials",0,-9,false,10),
|
||||
new ColumnDfn(8,"LastName",0,-9,false,100),
|
||||
new ColumnDfn(8,"PhoneMain",0,-9,false,50),
|
||||
new ColumnDfn(8,"PhoneMobile",0,-9,false,50),
|
||||
new ColumnDfn(8,"PhoneAlt",0,-9,false,50),
|
||||
new ColumnDfn(8,"DateOfBirth",9,93,false,16),
|
||||
new ColumnDfn(8,"RegionIdCountry",4,4,false,10),
|
||||
new ColumnDfn(8,"RegionIdProvince",4,4,false,10),
|
||||
new ColumnDfn(8,"PasswordToken",0,12,false,32),
|
||||
new ColumnDfn(8,"PasswordHashed",0,-9,false,100),
|
||||
new ColumnDfn(8,"PasswordHistory",0,-9,false,0),
|
||||
new ColumnDfn(8,"PasswordChangedAt",9,93,false,16),
|
||||
new ColumnDfn(8,"LastLoginAt",9,93,false,16),
|
||||
new ColumnDfn(8,"LastInvalidLoginAt",9,93,false,16),
|
||||
new ColumnDfn(8,"InvalidLoginCount",3,5,false,5),
|
||||
new ColumnDfn(8,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(8,"Flags",3,5,false,5),
|
||||
new ColumnDfn(8,"Status",0,12,false,3),
|
||||
@@ -516,9 +536,11 @@ namespace Saxonite.Base.App
|
||||
new ColumnDfn(8,"UpdateOn",9,93,false,23),
|
||||
new ColumnDfn(8,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(8,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(9,"Id",4,4,true,10),
|
||||
new ColumnDfn(9,"Id",5,-5,true,19),
|
||||
new ColumnDfn(9,"UserAccountId",4,4,false,10),
|
||||
new ColumnDfn(9,"UserRoleCode",0,12,false,16),
|
||||
new ColumnDfn(9,"OrganisationId",4,4,false,10),
|
||||
new ColumnDfn(9,"OrganisationRoleCodes",0,12,false,256),
|
||||
new ColumnDfn(9,"OrganisationRoleCount",2,-6,false,3),
|
||||
new ColumnDfn(9,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(9,"Flags",3,5,false,5),
|
||||
new ColumnDfn(9,"Status",0,12,false,3),
|
||||
@@ -530,8 +552,7 @@ namespace Saxonite.Base.App
|
||||
new ColumnDfn(9,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(10,"Id",4,4,true,10),
|
||||
new ColumnDfn(10,"UserAccountId",4,4,false,10),
|
||||
new ColumnDfn(10,"SportId",4,4,false,10),
|
||||
new ColumnDfn(10,"UserSportData",0,-9,false,0),
|
||||
new ColumnDfn(10,"UserRoleCode",0,12,false,16),
|
||||
new ColumnDfn(10,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(10,"Flags",3,5,false,5),
|
||||
new ColumnDfn(10,"Status",0,12,false,3),
|
||||
@@ -541,6 +562,19 @@ namespace Saxonite.Base.App
|
||||
new ColumnDfn(10,"UpdateOn",9,93,false,23),
|
||||
new ColumnDfn(10,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(10,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(11,"Id",4,4,true,10),
|
||||
new ColumnDfn(11,"UserAccountId",4,4,false,10),
|
||||
new ColumnDfn(11,"SportId",4,4,false,10),
|
||||
new ColumnDfn(11,"UserSportData",0,-9,false,0),
|
||||
new ColumnDfn(11,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(11,"Flags",3,5,false,5),
|
||||
new ColumnDfn(11,"Status",0,12,false,3),
|
||||
new ColumnDfn(11,"CreateOn",9,93,false,23),
|
||||
new ColumnDfn(11,"CreateBy",4,4,false,10),
|
||||
new ColumnDfn(11,"CreateHost",0,12,false,100),
|
||||
new ColumnDfn(11,"UpdateOn",9,93,false,23),
|
||||
new ColumnDfn(11,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(11,"UpdateHost",0,12,false,100),
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -6,6 +6,10 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Saxonite.Net.Standard.Base.Consoles;
|
||||
using Saxonite.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
|
||||
namespace Saxonite.Net.Standard.Base.App
|
||||
{
|
||||
@@ -14,6 +18,11 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private class DataMembers
|
||||
{
|
||||
public bool useDataCacheConsole;
|
||||
}
|
||||
private readonly DataMembers data = new DataMembers();
|
||||
private class Managers
|
||||
{
|
||||
public SaxReferenceMgr referenceMgr = null;
|
||||
@@ -24,18 +33,34 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
private readonly Managers mgr = new Managers();
|
||||
private class Consoles
|
||||
{
|
||||
public SaxActivityConsole activityConsole;
|
||||
public SaxEmailConsole emailConsole;
|
||||
}
|
||||
private readonly Consoles con = new Consoles();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SaxInternals(SaxSessionContext sessionContext)
|
||||
public SaxInternals(SaxSessionContext sessionContext, bool useDataCacheConsole = true)
|
||||
{
|
||||
if (sessionContext == null)
|
||||
throw new NotSupportedException("Unable to create Internals with invalid session context");
|
||||
data.useDataCacheConsole = useDataCacheConsole;
|
||||
System = SaxGlobals.System;
|
||||
SessionContext = sessionContext;
|
||||
|
||||
try
|
||||
{
|
||||
// Check for data cache.
|
||||
// NB Must not do this if Internals constructed by the DataCache console itself as cached data will not be requested from here.
|
||||
if (useDataCacheConsole)
|
||||
{
|
||||
// Inside try..catch as Admin app throws exception on GetDataCacheConsole().
|
||||
SaxDataCacheConsole dataCacheConsole = SaxGlobals.ConsoleHelper.GetDataCacheConsole(SessionContext);
|
||||
if (dataCacheConsole != null)
|
||||
dataCacheConsole.PopulateCachedDataToInternals(this);
|
||||
}
|
||||
}
|
||||
catch (Exception) { }
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
@@ -45,6 +70,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
if (mgr.accountMgr != null) mgr.accountMgr.Dispose(); mgr.accountMgr = null;
|
||||
if (mgr.activityMgr != null) mgr.activityMgr.Dispose(); mgr.activityMgr = null;
|
||||
if (mgr.itemDataMgr != null) mgr.itemDataMgr.Dispose(); mgr.itemDataMgr = null;
|
||||
if (con.activityConsole != null) con.activityConsole.Dispose(); con.activityConsole = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,6 +93,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
public List<TypeCodeDesc> OrganisationCategories { get { return GetCodesOfType(Sax.CodeType.OrganisationCategory); } }
|
||||
public List<TypeCodeDesc> OrganisationRoles { get { return GetCodesOfType(Sax.CodeType.OrganisationRole); } }
|
||||
public List<TypeCodeDesc> OpportunityTypes { get { return GetCodesOfType(Sax.CodeType.OpportunityType); } }
|
||||
public List<TypeCodeDesc> DataItemTypes { get { return GetCodesOfType(Sax.CodeType.DataItemType); } }
|
||||
public List<TypeCodeDesc> GetCodesOfType(Sax.CodeType codeType)
|
||||
{
|
||||
if (!codeTypes.ContainsKey(codeType))
|
||||
@@ -76,18 +103,19 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Consoles.
|
||||
public SaxDataCacheConsole DataCacheConsole { get { return SaxGlobals.ConsoleHelper.GetDataCacheConsole(SessionContext); } }
|
||||
public SaxConsoleHelper ConsoleHelper { get { return SaxGlobals.App.ConsoleHelper; } }
|
||||
public SaxDataCacheConsole DataCacheConsole { get { return SaxGlobals.ConsoleHelper.GetDataCacheConsole(SessionContext); } }
|
||||
public SaxActivityConsole ActivityConsole { get { if (con.activityConsole == null) con.activityConsole = ConsoleHelper.CreateActivityConsole(SessionContext); return con.activityConsole; } }
|
||||
public SaxEmailConsole EmailConsole { get { if (con.emailConsole == null) con.emailConsole = ConsoleHelper.CreateEmailConsole(SessionContext); return con.emailConsole; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Business components.
|
||||
// Managers.
|
||||
public SaxReferenceMgr ReferenceMgr
|
||||
{
|
||||
get
|
||||
{
|
||||
if (mgr.referenceMgr == null)
|
||||
mgr.referenceMgr = System.CreateReferenceMgr(SessionContext);
|
||||
mgr.referenceMgr = System.CreateReferenceMgr(SessionContext, this);
|
||||
return mgr.referenceMgr;
|
||||
}
|
||||
}
|
||||
@@ -96,7 +124,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
get
|
||||
{
|
||||
if (mgr.accountMgr == null)
|
||||
mgr.accountMgr = System.CreateAccountMgr(SessionContext);
|
||||
mgr.accountMgr = System.CreateAccountMgr(SessionContext, this);
|
||||
return mgr.accountMgr;
|
||||
}
|
||||
}
|
||||
@@ -105,7 +133,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
get
|
||||
{
|
||||
if (mgr.activityMgr == null)
|
||||
mgr.activityMgr = System.CreateActivityMgr(SessionContext);
|
||||
mgr.activityMgr = System.CreateActivityMgr(SessionContext, this);
|
||||
return mgr.activityMgr;
|
||||
}
|
||||
}
|
||||
@@ -114,11 +142,159 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
get
|
||||
{
|
||||
if (mgr.itemDataMgr == null)
|
||||
mgr.itemDataMgr = System.CreateItemDataMgr(SessionContext);
|
||||
mgr.itemDataMgr = System.CreateItemDataMgr(SessionContext, this);
|
||||
return mgr.itemDataMgr;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Regions.
|
||||
// NB Online application caches regions and sports so these may be pre-populated in the Internals.
|
||||
// Otherwise they are populated on first request.
|
||||
private readonly Dictionary<SysId, SaxRegion.Data> regionCache = new Dictionary<SysId, SaxRegion.Data>();
|
||||
private bool regionCacheFullyPopulated = false;
|
||||
public void PopulateRegionCache(List<SaxRegion.Data> regions)
|
||||
{
|
||||
foreach (SaxRegion.Data regionData in regions)
|
||||
regionCache[regionData.Id] = regionData.Clone();
|
||||
regionCacheFullyPopulated = true;
|
||||
SaLogger.Debug(GetType().Name + ".PopulateRegionCache(regions) Regions populated: " + regionCache.Count);
|
||||
}
|
||||
public void RefreshRegionCache()
|
||||
{
|
||||
if (regionCacheFullyPopulated) return;
|
||||
DateTime startedAt = DateTime.Now;
|
||||
SaxRegion.Params prmRegion = new SaxRegion.Params();
|
||||
prmRegion.StatusCat = SaxRegion.StatusCat.NotDeleted;
|
||||
int regionsQueried = 0;
|
||||
foreach (SaxRegion region in ReferenceMgr.GetRegionList(prmRegion))
|
||||
{
|
||||
regionsQueried++;
|
||||
regionCache[region.Id] = region.GetData();
|
||||
region.Dispose();
|
||||
}
|
||||
regionCacheFullyPopulated = true;
|
||||
SaLogger.Debug(GetType().Name + ".RefreshRegionCache() Regions queried: " + regionsQueried + ". Regions in cache: " + regionCache.Count + ". Elapsed: " + DateUtil.FormatNumberOfSeconds((DateTime.Now - startedAt).TotalSeconds));
|
||||
}
|
||||
private void QueryRegionsToCache(List<SysId> regionsIds)
|
||||
{
|
||||
if (regionCacheFullyPopulated) return;
|
||||
SaxRegion.Params prmRegion = new SaxRegion.Params();
|
||||
prmRegion.IdsIncluded.AddRange(regionsIds.FindAll(item => SysId.IsValid(item) && !regionCache.ContainsKey(item)));
|
||||
prmRegion.StatusCat = SaxRegion.StatusCat.NotDeleted;
|
||||
if (prmRegion.IdsIncluded.Count > 0)
|
||||
{
|
||||
// At least one region needs to be retrieved.
|
||||
DateTime startedAt = DateTime.Now;
|
||||
int regionsQueried = 0;
|
||||
foreach (SaxRegion region in ReferenceMgr.GetRegionList(prmRegion))
|
||||
{
|
||||
regionsQueried++;
|
||||
regionCache[region.Id] = region.GetData();
|
||||
region.Dispose();
|
||||
}
|
||||
SaLogger.Debug(GetType().Name + ".QueryRegionsToCache(regionIds) Regions queried: " + regionsQueried + ". Regions in cache: " + regionCache.Count + ". Elapsed: " + DateUtil.FormatNumberOfSeconds((DateTime.Now - startedAt).TotalSeconds));
|
||||
}
|
||||
}
|
||||
public SaxRegion GetRegion(SysId regionId)
|
||||
{
|
||||
QueryRegionsToCache(new List<SysId>() { regionId });
|
||||
return GetRegion(regionCache.GetValue(regionId, null));
|
||||
}
|
||||
public List<SaxRegion> GetRegions(List<SysId> regionIds)
|
||||
{
|
||||
List<SaxRegion> regions = new List<SaxRegion>();
|
||||
QueryRegionsToCache(regionIds);
|
||||
foreach (SysId regionId in regionIds)
|
||||
{
|
||||
SaxRegion region = GetRegion(regionCache.GetValue(regionId, null));
|
||||
if (region != null)
|
||||
regions.Add(region);
|
||||
}
|
||||
return regions;
|
||||
}
|
||||
private SaxRegion GetRegion(SaxRegion.Data regionData)
|
||||
{
|
||||
if (regionData == null) return null;
|
||||
SaxRegion region = ReferenceMgr.CreateRegion();
|
||||
region.SetData(regionData);
|
||||
return region;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Sports.
|
||||
// NB Online application caches sports and sports so these may be pre-populated in the Internals.
|
||||
// Otherwise they are populated on first request.
|
||||
private readonly Dictionary<SysId, SaxSport.Data> sportCache = new Dictionary<SysId, SaxSport.Data>();
|
||||
private bool sportCacheFullyPopulated = false;
|
||||
public void PopulateSportCache(List<SaxSport.Data> sports)
|
||||
{
|
||||
foreach (SaxSport.Data sportData in sports)
|
||||
sportCache[sportData.Id] = sportData.Clone();
|
||||
sportCacheFullyPopulated = true;
|
||||
SaLogger.Debug(GetType().Name + ".PopulateSportCache(sports) Sports populated: " + sportCache.Count);
|
||||
}
|
||||
public void RefreshSportCache()
|
||||
{
|
||||
if (sportCacheFullyPopulated) return;
|
||||
DateTime startedAt = DateTime.Now;
|
||||
SaxSport.Params prmSport = new SaxSport.Params();
|
||||
prmSport.StatusCat = SaxSport.StatusCat.NotDeleted;
|
||||
int sportsQueried = 0;
|
||||
foreach (SaxSport sport in ReferenceMgr.GetSportList(prmSport))
|
||||
{
|
||||
sportsQueried++;
|
||||
sportCache[sport.Id] = sport.GetData();
|
||||
sport.Dispose();
|
||||
}
|
||||
sportCacheFullyPopulated = true;
|
||||
SaLogger.Debug(GetType().Name + ".RefreshSportCache() Sports queried: " + sportsQueried + ". Sports in cache: " + sportCache.Count + ". Elapsed: " + DateUtil.FormatNumberOfSeconds((DateTime.Now - startedAt).TotalSeconds));
|
||||
}
|
||||
private void QuerySportsToCache(List<SysId> sportsIds)
|
||||
{
|
||||
if (sportCacheFullyPopulated) return;
|
||||
SaxSport.Params prmSport = new SaxSport.Params();
|
||||
prmSport.IdsIncluded.AddRange(sportsIds.FindAll(item => SysId.IsValid(item) && !sportCache.ContainsKey(item)));
|
||||
prmSport.StatusCat = SaxSport.StatusCat.NotDeleted;
|
||||
if (prmSport.IdsIncluded.Count > 0)
|
||||
{
|
||||
// At least one sport needs to be retrieved.
|
||||
DateTime startedAt = DateTime.Now;
|
||||
int sportsQueried = 0;
|
||||
foreach (SaxSport sport in ReferenceMgr.GetSportList(prmSport))
|
||||
{
|
||||
sportsQueried++;
|
||||
sportCache[sport.Id] = sport.GetData();
|
||||
sport.Dispose();
|
||||
}
|
||||
SaLogger.Debug(GetType().Name + ".QuerySportsToCache(sportIds) Sports queried: " + sportsQueried + ". Sports in cache: " + sportCache.Count + ". Elapsed: " + DateUtil.FormatNumberOfSeconds((DateTime.Now - startedAt).TotalSeconds));
|
||||
}
|
||||
}
|
||||
public SaxSport GetSport(SysId sportId)
|
||||
{
|
||||
QuerySportsToCache(new List<SysId>() { sportId });
|
||||
return GetSport(sportCache.GetValue(sportId, null));
|
||||
}
|
||||
public List<SaxSport> GetSports(List<SysId> sportIds)
|
||||
{
|
||||
List<SaxSport> sports = new List<SaxSport>();
|
||||
QuerySportsToCache(sportIds);
|
||||
foreach (SysId sportId in sportIds)
|
||||
{
|
||||
SaxSport sport = GetSport(sportCache.GetValue(sportId, null));
|
||||
if (sport != null)
|
||||
sports.Add(sport);
|
||||
}
|
||||
return sports;
|
||||
}
|
||||
private SaxSport GetSport(SaxSport.Data sportData)
|
||||
{
|
||||
if (sportData == null) return null;
|
||||
SaxSport sport = ReferenceMgr.CreateSport();
|
||||
sport.SetData(sportData);
|
||||
return sport;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
|
||||
@@ -22,6 +22,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
private static readonly List<TypeCodeDesc> organisationCategoryCodes = new List<TypeCodeDesc>();
|
||||
private static readonly List<TypeCodeDesc> organisationRoleCodes = new List<TypeCodeDesc>();
|
||||
private static readonly List<TypeCodeDesc> opportunityTypeCodes = new List<TypeCodeDesc>();
|
||||
private static readonly List<TypeCodeDesc> dataItemTypeCodes = new List<TypeCodeDesc>();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Static initialisation.</summary>
|
||||
@@ -87,6 +88,25 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
opportunityTypeCodes.Add(Sax.OpportunityType.Staff, "STF", "Staff");
|
||||
opportunityTypeCodes.Add(Sax.OpportunityType.Board, "BRD", "Board");
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Data item types.
|
||||
// Reference data.
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.Region, "Region", "Region");
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.Sport, "Sport", "Sport");
|
||||
// Accounts.
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.UserAccount, "UserAccount", "User Account");
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.UserRole, "UserRole", "User Role");
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.UserOrganisation, "UserOrganisation", "User Organisation");
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.UserSport, "UserSport", "User Sport");
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.Organisation, "Organisation", "Organisation");
|
||||
// Activty data.
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.ActivityIndex, "ActivityIndex", "Activity Index");
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.JournalistArticle, "JournalistArticle", "Journalist Article");
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.OrganisationOpportunity, "OrganisationOpportunity", "Organisation Opportunity");
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.OrganisationEvent, "OrganisationEvent", "Organisation Event");
|
||||
// Item link components.
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.ItemSport, "ItemSport", "ItemSport");
|
||||
|
||||
//---------------------------------------------------------------
|
||||
}
|
||||
|
||||
|
||||
@@ -23,10 +23,10 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
// Business components.
|
||||
//-------------------------------------------------------------------
|
||||
public abstract SaxReferenceMgr CreateReferenceMgr(SaxSessionContext sessionContext);
|
||||
public abstract SaxAccountMgr CreateAccountMgr(SaxSessionContext sessionContext);
|
||||
public abstract SaxItemDataMgr CreateItemDataMgr(SaxSessionContext sessionContext);
|
||||
public abstract SaxActivityMgr CreateActivityMgr(SaxSessionContext sessionContext);
|
||||
public abstract SaxReferenceMgr CreateReferenceMgr(SaxSessionContext sessionContext, SaxInternals internals);
|
||||
public abstract SaxAccountMgr CreateAccountMgr(SaxSessionContext sessionContext, SaxInternals internals);
|
||||
public abstract SaxItemDataMgr CreateItemDataMgr(SaxSessionContext sessionContext, SaxInternals internals);
|
||||
public abstract SaxActivityMgr CreateActivityMgr(SaxSessionContext sessionContext, SaxInternals internals);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// S y s t e m C o d e s
|
||||
@@ -52,6 +52,8 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
return new List<TypeCodeDesc>(organisationRoleCodes);
|
||||
case Sax.CodeType.OpportunityType:
|
||||
return new List<TypeCodeDesc>(opportunityTypeCodes);
|
||||
case Sax.CodeType.DataItemType:
|
||||
return new List<TypeCodeDesc>(dataItemTypeCodes);
|
||||
|
||||
default:
|
||||
throw new NotSupportedException(nameof(SaxSystem) + ".GetCodesOfType Unexpected code type: " + systemCode.ToString());
|
||||
|
||||
@@ -0,0 +1,247 @@
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Saxonite.Net.Standard.Base.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
// ActivityIndex.
|
||||
//=======================================================================
|
||||
public abstract class SaxActivityIndex : SacsHierarchyItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Columns.
|
||||
public enum Column
|
||||
{
|
||||
Pos,
|
||||
// Item.
|
||||
ItemType,
|
||||
ItemType_Code,
|
||||
ItemType_Desc,
|
||||
ItemId,
|
||||
// Sport.
|
||||
SportId,
|
||||
Sport_Name,
|
||||
// Region.
|
||||
RegionId,
|
||||
Region_Name,
|
||||
// Properties.
|
||||
EffectiveOn,
|
||||
// Associated data.
|
||||
// Common.
|
||||
Notes,
|
||||
Flags,
|
||||
Status,
|
||||
Status_Desc,
|
||||
Status_Ind,
|
||||
CreateOn_Date,
|
||||
UpdateOn_Date,
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Properties other than common.</summary>
|
||||
public class DataProperties
|
||||
{
|
||||
public ItemId ItemId { get; set; }
|
||||
public SysId SportId { get; set; }
|
||||
public SysId RegionId { get; set; }
|
||||
public DateTime EffectiveOn { get; set; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data.
|
||||
public new class Data : SacsHierarchyItem.Data
|
||||
{
|
||||
// Data members.
|
||||
private readonly DataProperties data = new DataProperties();
|
||||
// Construction.
|
||||
public Data()
|
||||
{
|
||||
Status = DefaultStatus;
|
||||
}
|
||||
// Properties.
|
||||
public ItemId ItemId
|
||||
{
|
||||
get { return data.ItemId; }
|
||||
set { CheckChanged(data.ItemId, value); data.ItemId = value; }
|
||||
}
|
||||
public SysId SportId
|
||||
{
|
||||
get { return data.SportId; }
|
||||
set { CheckChanged(data.SportId, value); data.SportId = value; }
|
||||
}
|
||||
public SysId RegionId
|
||||
{
|
||||
get { return data.RegionId; }
|
||||
set { CheckChanged(data.RegionId, value); data.RegionId = value; }
|
||||
}
|
||||
public DateTime EffectiveOn
|
||||
{
|
||||
get { return data.EffectiveOn; }
|
||||
set
|
||||
{
|
||||
// Values are restricted to whole date, ie. no time.
|
||||
CheckChanged(data.EffectiveOn, value.Date);
|
||||
data.EffectiveOn = value.Date;
|
||||
}
|
||||
}
|
||||
// Population.
|
||||
internal void PopulateFrom(Data data)
|
||||
{
|
||||
ItemId = data.ItemId;
|
||||
SportId = data.SportId;
|
||||
RegionId = data.RegionId;
|
||||
EffectiveOn = data.EffectiveOn;
|
||||
base.PopulateFrom(data);
|
||||
}
|
||||
public Data Clone()
|
||||
{
|
||||
Data data = new Data();
|
||||
data.PopulateFrom(this);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Error field - identify properties with validation error.
|
||||
public new class ErrField : SacsHierarchyItem.ErrField
|
||||
{
|
||||
// Identifies the field that has invalid data.
|
||||
public ValidValue ItemId { get; set; } = ValidValue.Valid;
|
||||
public ValidValue SportId { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RegionId { get; set; } = ValidValue.Valid;
|
||||
public ValidValue EffectiveOn { get; set; } = ValidValue.Valid;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private readonly Data data = new Data();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SaxActivityIndex(ItemId itemId, SysId sportId, SysId regionId, DateTime effectiveOn) : base()
|
||||
{
|
||||
base.SetData(data);
|
||||
ItemId = itemId;
|
||||
SportId = sportId;
|
||||
RegionId = regionId;
|
||||
EffectiveOn = effectiveOn;
|
||||
Status = DefaultStatus;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Status.
|
||||
private static readonly List<SaStatus> validStatuses = new List<SaStatus>()
|
||||
{
|
||||
SaStatus.Active,
|
||||
};
|
||||
public static SaStatus DefaultStatus { get { return SaStatus.Active; } }
|
||||
public static List<SaStatus> ValidStatuses { get { return new List<SaStatus>(validStatuses); } }
|
||||
public static DataValue.TriStateType GetStatusTriState(SaStatus status)
|
||||
{
|
||||
if (status == SaStatus.Active) return DataValue.TriStateType.Green;
|
||||
if (status == SaStatus.Inactive) return DataValue.TriStateType.Red;
|
||||
if (status == SaStatus.Deleted) return DataValue.TriStateType.Purple;
|
||||
return DataValue.TriStateType.Unknown;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
/// <summary>
|
||||
/// Match the item to the sport, region and effective date.
|
||||
/// </summary>
|
||||
public bool MatchesSportRegionEffective(SysId sportId, SysId regionId, DateTime effectiveOn)
|
||||
{
|
||||
if (!SportId.Equals(sportId)) return false;
|
||||
if (!RegionId.Equals(regionId)) return false;
|
||||
if (!EffectiveOn.Equals(effectiveOn.Date)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public override bool ItemHasId { get; } = false;
|
||||
public Data GetData() { return data.Clone(); }
|
||||
public void SetData(Data data)
|
||||
{
|
||||
String fn = GetType().Name + ".SetData";
|
||||
// Properties that cannot be changed if previously specified.
|
||||
if (SysId.IsValid(Id) && SysId.ToInt(Id) != SysId.ToInt(data.Id))
|
||||
throw new NotSupportedException(fn + " Id cannot be changed");
|
||||
if (ItemId.IsValid(ItemId) && ItemId.Type != data.ItemId.Type && SysId.ToInt(ItemId.Id) != SysId.ToInt(data.ItemId.Id))
|
||||
throw new NotSupportedException(fn + " Item Id cannot be changed");
|
||||
if (SysId.IsValid(SportId) && SysId.ToInt(SportId) != SysId.ToInt(data.SportId))
|
||||
throw new NotSupportedException(fn + " Sport Id cannot be changed");
|
||||
if (SysId.IsValid(RegionId) && SysId.ToInt(RegionId) != SysId.ToInt(data.RegionId))
|
||||
throw new NotSupportedException(fn + " Region Id cannot be changed");
|
||||
this.data.PopulateFrom(data);
|
||||
}
|
||||
public ItemId ItemId
|
||||
{
|
||||
get { return data.ItemId; }
|
||||
protected set { data.ItemId = value; }
|
||||
}
|
||||
public SysId SportId
|
||||
{
|
||||
get { return data.SportId; }
|
||||
protected set { data.SportId = value; }
|
||||
}
|
||||
public SysId RegionId
|
||||
{
|
||||
get { return data.RegionId; }
|
||||
protected set { data.RegionId = value; }
|
||||
}
|
||||
public DateTime EffectiveOn
|
||||
{
|
||||
get { return data.EffectiveOn; }
|
||||
set { data.EffectiveOn = value; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Flags - positions 1-16 available.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// P a r a m s
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Item list parameters.
|
||||
/// </summary>
|
||||
public new class Params : SacsHierarchyItem.Params
|
||||
{
|
||||
// List filtering.
|
||||
public List<SysId> IdsIncluded { get; } = new List<SysId>();
|
||||
public List<SysId> IdsExcluded { get; } = new List<SysId>();
|
||||
public List<ItemId> ItemIdsIncluded { get; } = new List<ItemId>();
|
||||
public List<SysId> SportIdsIncluded { get; } = new List<SysId>();
|
||||
public List<SysId> RegionIdsIncluded { get; } = new List<SysId>();
|
||||
public DateTime EffectiveFrom { get; set; }
|
||||
public DateTime EffectiveTo { get; set; }
|
||||
// Table aliases - blank if not linked.
|
||||
public String Alias_ActivityIndex { get; set; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
// Company list methods.
|
||||
public static class SaxActivityIndexList
|
||||
{
|
||||
/// <summary>
|
||||
/// Get first entry that matcehs the sport, region and effective date.
|
||||
/// </summary>
|
||||
public static SaxActivityIndex GetActivityIndexBySportRegionEffective(this List<SaxActivityIndex> values, SysId sportId, SysId regionId, DateTime effectiveOn)
|
||||
{
|
||||
return values.Find(item => item.MatchesSportRegionEffective(sportId, regionId, effectiveOn));
|
||||
}
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -24,12 +24,12 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
Journalist_Title,
|
||||
Journalist_FirstName,
|
||||
Journalist_LastName,
|
||||
// Region.
|
||||
RegionIdPrimary,
|
||||
Region_Name,
|
||||
// Sport.
|
||||
SportIdPrimary,
|
||||
Sport_Name,
|
||||
// Region.
|
||||
RegionIdPrimary,
|
||||
Region_Name,
|
||||
// Article.
|
||||
Headline,
|
||||
Summary,
|
||||
@@ -51,12 +51,12 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
public class DataProperties
|
||||
{
|
||||
public SysId UserAccountIdJournalist { get; set; }
|
||||
public SysId RegionIdPrimary { get; set; }
|
||||
public SysId SportIdPrimary { get; set; }
|
||||
public String Headline { get; set; } = String.Empty;
|
||||
public String Summary { get; set; } = String.Empty;
|
||||
public String BodyData { get; set; } = String.Empty;
|
||||
public SysId SportIdPrimary { get; set; }
|
||||
public SysId RegionIdPrimary { get; set; }
|
||||
public DateTime PublishedAt { get; set; }
|
||||
public String BodyData { get; set; } = String.Empty;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -76,16 +76,16 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.UserAccountIdJournalist; }
|
||||
set { CheckChanged(data.UserAccountIdJournalist, value); data.UserAccountIdJournalist = value; }
|
||||
}
|
||||
public SysId RegionIdPrimary
|
||||
{
|
||||
get { return data.RegionIdPrimary; }
|
||||
set { CheckChanged(data.RegionIdPrimary, value); data.RegionIdPrimary = value; }
|
||||
}
|
||||
public SysId SportIdPrimary
|
||||
{
|
||||
get { return data.SportIdPrimary; }
|
||||
set { CheckChanged(data.SportIdPrimary, value); data.SportIdPrimary = value; }
|
||||
}
|
||||
public SysId RegionIdPrimary
|
||||
{
|
||||
get { return data.RegionIdPrimary; }
|
||||
set { CheckChanged(data.RegionIdPrimary, value); data.RegionIdPrimary = value; }
|
||||
}
|
||||
public String Headline
|
||||
{
|
||||
get { return data.Headline; }
|
||||
@@ -96,26 +96,26 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.Summary; }
|
||||
set { CheckChanged(data.Summary, value); data.Summary = value; }
|
||||
}
|
||||
public String BodyData
|
||||
{
|
||||
get { return data.BodyData; }
|
||||
set { CheckChanged(data.BodyData, value); data.BodyData = value; }
|
||||
}
|
||||
public DateTime PublishedAt
|
||||
{
|
||||
get { return data.PublishedAt; }
|
||||
set { CheckChanged(data.PublishedAt, value); data.PublishedAt = value; }
|
||||
}
|
||||
public String BodyData
|
||||
{
|
||||
get { return data.BodyData; }
|
||||
set { CheckChanged(data.BodyData, value); data.BodyData = value; }
|
||||
}
|
||||
// Population.
|
||||
internal void PopulateFrom(Data data)
|
||||
{
|
||||
UserAccountIdJournalist = data.UserAccountIdJournalist;
|
||||
RegionIdPrimary = data.RegionIdPrimary;
|
||||
SportIdPrimary = data.SportIdPrimary;
|
||||
RegionIdPrimary = data.RegionIdPrimary;
|
||||
Headline = data.Headline;
|
||||
Summary = data.Summary;
|
||||
BodyData = data.BodyData;
|
||||
PublishedAt = data.PublishedAt;
|
||||
BodyData = data.BodyData;
|
||||
base.PopulateFrom(data);
|
||||
}
|
||||
public Data Clone()
|
||||
@@ -132,12 +132,12 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
{
|
||||
// Identifies the field that has invalid data.
|
||||
public ValidValue UserAccountIdJournalist { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RegionIdPrimary { get; set; } = ValidValue.Valid;
|
||||
public ValidValue SportIdPrimary { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RegionIdPrimary { get; set; } = ValidValue.Valid;
|
||||
public ValidValue Headline { get; set; } = ValidValue.Valid;
|
||||
public ValidValue Summary { get; set; } = ValidValue.Valid;
|
||||
public ValidValue BodyData { get; set; } = ValidValue.Valid;
|
||||
public ValidValue PublishedAt { get; set; } = ValidValue.Valid;
|
||||
public ValidValue BodyData { get; set; } = ValidValue.Valid;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -196,11 +196,6 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.UserAccountIdJournalist; }
|
||||
protected set { data.UserAccountIdJournalist = value; }
|
||||
}
|
||||
public SysId RegionIdPrimary
|
||||
{
|
||||
get { return data.RegionIdPrimary; }
|
||||
set { data.RegionIdPrimary = value; }
|
||||
}
|
||||
public String Headline
|
||||
{
|
||||
get { return data.Headline; }
|
||||
@@ -216,6 +211,11 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.SportIdPrimary; }
|
||||
set { data.SportIdPrimary = value; }
|
||||
}
|
||||
public SysId RegionIdPrimary
|
||||
{
|
||||
get { return data.RegionIdPrimary; }
|
||||
set { data.RegionIdPrimary = value; }
|
||||
}
|
||||
public DateTime PublishedAt
|
||||
{
|
||||
get { return data.PublishedAt; }
|
||||
@@ -254,8 +254,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
public List<SysId> IdsIncluded { get; } = new List<SysId>();
|
||||
public List<SysId> IdsExcluded { get; } = new List<SysId>();
|
||||
public List<SysId> UserAccountIdsJournalistIncluded { get; } = new List<SysId>();
|
||||
public List<SysId> RegionIdsIncluded { get; } = new List<SysId>();
|
||||
public List<SysId> SportIdsIncluded { get; set; } = new List<SysId>();
|
||||
public List<SysId> RegionIdsIncluded { get; } = new List<SysId>();
|
||||
public String HeadlinePartial { get; set; }
|
||||
public String SummaryPartial { get; set; }
|
||||
/// <summary>General filter value - headline, summary, sport, body etc. </summary>
|
||||
|
||||
@@ -25,12 +25,12 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
OrganisationCategory_Desc,
|
||||
PhoneMain,
|
||||
PhoneAlt,
|
||||
// Region.
|
||||
RegionId,
|
||||
Region_Name,
|
||||
// Sport.
|
||||
SportId,
|
||||
Sport_Name,
|
||||
// Region.
|
||||
RegionId,
|
||||
Region_Name,
|
||||
// Associated data.
|
||||
/// <summary>Number of users with an active interest in the organisation.</summary>
|
||||
User_Count,
|
||||
@@ -55,8 +55,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
public Sax.OrganisationCategory OrganisationCategory { get; set; }
|
||||
public String PhoneMain { get; set; } = String.Empty;
|
||||
public String PhoneAlt { get; set; } = String.Empty;
|
||||
public SysId RegionIdPrimary { get; set; }
|
||||
public SysId SportIdPrimary { get; set; }
|
||||
public SysId RegionIdPrimary { get; set; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -96,16 +96,16 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.PhoneAlt; }
|
||||
set { CheckChanged(data.PhoneAlt, value); data.PhoneAlt = value; }
|
||||
}
|
||||
public SysId RegionIdPrimary
|
||||
{
|
||||
get { return data.RegionIdPrimary; }
|
||||
set { CheckChanged(data.RegionIdPrimary, value); data.RegionIdPrimary = value; }
|
||||
}
|
||||
public SysId SportIdPrimary
|
||||
{
|
||||
get { return data.SportIdPrimary; }
|
||||
set { CheckChanged(data.SportIdPrimary, value); data.SportIdPrimary = value; }
|
||||
}
|
||||
public SysId RegionIdPrimary
|
||||
{
|
||||
get { return data.RegionIdPrimary; }
|
||||
set { CheckChanged(data.RegionIdPrimary, value); data.RegionIdPrimary = value; }
|
||||
}
|
||||
// Population.
|
||||
internal void PopulateFrom (Data data)
|
||||
{
|
||||
@@ -114,8 +114,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
OrganisationCategory = data.OrganisationCategory;
|
||||
PhoneMain = data.PhoneMain;
|
||||
PhoneAlt = data.PhoneAlt;
|
||||
RegionIdPrimary = data.RegionIdPrimary;
|
||||
SportIdPrimary = data.SportIdPrimary;
|
||||
RegionIdPrimary = data.RegionIdPrimary;
|
||||
base.PopulateFrom(data);
|
||||
}
|
||||
public Data Clone ()
|
||||
@@ -136,8 +136,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
public ValidValue OrganisationCategory { get; set; } = ValidValue.Valid;
|
||||
public ValidValue PhoneMain { get; set; } = ValidValue.Valid;
|
||||
public ValidValue PhoneAlt { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RegionIdPrimary { get; set; } = ValidValue.Valid;
|
||||
public ValidValue SportIdPrimary { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RegionIdPrimary { get; set; } = ValidValue.Valid;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -215,16 +215,16 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.PhoneAlt; }
|
||||
set { data.PhoneAlt = value; }
|
||||
}
|
||||
public SysId RegionIdPrimary
|
||||
{
|
||||
get { return data.RegionIdPrimary; }
|
||||
set { data.RegionIdPrimary = value; }
|
||||
}
|
||||
public SysId SportIdPrimary
|
||||
{
|
||||
get { return data.SportIdPrimary; }
|
||||
set { data.SportIdPrimary = value; }
|
||||
}
|
||||
public SysId RegionIdPrimary
|
||||
{
|
||||
get { return data.RegionIdPrimary; }
|
||||
set { data.RegionIdPrimary = value; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Flags - positions 1-16 available.
|
||||
@@ -256,8 +256,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
public String NamePartial { get; set; }
|
||||
/// <summary>Partial match on a number of fields, including name, sport, address, etc.</summary>
|
||||
public String OrganisationFilter { get; set; }
|
||||
public List<SysId> RegionIdsIncluded { get; } = new List<SysId>();
|
||||
public List<SysId> SportIdsIncluded { get; } = new List<SysId>();
|
||||
public List<SysId> RegionIdsIncluded { get; } = new List<SysId>();
|
||||
// Common properties.
|
||||
public String NotesPartial { get; set; }
|
||||
public StatusCat StatusCat { get; set; } = StatusCat.ActiveOnly;
|
||||
|
||||
@@ -21,12 +21,12 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
// Organisation.
|
||||
OrganisationId,
|
||||
Organisation_Name,
|
||||
// Region.
|
||||
RegionIdPrimary,
|
||||
Region_Name,
|
||||
// Sport.
|
||||
SportIdPrimary,
|
||||
Sport_Name,
|
||||
// Region.
|
||||
RegionIdPrimary,
|
||||
Region_Name,
|
||||
// Opportunity.
|
||||
OpportunityTypeCode,
|
||||
OpportunityType_Desc,
|
||||
@@ -52,8 +52,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
public class DataProperties
|
||||
{
|
||||
public SysId OrganisationId { get; set; }
|
||||
public SysId RegionIdPrimary { get; set; }
|
||||
public SysId SportIdPrimary { get; set; }
|
||||
public SysId RegionIdPrimary { get; set; }
|
||||
public Sax.OpportunityType OpportunityType { get; set; }
|
||||
public String Position { get; set; } = String.Empty;
|
||||
public String Outline { get; set; } = String.Empty;
|
||||
@@ -79,16 +79,16 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.OrganisationId; }
|
||||
set { CheckChanged(data.OrganisationId, value); data.OrganisationId = value; }
|
||||
}
|
||||
public SysId RegionIdPrimary
|
||||
{
|
||||
get { return data.RegionIdPrimary; }
|
||||
set { CheckChanged(data.RegionIdPrimary, value); data.RegionIdPrimary = value; }
|
||||
}
|
||||
public SysId SportIdPrimary
|
||||
{
|
||||
get { return data.SportIdPrimary; }
|
||||
set { CheckChanged(data.SportIdPrimary, value); data.SportIdPrimary = value; }
|
||||
}
|
||||
public SysId RegionIdPrimary
|
||||
{
|
||||
get { return data.RegionIdPrimary; }
|
||||
set { CheckChanged(data.RegionIdPrimary, value); data.RegionIdPrimary = value; }
|
||||
}
|
||||
public Sax.OpportunityType OpportunityType
|
||||
{
|
||||
get { return data.OpportunityType; }
|
||||
@@ -123,8 +123,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
internal void PopulateFrom(Data data)
|
||||
{
|
||||
OrganisationId = data.OrganisationId;
|
||||
RegionIdPrimary = data.RegionIdPrimary;
|
||||
SportIdPrimary = data.SportIdPrimary;
|
||||
RegionIdPrimary = data.RegionIdPrimary;
|
||||
OpportunityType = data.OpportunityType;
|
||||
Position = data.Position;
|
||||
Outline = data.Outline;
|
||||
@@ -147,8 +147,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
{
|
||||
// Identifies the field that has invalid data.
|
||||
public ValidValue OrganisationId { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RegionIdPrimary { get; set; } = ValidValue.Valid;
|
||||
public ValidValue SportIdPrimary { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RegionIdPrimary { get; set; } = ValidValue.Valid;
|
||||
public ValidValue OpportunityType { get; set; } = ValidValue.Valid;
|
||||
public ValidValue Position { get; set; } = ValidValue.Valid;
|
||||
public ValidValue Outline { get; set; } = ValidValue.Valid;
|
||||
@@ -213,16 +213,16 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.OrganisationId; }
|
||||
protected set { data.OrganisationId = value; }
|
||||
}
|
||||
public SysId RegionIdPrimary
|
||||
{
|
||||
get { return data.RegionIdPrimary; }
|
||||
set { data.RegionIdPrimary = value; }
|
||||
}
|
||||
public SysId SportIdPrimary
|
||||
{
|
||||
get { return data.SportIdPrimary; }
|
||||
set { data.SportIdPrimary = value; }
|
||||
}
|
||||
public SysId RegionIdPrimary
|
||||
{
|
||||
get { return data.RegionIdPrimary; }
|
||||
set { data.RegionIdPrimary = value; }
|
||||
}
|
||||
public Sax.OpportunityType OpportunityType
|
||||
{
|
||||
get { return data.OpportunityType; }
|
||||
@@ -283,15 +283,15 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
/// <summary>Restrict to User Account via User Organisations and Organisations.</summary>
|
||||
public List<SysId> UserAccountIdsIncluded { get; } = new List<SysId>();
|
||||
public List<SysId> OrganisationIdsIncluded { get; } = new List<SysId>();
|
||||
public List<SysId> RegionIdsIncluded { get; } = new List<SysId>();
|
||||
public List<SysId> SportIdsIncluded { get; set; } = new List<SysId>();
|
||||
public List<SysId> RegionIdsIncluded { get; } = new List<SysId>();
|
||||
public String PositionPartial { get; set; }
|
||||
public String OutlinePartial { get; set; }
|
||||
/// <summary>General filter value - position, outline, sport, body etc. </summary>
|
||||
public String OpportunityFilter { get; set; }
|
||||
public String NotesPartial { get; set; }
|
||||
public StatusCat StatusCat { get; set; } = StatusCat.ActiveOnly;
|
||||
// Linked table aliases - blank if not linked.
|
||||
// Table aliases - blank if not linked.
|
||||
public String Alias_Organisation { get; set; }
|
||||
public String Alias_UserOrganisation { get; set; }
|
||||
public String Alias_UserAccount { get; set; }
|
||||
|
||||
@@ -255,7 +255,7 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
// List filtering.
|
||||
public List<SysId> IdsIncluded { get; } = new List<SysId>();
|
||||
public List<SysId> IdsExcluded { get; } = new List<SysId>();
|
||||
public List<SysId> IncludedParentRegionIds { get; } = new List<SysId>();
|
||||
public List<SysId> ParentRegionIdsIncluded { get; } = new List<SysId>();
|
||||
public Sax.RegionType RegionType { get; set; }
|
||||
public List<String> CountryIso2CodesIncluded { get; } = new List<String>();
|
||||
public List<String> CountryIso2CodesExcluded { get; } = new List<String>();
|
||||
@@ -273,6 +273,16 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
// Company list methods.
|
||||
public static class SaxRegionList
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Extract the first Region in list with the specified Id.
|
||||
/// </summary>
|
||||
public static SaxRegion GetRegionById(this List<SaxRegion> values, SysId regionId)
|
||||
{
|
||||
return values.Find(item => item.Id.Equals(regionId));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
|
||||
@@ -25,6 +25,11 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
PhoneMain,
|
||||
PhoneMobile,
|
||||
DateOfBirth,
|
||||
// Regions.
|
||||
RegionIdCountry,
|
||||
RegionCountry_Name,
|
||||
RegionIdProvince,
|
||||
RegionProvince_Name,
|
||||
// Security.
|
||||
PasswordToken,
|
||||
PasswordChangedOn,
|
||||
@@ -60,6 +65,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
public String PhoneMain { get; set; } = String.Empty;
|
||||
public String PhoneMobile { get; set; } = String.Empty;
|
||||
public DateTime DateOfBirth { get; set; }
|
||||
public SysId RegionIdCountry { get; set; }
|
||||
public SysId RegionIdProvince{ get; set; }
|
||||
// Security.
|
||||
public String PasswordHashed { get; set; } = String.Empty;
|
||||
public List<String> PasswordHistory { get; } = new List<string>();
|
||||
@@ -123,6 +130,16 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.DateOfBirth; }
|
||||
set { CheckChanged(data.DateOfBirth, value); data.DateOfBirth = value; }
|
||||
}
|
||||
public SysId RegionIdCountry
|
||||
{
|
||||
get { return data.RegionIdCountry; }
|
||||
set { CheckChanged(data.RegionIdCountry, value); data.RegionIdCountry = value; }
|
||||
}
|
||||
public SysId RegionIdProvince
|
||||
{
|
||||
get { return data.RegionIdProvince; }
|
||||
set { CheckChanged(data.RegionIdProvince, value); data.RegionIdProvince = value; }
|
||||
}
|
||||
// Security.
|
||||
public String PasswordHashed
|
||||
{
|
||||
@@ -176,6 +193,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
PhoneMain = data.PhoneMain;
|
||||
PhoneMobile = data.PhoneMobile;
|
||||
DateOfBirth = data.DateOfBirth;
|
||||
RegionIdCountry = data.RegionIdCountry;
|
||||
RegionIdProvince = data.RegionIdProvince;
|
||||
// Security.
|
||||
PasswordHashed = data.PasswordHashed;
|
||||
PasswordHistory = data.PasswordHistory;
|
||||
@@ -208,6 +227,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
public ValidValue PhoneMain { get; set; } = ValidValue.Valid;
|
||||
public ValidValue PhoneMobile { get; set; } = ValidValue.Valid;
|
||||
public ValidValue DateOfBirth { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RegionIdCountry { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RegionIdProvince { get; set; } = ValidValue.Valid;
|
||||
// Security.
|
||||
public ValidValue Password { get; set; } = ValidValue.Valid;
|
||||
public ValidValue PasswordHistory { get; set; } = ValidValue.Valid;
|
||||
@@ -323,6 +344,16 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.DateOfBirth; }
|
||||
set { data.DateOfBirth = value; }
|
||||
}
|
||||
public SysId RegionIdCountry
|
||||
{
|
||||
get { return data.RegionIdCountry; }
|
||||
set { data.RegionIdCountry = value; }
|
||||
}
|
||||
public SysId RegionIdProvince
|
||||
{
|
||||
get { return data.RegionIdProvince; }
|
||||
set { data.RegionIdProvince = value; }
|
||||
}
|
||||
|
||||
// Security.
|
||||
public String PasswordHashed
|
||||
@@ -403,7 +434,7 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
public List<SysId> IdsExcluded { get; } = new List<SysId>();
|
||||
public String EmailAddress { get; set; }
|
||||
public String NamePartial { get; set; }
|
||||
/// <summary>Partial match on various user account properties including name.</summary>
|
||||
/// <summary>Partial match on various user account properties including name, countries etc.</summary>
|
||||
public String UserAccountFilter { get; set; }
|
||||
public List<Sax.UserRole> ActiveRoles { get; } = new List<Sax.UserRole>();
|
||||
public String NotesPartial { get; set; }
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Saxonite.Net.Standard.Base.Consoles
|
||||
{
|
||||
//=======================================================================
|
||||
// The index data is intended to provide a common, performance effective route
|
||||
// to identifying the activities that are relevant to a User or other context
|
||||
// that defines at least one region/sport combination and an effective date (usually today).
|
||||
//=======================================================================
|
||||
public abstract class SaxActivityConsole : SacsDisposable
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
/// <summary>
|
||||
/// Parameters required to query the index for activities to identify relevant activities.
|
||||
/// </summary>
|
||||
public class IndexContext
|
||||
{
|
||||
public List<SysId> SportIds { get; } = new List<SysId>();
|
||||
public List<SysId> RegionIds { get; } = new List<SysId>();
|
||||
// Default period is ~3 months up to today.
|
||||
public DateTime EffectiveFrom { get; } = DateUtil.IncrementDate(DateTime.Today, -90);
|
||||
public DateTime EffectiveTo { get; } = DateTime.Today;
|
||||
public bool IsValid()
|
||||
{
|
||||
// Context must contain at least a sport, a region and a valid effective period.
|
||||
if (!SportIds.HasValidIds()) return false;
|
||||
if (!RegionIds.HasValidIds()) return false;
|
||||
if (!DateUtil.IsValid(EffectiveFrom) || EffectiveTo < EffectiveFrom) return false;
|
||||
return true;
|
||||
}
|
||||
public DbQuery.Paging Paging { get; } = new DbQuery.Paging();
|
||||
}
|
||||
/// <summary>
|
||||
/// Activities identified by querying index with context.
|
||||
/// </summary>
|
||||
public class IndexResults
|
||||
{
|
||||
public class ItemData
|
||||
{
|
||||
public ItemData(ItemId itemId, DateTime effectiveOn)
|
||||
{
|
||||
ItemId = itemId;
|
||||
EffectiveOn = effectiveOn;
|
||||
}
|
||||
public ItemId ItemId { get; }
|
||||
public DateTime EffectiveOn { get; }
|
||||
}
|
||||
public List<ItemData> Items { get; } = new List<ItemData>();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private readonly List<Sax.DataItemType> validActivityItemTypes = new List<Sax.DataItemType>()
|
||||
{
|
||||
Sax.DataItemType.JournalistArticle,
|
||||
Sax.DataItemType.OrganisationOpportunity,
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Protected construction.
|
||||
protected SaxActivityConsole(SaxSessionContext sessionContext)
|
||||
{
|
||||
SessionContext = sessionContext;
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
protected SaxSessionContext SessionContext { get; }
|
||||
protected List<Sax.DataItemType> ValidActivityItemTypes { get { return validActivityItemTypes.ToList(); } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Query Activity Index Entries for User Context.
|
||||
//-------------------------------------------------------------------
|
||||
public abstract IndexResults QueryIndex(IndexContext context);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Store Activity Index for Specific activities.
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Store the Activity Index for a Journalist Article.
|
||||
/// </summary>
|
||||
public bool StoreActivityIndex(SaxJournalistArticle article, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
// Only active articles have an activity index.
|
||||
if (!article.IsStatusActive) ClearActivityIndex(article.GetItemId(), dbUpdateInfo);
|
||||
|
||||
// NB There will be other rules as well, eg. whether published.
|
||||
|
||||
// Activity Index properties.
|
||||
IndexData indexData = new IndexData(article.GetItemId());
|
||||
indexData.SportIds.Add(article.SportIdPrimary);
|
||||
indexData.RegionIds.Add(article.RegionIdPrimary);
|
||||
indexData.EffectiveOn = DateUtil.OnInvalid(article.PublishedAt.Date, article.CreateStamp.On.Date);
|
||||
return StoreActivityIndexData(indexData, dbUpdateInfo);
|
||||
}
|
||||
public bool ClearActivityIndex(SaxJournalistArticle article, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
return ClearActivityIndex(article.GetItemId(), dbUpdateInfo);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Store the Activity Index for a Organisation Opportunity.
|
||||
/// </summary>
|
||||
public bool StoreActivityIndex(SaxOrganisationOpportunity opportunity, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
// Only active opportunities have an activity index.
|
||||
if (!opportunity.IsStatusActive) ClearActivityIndex(opportunity.GetItemId(), dbUpdateInfo);
|
||||
|
||||
// NB There will be other rules as well, eg. whether published.
|
||||
|
||||
// Activity Index properties.
|
||||
IndexData indexData = new IndexData(opportunity.GetItemId());
|
||||
indexData.SportIds.Add(opportunity.SportIdPrimary);
|
||||
indexData.RegionIds.Add(opportunity.RegionIdPrimary);
|
||||
indexData.EffectiveOn = DateUtil.OnInvalid(opportunity.PublishedAt.Date, opportunity.CreateStamp.On.Date);
|
||||
List<SysId> regionIds = new List<SysId>();
|
||||
return StoreActivityIndexData(indexData, dbUpdateInfo);
|
||||
}
|
||||
public bool ClearActivityIndex(SaxOrganisationOpportunity opportunity, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
return ClearActivityIndex(opportunity.GetItemId(), dbUpdateInfo);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Store Activity Index.
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Data values that make up the index for an activity.</summary>
|
||||
protected class IndexData
|
||||
{
|
||||
public IndexData(ItemId itemId)
|
||||
{
|
||||
ItemId = itemId;
|
||||
}
|
||||
public ItemId ItemId { get; }
|
||||
public List<SysId> SportIds { get; } = new List<SysId>();
|
||||
public List<SysId> RegionIds { get; } = new List<SysId>();
|
||||
public DateTime EffectiveOn { get; set; }
|
||||
public bool IsValid()
|
||||
{
|
||||
if (!ItemId.IsValid(ItemId)) return false;
|
||||
if (!SportIds.HasValidIds()) return false;
|
||||
if (!RegionIds.HasValidIds()) return false;
|
||||
if (!DateUtil.IsValid(EffectiveOn)) return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
/// <summary>Single entry in the index for an activity.</summary>
|
||||
protected class IndexEntryData
|
||||
{
|
||||
public IndexEntryData(ItemId itemId, SysId sportId, SysId regionId, DateTime effectiveOn)
|
||||
{
|
||||
ItemId = itemId;
|
||||
SportId = sportId;
|
||||
RegionId = regionId;
|
||||
EffectiveOn = effectiveOn;
|
||||
}
|
||||
public ItemId ItemId { get; }
|
||||
public SysId SportId { get; }
|
||||
public SysId RegionId { get; }
|
||||
public DateTime EffectiveOn { get; }
|
||||
public bool IsValid()
|
||||
{
|
||||
if (!ItemId.IsValid(ItemId)) return false;
|
||||
if (!SysId.IsValid(SportId)) return false;
|
||||
if (!SysId.IsValid(RegionId)) return false;
|
||||
if (!DateUtil.IsValid(EffectiveOn)) return false;
|
||||
return true;
|
||||
}
|
||||
/// <summary>Compare index entry Ids - Item, Sport & Region.</summary>
|
||||
public bool MatchesIds(SaxActivityIndex activityIndex)
|
||||
{
|
||||
if (!ItemId.Equals(activityIndex.ItemId)) return false;
|
||||
if (!SportId.Equals(activityIndex.SportId)) return false;
|
||||
if (!RegionId.Equals(activityIndex.RegionId)) return false;
|
||||
return true;
|
||||
}
|
||||
/// <summary>Compare index entry Ids - Item, Sport & Region - and effective date.</summary>
|
||||
public bool Matches(SaxActivityIndex activityIndex)
|
||||
{
|
||||
if (!MatchesIds(activityIndex)) return false;
|
||||
if (!EffectiveOn.Equals(activityIndex.EffectiveOn)) return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
protected abstract bool StoreActivityIndexData(IndexData indexData, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
protected abstract bool ClearActivityIndex(ItemId itemId, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
//-------------------------------------------------------------------
|
||||
protected List<IndexEntryData> GetEntriesForIndex(IndexData indexData)
|
||||
{
|
||||
List<IndexEntryData> indexEntries = new List<IndexEntryData>();
|
||||
if (ItemId.IsValid(indexData.ItemId) && DateUtil.IsValid(indexData.EffectiveOn))
|
||||
{
|
||||
foreach (SysId sportId in indexData.SportIds.FindAll(item => SysId.IsValid(item)))
|
||||
{
|
||||
foreach (SysId regionId in indexData.RegionIds.FindAll(item => SysId.IsValid(item)))
|
||||
{
|
||||
IndexEntryData indexEntry = new IndexEntryData(indexData.ItemId, sportId, regionId, indexData.EffectiveOn);
|
||||
if (indexEntry.IsValid())
|
||||
indexEntries.Add(indexEntry);
|
||||
}
|
||||
}
|
||||
}
|
||||
return indexEntries;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -18,6 +18,10 @@ namespace Saxonite.Net.Standard.Base.Consoles
|
||||
// Data cache console.
|
||||
public abstract SaxDataCacheConsole GetDataCacheConsole(SaxSessionContext sessionContext);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Activity console.
|
||||
public abstract SaxActivityConsole CreateActivityConsole(SaxSessionContext sessionContext);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Email console.
|
||||
public abstract SaxEmailConsole CreateEmailConsole(SaxSessionContext sessionContext);
|
||||
|
||||
@@ -14,15 +14,30 @@ namespace Saxonite.Net.Standard.Base.Consoles
|
||||
// Protected construction.
|
||||
protected SaxDataCacheConsole(SaxSessionContext sessionContext)
|
||||
{
|
||||
SessionContext = sessionContext;
|
||||
}
|
||||
protected override void Dispose(bool disposing) { }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
protected SaxSessionContext SessionContext { get; }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
public abstract void PopulateCachedDataToInternals(SaxInternals internals);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Regions.
|
||||
/// <summary>
|
||||
/// Get the cached list of regions. NB These should be disposed after use.
|
||||
/// </summary>
|
||||
public abstract List<SaxRegion> GetActiveRegions();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Sports.
|
||||
/// <summary>
|
||||
/// Get the cached list of sports. NB These should be disposed after use.
|
||||
/// </summary>
|
||||
public abstract List<SaxSport> GetActiveSports();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -87,7 +87,7 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
{
|
||||
ClearErrorState();
|
||||
// Name.
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.Organisation_Name), true))
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Organisation_Name), true))
|
||||
{
|
||||
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -105,35 +105,35 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
return SetErrorState("Organisation category must be specified.");
|
||||
}
|
||||
// Main phone.
|
||||
if (errField.PhoneMain != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMain, "phone", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.Organisation_PhoneMain)))
|
||||
if (errField.PhoneMain != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMain, "phone", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Organisation_PhoneMain)))
|
||||
{
|
||||
errField.PhoneMain = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Alt phone.
|
||||
if (errField.PhoneAlt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneAlt, "alt. phone", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.Organisation_PhoneAlt)))
|
||||
if (errField.PhoneAlt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneAlt, "alt. phone", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Organisation_PhoneAlt)))
|
||||
{
|
||||
errField.PhoneAlt = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Region.
|
||||
if (errField.RegionIdPrimary != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
}
|
||||
// Sport.
|
||||
if (errField.SportIdPrimary != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
}
|
||||
// Region.
|
||||
if (errField.RegionIdPrimary != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.Organisation_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Organisation_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.Organisation_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Organisation_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -145,16 +145,6 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
}
|
||||
}
|
||||
|
||||
// Region.
|
||||
if (errField.RegionIdPrimary != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.RegionIdPrimary))
|
||||
{
|
||||
if (!ReferenceMgr.RegionExistsById(data.RegionIdPrimary))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Invalid region specified");
|
||||
}
|
||||
}
|
||||
|
||||
// Sport.
|
||||
if (errField.SportIdPrimary != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.SportIdPrimary))
|
||||
{
|
||||
@@ -165,6 +155,16 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
}
|
||||
}
|
||||
|
||||
// Region.
|
||||
if (errField.RegionIdPrimary != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.RegionIdPrimary))
|
||||
{
|
||||
if (!ReferenceMgr.RegionExistsById(data.RegionIdPrimary))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Invalid region specified");
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,11 +22,11 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create item.
|
||||
public abstract SaxUserAccount CreateUserAccount ();
|
||||
public abstract SaxUserAccount CreateUserAccount();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item exists.
|
||||
public bool UserAccountExistsById (SysId id)
|
||||
public bool UserAccountExistsById(SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(id)) return false;
|
||||
@@ -35,7 +35,7 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
prmUserAccount.StatusCat = SaxUserAccount.StatusCat.Any;
|
||||
return GetUserAccountCount(prmUserAccount) == 1;
|
||||
}
|
||||
public bool UserAccountExistsByEmailAddress (string emailAddress)
|
||||
public bool UserAccountExistsByEmailAddress(string emailAddress)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsEmpty(emailAddress)) return false;
|
||||
@@ -47,8 +47,8 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Retrieve individual items.
|
||||
public abstract SaxUserAccount GetUserAccount (SaxUserAccount.Params prmUserAccount);
|
||||
public SaxUserAccount GetUserAccountById (SysId id)
|
||||
public abstract SaxUserAccount GetUserAccount(SaxUserAccount.Params prmUserAccount);
|
||||
public SaxUserAccount GetUserAccountById(SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(id)) return null;
|
||||
@@ -57,7 +57,7 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
prmUserAccount.StatusCat = SaxUserAccount.StatusCat.Any;
|
||||
return GetUserAccount(prmUserAccount);
|
||||
}
|
||||
public SaxUserAccount GetUserAccountByEmailAddress (string emailAddress)
|
||||
public SaxUserAccount GetUserAccountByEmailAddress(string emailAddress)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsEmpty(emailAddress)) return null;
|
||||
@@ -69,54 +69,54 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate item data.
|
||||
public bool IsValidUserAccount (SaxUserAccount userAccount)
|
||||
public bool IsValidUserAccount(SaxUserAccount userAccount)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (userAccount == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
|
||||
return IsValidUserAccountData(userAccount.GetData(), new SaxUserAccount.ErrField());
|
||||
}
|
||||
public virtual bool IsValidUserAccountData (SaxUserAccount.Data data, SaxUserAccount.ErrField errField)
|
||||
public virtual bool IsValidUserAccountData(SaxUserAccount.Data data, SaxUserAccount.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Email address.
|
||||
if (errField.EmailAddress != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.EmailAddress, "email", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserAccount_EmailAddress), true))
|
||||
if (errField.EmailAddress != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.EmailAddress, "email", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress), true))
|
||||
{
|
||||
errField.EmailAddress = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Title.
|
||||
if (errField.Title != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Title, "Title", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserAccount_Title)))
|
||||
if (errField.Title != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Title, "Title", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserAccount_Title)))
|
||||
{
|
||||
errField.Title = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// First name.
|
||||
if (errField.FirstName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FirstName, "first name", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserAccount_FirstName)))
|
||||
if (errField.FirstName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FirstName, "first name", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName)))
|
||||
{
|
||||
errField.FirstName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Initials.
|
||||
if (errField.Initials != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Initials, "initials", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserAccount_Initials)))
|
||||
if (errField.Initials != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Initials, "initials", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserAccount_Initials)))
|
||||
{
|
||||
errField.Initials = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Last name.
|
||||
if (errField.LastName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.LastName, "last name", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserAccount_LastName)))
|
||||
if (errField.LastName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.LastName, "last name", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName)))
|
||||
{
|
||||
errField.LastName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Phone - main.
|
||||
if (errField.PhoneMain != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMain, "phone", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserAccount_PhoneMain)))
|
||||
if (errField.PhoneMain != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMain, "phone", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserAccount_PhoneMain)))
|
||||
{
|
||||
errField.PhoneMain = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Phone - mobile.
|
||||
if (errField.PhoneMobile != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMobile, "mobile", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserAccount_PhoneMobile)))
|
||||
if (errField.PhoneMobile != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMobile, "mobile", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserAccount_PhoneMobile)))
|
||||
{
|
||||
errField.PhoneMobile = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -128,10 +128,19 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
return SetErrorState("Date of birth must not be in the future");
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Regions.
|
||||
if (errField.RegionIdCountry != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
}
|
||||
if (errField.RegionIdProvince != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Security.
|
||||
// Password token.
|
||||
if (errField.PasswordToken != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PasswordToken, "password token", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserAccount_PasswordToken)))
|
||||
if (errField.PasswordToken != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PasswordToken, "password token", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserAccount_PasswordToken)))
|
||||
{
|
||||
errField.PasswordToken = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -139,14 +148,14 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserAccount_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserAccount_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserAccount_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserAccount_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -165,42 +174,63 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
SaxUserAccount.Params prmUserAccount = new SaxUserAccount.Params();
|
||||
if (SysId.IsValid(data.Id))
|
||||
prmUserAccount.IdsExcluded.Add(data.Id);
|
||||
prmUserAccount.EmailAddress = data.EmailAddress;
|
||||
prmUserAccount.EmailAddress = data.EmailAddress;
|
||||
prmUserAccount.StatusCat = SaxUserAccount.StatusCat.Any;
|
||||
if (GetUserAccountCount(prmUserAccount) > 0)
|
||||
{
|
||||
errField.EmailAddress = SacsHierarchyItem.ValidValue.Invalid;
|
||||
errField.EmailAddress = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Email must unique");
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Regions.
|
||||
if (errField.RegionIdCountry != SacsHierarchyItem.ValidValue.Ignore || errField.RegionIdProvince != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
List<SaxRegion> regions = Internals.GetRegions(new List<SysId>() { data.RegionIdCountry, data.RegionIdProvince });
|
||||
SaxRegion regionCountry = regions.GetRegionById(data.RegionIdCountry);
|
||||
SaxRegion regionProvince = regions.GetRegionById(data.RegionIdProvince);
|
||||
if (errField.RegionIdCountry != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (SysId.IsValid(data.RegionIdCountry) && regionCountry == null)
|
||||
return SetErrorState("Invalid country specified");
|
||||
}
|
||||
if (errField.RegionIdCountry != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (SysId.IsValid(data.RegionIdCountry) && regionCountry == null)
|
||||
return SetErrorState("Invalid country specified");
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item database interface.
|
||||
public abstract bool InsertUserAccount (SaxUserAccount userAccount, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool UpdateUserAccount (SaxUserAccount userAccount, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool UserAccountCanBeDeleted (SaxUserAccount userAccount)
|
||||
public abstract bool InsertUserAccount(SaxUserAccount userAccount, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool UpdateUserAccount(SaxUserAccount userAccount, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool UserAccountCanBeDeleted(SaxUserAccount userAccount)
|
||||
{
|
||||
ClearErrorState();
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeleteUserAccount (SaxUserAccount userAccount, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool DeleteUserAccount(SaxUserAccount userAccount, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item list.
|
||||
public abstract ColumnDfn GetUserAccountColumnDfn (SaxUserAccount.Column columnId, String caption = "", int width = 0);
|
||||
public abstract List<String> GetUserAccountQueryFilter (SaxUserAccount.Params prmUserAccount);
|
||||
public abstract long GetUserAccountCount (SaxUserAccount.Params prmUserAccount);
|
||||
public abstract List<SaxUserAccount> GetUserAccountList (SaxUserAccount.Params prmUserAccount);
|
||||
public abstract DbResultSet ExecuteUserAccountQuery (List<ColumnDfn> columns, SaxUserAccount.Params prmUserAccount);
|
||||
public abstract ColumnDfn GetUserAccountColumnDfn(SaxUserAccount.Column columnId, String caption = "", int width = 0);
|
||||
public abstract List<String> GetUserAccountQueryFilter(SaxUserAccount.Params prmUserAccount);
|
||||
public abstract long GetUserAccountCount(SaxUserAccount.Params prmUserAccount);
|
||||
public abstract List<SaxUserAccount> GetUserAccountList(SaxUserAccount.Params prmUserAccount);
|
||||
public abstract DbResultSet ExecuteUserAccountQuery(List<ColumnDfn> columns, SaxUserAccount.Params prmUserAccount);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Extract and format result set data value where specific handling is required.
|
||||
/// <para>Where response is an invalid data value, format value using column.FormatValue(values).</para>
|
||||
/// </summary>
|
||||
public virtual DataValue GetUserAccountDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
public virtual DataValue GetUserAccountDataValue(ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SaxUserAccount.Column)column.Id)
|
||||
@@ -215,17 +245,17 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
// Status.
|
||||
case SaxUserAccount.Column.Status_Desc:
|
||||
case SaxUserAccount.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SaxUserAccount.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SaxUserAccount.Column.Status_Ind)
|
||||
value = new DataValue(SaxUserAccount.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SaxUserAccount.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SaxUserAccount.Column.Status_Ind)
|
||||
value = new DataValue(SaxUserAccount.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -114,14 +114,14 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserOrganisation_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserOrganisation_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserOrganisation_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserOrganisation_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -93,14 +93,14 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserRole_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserRole_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserRole_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserRole_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -94,14 +94,14 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserSport_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserSport_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.UserSport_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.UserSport_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -9,7 +9,8 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
public abstract partial class SaxAccountMgr : SaxItemMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
protected SaxAccountMgr(SaxSessionContext sessionContext) :base(sessionContext)
|
||||
protected SaxAccountMgr(SaxSessionContext sessionContext, SaxInternals internals) :
|
||||
base(sessionContext, internals)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,175 @@
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Saxonite.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Saxonite.Net.Standard.Base.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SaxActivityMgr
|
||||
{
|
||||
//*******************************************************************
|
||||
// Activity Mgr - Activity Index
|
||||
//*******************************************************************
|
||||
// Utilities.
|
||||
public List<SaxActivityIndex> GetActivityIndexListForItem(ItemId itemId)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SaxActivityIndex> activityIndexEntries = new List<SaxActivityIndex>();
|
||||
if (!ItemId.IsValid(itemId)) return activityIndexEntries;
|
||||
SaxActivityIndex.Params prmActivityIndex = new SaxActivityIndex.Params();
|
||||
prmActivityIndex.ItemIdsIncluded.Add(itemId);
|
||||
return GetActivityIndexList(prmActivityIndex);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create item.
|
||||
public abstract SaxActivityIndex CreateActivityIndex(ItemId itemId, SysId sportId, SysId regionId, DateTime effectiveOn);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Retrieve individual items.
|
||||
public abstract SaxActivityIndex GetActivityIndex(SaxActivityIndex.Params prmActivityIndex);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate item data.
|
||||
public bool IsValidActivityIndex(SaxActivityIndex activityIndex)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (activityIndex == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
|
||||
return IsValidActivityIndexData(activityIndex.GetData(), new SaxActivityIndex.ErrField());
|
||||
}
|
||||
public virtual bool IsValidActivityIndexData(SaxActivityIndex.Data data, SaxActivityIndex.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Item Id.
|
||||
if (errField.ItemId != SacsHierarchyItem.ValidValue.Ignore && !ItemId.IsValid(data.ItemId))
|
||||
{
|
||||
errField.ItemId = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Item Id must be specified");
|
||||
}
|
||||
// Sport.
|
||||
if (errField.SportId != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.SportId))
|
||||
{
|
||||
errField.SportId = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Sport must be specified");
|
||||
}
|
||||
// Region.
|
||||
if (errField.RegionId != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.RegionId))
|
||||
{
|
||||
errField.RegionId = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Region must be specified");
|
||||
}
|
||||
// Effective date.
|
||||
if (errField.EffectiveOn != SacsHierarchyItem.ValidValue.Ignore && !DateUtil.IsValid(data.EffectiveOn))
|
||||
{
|
||||
errField.EffectiveOn = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Effective date must be specified");
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.ActivityIndex_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.ActivityIndex_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (!SaxActivityIndex.ValidStatuses.Contains(data.Status))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState(ErrorMessage.InvalidStatus);
|
||||
}
|
||||
}
|
||||
|
||||
// NB Associated data items aren't validated as these should be valid on the 'parent' object.
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ActivityIndex database interface.
|
||||
public abstract bool InsertActivityIndex(SaxActivityIndex activityIndex, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool UpdateActivityIndex(SaxActivityIndex activityIndex, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool ActivityIndexCanBeDeleted(SaxActivityIndex activityIndex)
|
||||
{
|
||||
ClearErrorState();
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeleteActivityIndex(SaxActivityIndex activityIndex, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ActivityIndex list:
|
||||
public abstract ColumnDfn GetActivityIndexColumnDfn(SaxActivityIndex.Column columnId, String caption = "", int width = 0);
|
||||
public abstract List<String> GetActivityIndexQueryFilter(SaxActivityIndex.Params prmActivityIndex);
|
||||
public abstract long GetActivityIndexCount(SaxActivityIndex.Params prmActivityIndex);
|
||||
public abstract List<SaxActivityIndex> GetActivityIndexList(SaxActivityIndex.Params prmActivityIndex);
|
||||
public abstract DbResultSet ExecuteActivityIndexQuery(List<ColumnDfn> columns, SaxActivityIndex.Params prmActivityIndex);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Extract and format result set data value where specific handling is required.
|
||||
/// <para>Where response is an invalid data value, format value using column.FormatValue(values).</para>
|
||||
/// </summary>
|
||||
public virtual DataValue GetActivityIndexDataValue(ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SaxActivityIndex.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// Data item type.
|
||||
case SaxActivityIndex.Column.ItemType_Code:
|
||||
{
|
||||
value = new DataValue(DataItemTypes.GetCodeForType(values.GetLong(column.DataName)));
|
||||
}
|
||||
break;
|
||||
case SaxActivityIndex.Column.ItemType_Desc:
|
||||
{
|
||||
value = new DataValue(DataItemTypes.GetDescForType(values.GetLong(column.DataName)));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes - limit to 200 chars.
|
||||
case SaxActivityIndex.Column.Notes:
|
||||
{
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SaxActivityIndex.Column.Status_Desc:
|
||||
case SaxActivityIndex.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SaxActivityIndex.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SaxActivityIndex.Column.Status_Ind)
|
||||
value = new DataValue(SaxActivityIndex.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -66,41 +66,41 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
errField.UserAccountIdJournalist = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("User must be specified");
|
||||
}
|
||||
// Primary Region.
|
||||
if (errField.RegionIdPrimary != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.RegionIdPrimary))
|
||||
{
|
||||
errField.RegionIdPrimary = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Region must be specified");
|
||||
}
|
||||
// Primary Sport.
|
||||
if (errField.SportIdPrimary != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.SportIdPrimary))
|
||||
{
|
||||
errField.SportIdPrimary = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Sport must be specified");
|
||||
}
|
||||
// Primary Region.
|
||||
if (errField.RegionIdPrimary != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.RegionIdPrimary))
|
||||
{
|
||||
errField.RegionIdPrimary = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Region must be specified");
|
||||
}
|
||||
|
||||
// Headline.
|
||||
if (errField.Headline != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Headline, "headline", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.JournalistArticle_Headline), true))
|
||||
if (errField.Headline != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Headline, "headline", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.JournalistArticle_Headline), true))
|
||||
{
|
||||
errField.Headline = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Summary.
|
||||
if (errField.Summary != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Summary, "summary", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.JournalistArticle_Summary), true))
|
||||
if (errField.Summary != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Summary, "summary", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.JournalistArticle_Summary), true))
|
||||
{
|
||||
errField.Summary = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.JournalistArticle_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.JournalistArticle_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.JournalistArticle_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.JournalistArticle_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -128,19 +128,6 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
}
|
||||
}
|
||||
|
||||
// Primary Region.
|
||||
if (errField.RegionIdPrimary != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.RegionIdPrimary))
|
||||
{
|
||||
SaxRegion.Params prmRegion = new SaxRegion.Params();
|
||||
prmRegion.IdsIncluded.Add(data.RegionIdPrimary);
|
||||
prmRegion.StatusCat = SaxRegion.StatusCat.ActiveOnly;
|
||||
if (ReferenceMgr.GetRegionCount(prmRegion) < 1)
|
||||
{
|
||||
errField.RegionIdPrimary = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Invalid region specified");
|
||||
}
|
||||
}
|
||||
|
||||
// Primary Sport.
|
||||
if (errField.SportIdPrimary != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.SportIdPrimary))
|
||||
{
|
||||
@@ -154,6 +141,19 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
}
|
||||
}
|
||||
|
||||
// Primary Region.
|
||||
if (errField.RegionIdPrimary != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.RegionIdPrimary))
|
||||
{
|
||||
SaxRegion.Params prmRegion = new SaxRegion.Params();
|
||||
prmRegion.IdsIncluded.Add(data.RegionIdPrimary);
|
||||
prmRegion.StatusCat = SaxRegion.StatusCat.ActiveOnly;
|
||||
if (ReferenceMgr.GetRegionCount(prmRegion) < 1)
|
||||
{
|
||||
errField.RegionIdPrimary = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Invalid region specified");
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -66,18 +66,18 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
errField.OrganisationId = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Organisation must be specified");
|
||||
}
|
||||
// Primary Region.
|
||||
if (errField.RegionIdPrimary != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.RegionIdPrimary))
|
||||
{
|
||||
errField.RegionIdPrimary = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Region must be specified");
|
||||
}
|
||||
// Primary Sport.
|
||||
if (errField.SportIdPrimary != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.SportIdPrimary))
|
||||
{
|
||||
errField.SportIdPrimary = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Sport must be specified");
|
||||
}
|
||||
// Primary Region.
|
||||
if (errField.RegionIdPrimary != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.RegionIdPrimary))
|
||||
{
|
||||
errField.RegionIdPrimary = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Region must be specified");
|
||||
}
|
||||
|
||||
// Opportunity type.
|
||||
if (errField.OpportunityType != SacsHierarchyItem.ValidValue.Ignore && data.OpportunityType <= 0)
|
||||
@@ -86,27 +86,27 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
return SetErrorState("Opportunity type must be specified.");
|
||||
}
|
||||
// Position.
|
||||
if (errField.Position != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Position, "position", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.OrganisationOpportunity_Position), true))
|
||||
if (errField.Position != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Position, "position", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.OrganisationOpportunity_Position), true))
|
||||
{
|
||||
errField.Position = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Summary.
|
||||
if (errField.Outline != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Outline, "outline", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.OrganisationOpportunity_Outline), true))
|
||||
if (errField.Outline != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Outline, "outline", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.OrganisationOpportunity_Outline), true))
|
||||
{
|
||||
errField.Outline = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.OrganisationOpportunity_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.OrganisationOpportunity_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.OrganisationOpportunity_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.OrganisationOpportunity_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -133,19 +133,6 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
}
|
||||
}
|
||||
|
||||
// Primary Region.
|
||||
if (errField.RegionIdPrimary != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.RegionIdPrimary))
|
||||
{
|
||||
SaxRegion.Params prmRegion = new SaxRegion.Params();
|
||||
prmRegion.IdsIncluded.Add(data.RegionIdPrimary);
|
||||
prmRegion.StatusCat = SaxRegion.StatusCat.ActiveOnly;
|
||||
if (ReferenceMgr.GetRegionCount(prmRegion) < 1)
|
||||
{
|
||||
errField.RegionIdPrimary = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Invalid region specified");
|
||||
}
|
||||
}
|
||||
|
||||
// Primary Sport.
|
||||
if (errField.SportIdPrimary != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.SportIdPrimary))
|
||||
{
|
||||
@@ -159,6 +146,19 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
}
|
||||
}
|
||||
|
||||
// Primary Region.
|
||||
if (errField.RegionIdPrimary != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.RegionIdPrimary))
|
||||
{
|
||||
SaxRegion.Params prmRegion = new SaxRegion.Params();
|
||||
prmRegion.IdsIncluded.Add(data.RegionIdPrimary);
|
||||
prmRegion.StatusCat = SaxRegion.StatusCat.ActiveOnly;
|
||||
if (ReferenceMgr.GetRegionCount(prmRegion) < 1)
|
||||
{
|
||||
errField.RegionIdPrimary = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Invalid region specified");
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,8 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
public abstract partial class SaxActivityMgr : SaxItemMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
protected SaxActivityMgr(SaxSessionContext sessionContext) : base(sessionContext)
|
||||
protected SaxActivityMgr(SaxSessionContext sessionContext, SaxInternals internals) :
|
||||
base(sessionContext, internals)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -21,11 +21,11 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create item.
|
||||
public abstract SaxItemSport CreateItemSport ();
|
||||
public abstract SaxItemSport CreateItemSport();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item exists.
|
||||
public bool ItemSportExistsById (SysId id)
|
||||
public bool ItemSportExistsById(SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(id)) return false;
|
||||
@@ -37,8 +37,8 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Retrieve individual items.
|
||||
public abstract SaxItemSport GetItemSport (SaxItemSport.Params prmItemSport);
|
||||
public SaxItemSport GetItemSportById (SysId id)
|
||||
public abstract SaxItemSport GetItemSport(SaxItemSport.Params prmItemSport);
|
||||
public SaxItemSport GetItemSportById(SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(id)) return null;
|
||||
@@ -50,13 +50,13 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate item data.
|
||||
public bool IsValidItemSport (SaxItemSport itemSport)
|
||||
public bool IsValidItemSport(SaxItemSport itemSport)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (itemSport == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
|
||||
return IsValidItemSportData(itemSport.GetData(), new SaxItemSport.ErrField());
|
||||
}
|
||||
public virtual bool IsValidItemSportData (SaxItemSport.Data data, SaxItemSport.ErrField errField)
|
||||
public virtual bool IsValidItemSportData(SaxItemSport.Data data, SaxItemSport.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
@@ -71,19 +71,19 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
if (errField.SportId != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.SportId))
|
||||
{
|
||||
errField.SportId = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("User Role must be specified");
|
||||
return SetErrorState("Sport must be specified");
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.ItemSport_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.ItemSport_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.ItemSport_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.ItemSport_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -119,33 +119,46 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item database interface.
|
||||
public abstract bool InsertItemSport (SaxItemSport itemSport, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool UpdateItemSport (SaxItemSport itemSport, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool ItemSportCanBeDeleted (SaxItemSport itemSport)
|
||||
public abstract bool InsertItemSport(SaxItemSport itemSport, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool UpdateItemSport(SaxItemSport itemSport, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool ItemSportCanBeDeleted(SaxItemSport itemSport)
|
||||
{
|
||||
ClearErrorState();
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeleteItemSport (SaxItemSport itemSport, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool DeleteItemSport(SaxItemSport itemSport, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item list.
|
||||
public abstract ColumnDfn GetItemSportColumnDfn (SaxItemSport.Column columnId, String caption = "", int width = 0);
|
||||
public abstract List<String> GetItemSportQueryFilter (SaxItemSport.Params prmItemSport);
|
||||
public abstract long GetItemSportCount (SaxItemSport.Params prmItemSport);
|
||||
public abstract List<SaxItemSport> GetItemSportList (SaxItemSport.Params prmItemSport);
|
||||
public abstract DbResultSet ExecuteItemSportQuery (List<ColumnDfn> columns, SaxItemSport.Params prmItemSport);
|
||||
public abstract ColumnDfn GetItemSportColumnDfn(SaxItemSport.Column columnId, String caption = "", int width = 0);
|
||||
public abstract List<String> GetItemSportQueryFilter(SaxItemSport.Params prmItemSport);
|
||||
public abstract long GetItemSportCount(SaxItemSport.Params prmItemSport);
|
||||
public abstract List<SaxItemSport> GetItemSportList(SaxItemSport.Params prmItemSport);
|
||||
public abstract DbResultSet ExecuteItemSportQuery(List<ColumnDfn> columns, SaxItemSport.Params prmItemSport);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Extract and format result set data value where specific handling is required.
|
||||
/// <para>Where response is an invalid data value, format value using column.FormatValue(values).</para>
|
||||
/// </summary>
|
||||
public virtual DataValue GetItemSportDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
public virtual DataValue GetItemSportDataValue(ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SaxItemSport.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// Data item type.
|
||||
case SaxItemSport.Column.ItemType_Code:
|
||||
{
|
||||
value = new DataValue(DataItemTypes.GetCodeForType(values.GetLong(column.DataName)));
|
||||
}
|
||||
break;
|
||||
case SaxItemSport.Column.ItemType_Desc:
|
||||
{
|
||||
value = new DataValue(DataItemTypes.GetDescForType(values.GetLong(column.DataName)));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SaxItemSport.Column.Notes:
|
||||
@@ -156,17 +169,17 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
// Status.
|
||||
case SaxItemSport.Column.Status_Desc:
|
||||
case SaxItemSport.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SaxItemSport.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SaxItemSport.Column.Status_Ind)
|
||||
value = new DataValue(SaxItemSport.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SaxItemSport.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SaxItemSport.Column.Status_Ind)
|
||||
value = new DataValue(SaxItemSport.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,8 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
public abstract partial class SaxItemDataMgr : SaxItemMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
protected SaxItemDataMgr(SaxSessionContext sessionContext) : base(sessionContext)
|
||||
protected SaxItemDataMgr(SaxSessionContext sessionContext, SaxInternals internals) :
|
||||
base(sessionContext, internals)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -15,13 +15,28 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private SaxInternals internals;
|
||||
private class DataMembers
|
||||
{
|
||||
public SaxInternals internals;
|
||||
public bool internalsCreatedHere = false;
|
||||
}
|
||||
private DataMembers data = new DataMembers();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
protected SaxItemMgr(SaxSessionContext sessionContext)
|
||||
protected SaxItemMgr(SaxSessionContext sessionContext, SaxInternals internals)
|
||||
{
|
||||
data.internals = internals;
|
||||
SessionContext = sessionContext;
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
if (data.internals != null && data.internalsCreatedHere)
|
||||
data.internals.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
@@ -30,9 +45,21 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
public ISacsDatabase CoreDatabase { get { return Internals.CoreDatabase; } }
|
||||
public IDatabaseInfo CoreDbInfo { get { return Internals.CreateCoreDbInfo(); } }
|
||||
// Business components.
|
||||
private SaxInternals Internals { get { if (internals == null) internals = new SaxInternals(SessionContext); return internals; } }
|
||||
protected SaxInternals Internals
|
||||
{
|
||||
get
|
||||
{
|
||||
if (data.internals == null)
|
||||
{
|
||||
data.internals = new SaxInternals(SessionContext);
|
||||
data.internalsCreatedHere = true;
|
||||
}
|
||||
return data.internals;
|
||||
}
|
||||
}
|
||||
// Consoles.
|
||||
public SaxDataCacheConsole DataCacheConsole { get { return Internals.DataCacheConsole; } }
|
||||
public SaxActivityConsole ActivityConsole { get { return Internals.ActivityConsole; } }
|
||||
// Managers.
|
||||
public SaxReferenceMgr ReferenceMgr { get { return Internals.ReferenceMgr; } }
|
||||
public SaxAccountMgr AccountMgr { get { return Internals.AccountMgr; } }
|
||||
@@ -45,6 +72,7 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
public List<TypeCodeDesc> OrganisationCategories { get { return Internals.OrganisationCategories; } }
|
||||
public List<TypeCodeDesc> OrganisationRoles { get { return Internals.OrganisationRoles; } }
|
||||
public List<TypeCodeDesc> OpportunityTypes { get { return Internals.OpportunityTypes; } }
|
||||
public List<TypeCodeDesc> DataItemTypes { get { return Internals.DataItemTypes; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
// ISO 2 code.
|
||||
if (errField.CountryIso2Code != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (data.RegionType == App.Sax.RegionType.Country && !IsValidValue(data.CountryIso2Code, "ISO2 code", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.Region_CountryIso2Code), true, true))
|
||||
if (data.RegionType == App.Sax.RegionType.Country && !IsValidValue(data.CountryIso2Code, "ISO2 code", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Region_CountryIso2Code), true, true))
|
||||
{
|
||||
errField.CountryIso2Code = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -99,7 +99,7 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
}
|
||||
}
|
||||
// Name.
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.Region_Name), true))
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Region_Name), true))
|
||||
{
|
||||
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -122,14 +122,14 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.Region_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Region_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.Region_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Region_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -78,20 +78,20 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
{
|
||||
ClearErrorState();
|
||||
// Name.
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.Sport_Name), true))
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Sport_Name), true))
|
||||
{
|
||||
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.Sport_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Sport_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn.GetColTextLen(SaxDbDfn.ColumnIdx.Sport_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.Sport_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -9,7 +9,8 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
public abstract partial class SaxReferenceMgr : SaxItemMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
protected SaxReferenceMgr(SaxSessionContext sessionContext) :base(sessionContext)
|
||||
protected SaxReferenceMgr(SaxSessionContext sessionContext, SaxInternals internals) :
|
||||
base(sessionContext, internals)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user