Activity Index. User Account country. Internals regions.
This commit is contained in:
2021-05-25 22:00:08 +01:00
parent 778ee3aa03
commit 63473c725b
173 changed files with 8149 additions and 41639 deletions
+4 -1
View File
@@ -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.
+3 -1
View File
@@ -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,
}
@@ -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),
};
//-------------------------------------------------------------------
+183 -7
View File
@@ -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");
//---------------------------------------------------------------
}
+6 -4
View File
@@ -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; }
+11 -1
View File
@@ -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)
{
}
+31 -3
View File
@@ -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)
{
}