v1.1.3.0
This commit is contained in:
@@ -505,6 +505,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Awaiting) + "'";
|
||||
if (statusCat == SaxUserAccount.StatusCat.ActiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'";
|
||||
if (statusCat == SaxUserAccount.StatusCat.AwaitingOrActive)
|
||||
return " In ('" + SacsSystem.GetStatusCode(SaStatus.Awaiting) + "','" + SacsSystem.GetStatusCode(SaStatus.Active) + "')";
|
||||
if (statusCat == SaxUserAccount.StatusCat.InactiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Inactive) + "'";
|
||||
if (statusCat == SaxUserAccount.StatusCat.NotDeleted)
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
new StringPair("Id",SysId.ToString(userOrganisation.Id)),
|
||||
new StringPair("UserAccountId",SysId.ToString(userOrganisation.UserAccountId)),
|
||||
new StringPair("OrganisationId",SysId.ToString(userOrganisation.OrganisationId)),
|
||||
new StringPair("Roles",userOrganisation.OrganisationRoles.Select(item => item.ToString()).Concat(", ")),
|
||||
new StringPair("Roles",userOrganisation.GetOrganisationRoles().ToList().Select(item => item.ToString()).Concat(", ")),
|
||||
new StringPair("Status",userOrganisation.StatusCode)
|
||||
};
|
||||
}
|
||||
@@ -216,7 +216,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
dbUserOrganisation._UserAccountId = SysId.ToInt(userOrganisation.UserAccountId);
|
||||
dbUserOrganisation._OrganisationId = SysId.ToInt(userOrganisation.OrganisationId);
|
||||
dbUserOrganisation._OrganisationRoleCodes = userOrganisation.GetOrganisationRoleCodesData();
|
||||
dbUserOrganisation._OrganisationRoleCount = (byte)userOrganisation.OrganisationRoles.Count;
|
||||
dbUserOrganisation._OrganisationRoleCount = (byte)userOrganisation.OrganisationRoleCount;
|
||||
dbUserOrganisation._AdminComment = userOrganisation.AdminComment;
|
||||
// Common.
|
||||
dbUserOrganisation._Notes = userOrganisation.Notes;
|
||||
dbUserOrganisation._Status = SacsSystem.GetStatusCode(userOrganisation.Status);
|
||||
@@ -237,6 +238,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
//userOrganisation.UserAccountId = new SysId(dbUserOrganisation._UserAccountId);
|
||||
//userOrganisation.OrganisationId = new SysId(dbUserOrganisation._OrganisationId);
|
||||
userOrganisation.OrganisationRoles = SaxUserOrganisation.GetOrganisationRolesFromCodes(dbUserOrganisation._OrganisationRoleCodes);
|
||||
userOrganisation.AdminComment = dbUserOrganisation._AdminComment;
|
||||
// Common.
|
||||
userOrganisation.Notes = dbUserOrganisation._Notes;
|
||||
userOrganisation.Status = SacsSystem.GetStatusForCode(dbUserOrganisation._Status);
|
||||
@@ -256,6 +258,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
private static readonly String prefixUserOrganisation_Organisation_Region = "UsrOrg_Org_Rgn_";
|
||||
private static readonly String aliasUserOrganisation_Organisation_Sport = "UsrOrg_Org_Spt";
|
||||
private static readonly String prefixUserOrganisation_Organisation_Sport = "UsrOrg_Org_Spt_";
|
||||
private static readonly String dataName_UserOrganisation_Organisation_Member_Count = "UsrOrg_Org_Mbr_Count";
|
||||
private static readonly String dataName_UserOrganisation_Organisation_Opportunity_Count = "UsrOrg_Org_Opp_Count";
|
||||
private void SetUserOrganisationColDfn
|
||||
(ColumnDfn col, String caption, int width, SaxDbDfn_Core.ColumnIdx dbCol,
|
||||
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
|
||||
@@ -329,6 +333,14 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
SetUserOrganisationColDfn(columnDfn, "Last name", 120, SaxDbDfn_Core.ColumnIdx.UserAccount_LastName, ColumnAlignment.Left, DataValue.DataType.String, aliasUserOrganisation_UserAccount, prefixUserOrganisation_UserAccount);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxUserOrganisation.Column.User_Status:
|
||||
SetUserOrganisationColDfn(columnDfn, "Status", 80, SaxDbDfn_Core.ColumnIdx.UserAccount_Status, ColumnAlignment.Center, DataValue.DataType.String, aliasUserOrganisation_UserAccount, prefixUserOrganisation_UserAccount);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxUserOrganisation.Column.User_Status_Desc:
|
||||
SetUserOrganisationColDfn(columnDfn, "Status", 90, SaxDbDfn_Core.ColumnIdx.UserAccount_Status, ColumnAlignment.Center, DataValue.DataType.String, aliasUserOrganisation_UserAccount, prefixUserOrganisation_UserAccount);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-------------------------------------------------------
|
||||
// Organisation.
|
||||
@@ -353,6 +365,24 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
// Derived properties.
|
||||
case SaxUserOrganisation.Column.Organisation_Member_Count:
|
||||
SetUserOrganisationColDfn(columnDfn, "Members", 76, SaxDbDfn_Core.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.DataName = dataName_UserOrganisation_Organisation_Member_Count;
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxUserOrganisation.Column.Organisation_Opportunity_Count:
|
||||
SetUserOrganisationColDfn(columnDfn, "Opportunities", 76, SaxDbDfn_Core.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.DataName = dataName_UserOrganisation_Organisation_Opportunity_Count;
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Properties.
|
||||
case SaxUserOrganisation.Column.AdminComment:
|
||||
SetUserOrganisationColDfn(columnDfn, "Comment", 240, SaxDbDfn_Core.ColumnIdx.UserOrganisation_AdminComment);
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Derived properties.
|
||||
|
||||
@@ -436,6 +466,25 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
if (!organisationIdsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_OrganisationId, aliasUserOrganisation) + " IN (" + organisationIdsIncluded + ")");
|
||||
|
||||
// Organisation status.
|
||||
if (prm.OrganisationStatusCat != SaxOrganisation.StatusCat.Any)
|
||||
{
|
||||
String aliasUserOrganisation_Organisation = StringUtil.OnEmpty(prm.Alias_Organisation, SaxAccountMgr_Dbas.aliasUserOrganisation_Organisation);
|
||||
if (StringUtil.IsEmpty(prm.Alias_Organisation))
|
||||
{
|
||||
// User Account table isn't linked.
|
||||
DbQuery qry = new DbQuery(CoreDatabase.DbmsType);
|
||||
qry.Tables.Add(SaxDbDfn_Core.GetTableName(SaxDbDfn_Core.TableIdx.Organisation), aliasUserOrganisation_Organisation);
|
||||
qry.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.Organisation_Id, aliasUserOrganisation_Organisation));
|
||||
qry.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.Organisation_Id, aliasUserOrganisation_Organisation) + "=" + SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_OrganisationId, aliasUserOrganisation));
|
||||
qry.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.Organisation_Status, aliasUserOrganisation_Organisation) + GetOrganisationStatusCatFilterCondition(prm.OrganisationStatusCat));
|
||||
filter.Add("Exists (" + qry.BuildQuery() + ")");
|
||||
}
|
||||
else
|
||||
// User Account table is linked - filter directly.
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.Organisation_Status, aliasUserOrganisation_Organisation) + GetOrganisationStatusCatFilterCondition(prm.OrganisationStatusCat));
|
||||
}
|
||||
|
||||
// Organisation roles.
|
||||
if (prm.OrganisationMembersOnly)
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_OrganisationRoleCount, aliasUserOrganisation) + ">0");
|
||||
@@ -465,8 +514,6 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
if (statusCat == SaxUserOrganisation.StatusCat.ActiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'";
|
||||
if (statusCat == SaxUserOrganisation.StatusCat.InactiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Inactive) + "'";
|
||||
if (statusCat == SaxUserOrganisation.StatusCat.NotDeleted)
|
||||
return "!='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
||||
if (statusCat == SaxUserOrganisation.StatusCat.DeletedOnly)
|
||||
@@ -572,7 +619,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
// Add columns as defined in query list.
|
||||
if (columns.HasId(SaxUserOrganisation.Column.Id))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_Id, aliasUserOrganisation));
|
||||
bool hasUserAccountCols = (columns.HasId(SaxUserOrganisation.Column.User_EmailAddress) || columns.HasId(SaxUserOrganisation.Column.User_DisplayName) || columns.HasId(SaxUserOrganisation.Column.User_Title) || columns.HasId(SaxUserOrganisation.Column.User_FirstName) || columns.HasId(SaxUserOrganisation.Column.User_LastName));
|
||||
bool hasUserAccountCols = (columns.HasId(SaxUserOrganisation.Column.User_EmailAddress) || columns.HasId(SaxUserOrganisation.Column.User_DisplayName) || columns.HasId(SaxUserOrganisation.Column.User_Title) || columns.HasId(SaxUserOrganisation.Column.User_FirstName) || columns.HasId(SaxUserOrganisation.Column.User_LastName) || columns.HasId(SaxUserOrganisation.Column.User_Status) || columns.HasId(SaxUserOrganisation.Column.User_Status_Desc));
|
||||
if (columns.HasId(SaxUserOrganisation.Column.UserAccountId) || hasUserAccountCols)
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_UserAccountId, aliasUserOrganisation));
|
||||
bool hasOrganisationCols = (columns.HasId(SaxUserOrganisation.Column.Organisation_Name) || columns.HasId(SaxUserOrganisation.Column.Organisation_RegionId) || columns.HasId(SaxUserOrganisation.Column.Organisation_SportId));
|
||||
@@ -584,6 +631,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_OrganisationRoleCodes, aliasUserOrganisation));
|
||||
if (columns.HasId(SaxUserOrganisation.Column.OrganisationRoleCount))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_OrganisationRoleCount, aliasUserOrganisation));
|
||||
if (columns.HasId(SaxUserOrganisation.Column.AdminComment))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_AdminComment, aliasUserOrganisation));
|
||||
// Common properties.
|
||||
if (columns.HasId(SaxUserOrganisation.Column.Notes))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_Notes, aliasUserOrganisation));
|
||||
@@ -608,10 +657,16 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
joinUserAccount.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Id, aliasUserOrganisation_UserAccount) + "=" + SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_UserAccountId, aliasUserOrganisation));
|
||||
query.Joins.Add(joinUserAccount);
|
||||
List<SaxDbDfn_Core.ColumnIdx> cols = new List<SaxDbDfn_Core.ColumnIdx>();
|
||||
cols.Add(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress);
|
||||
cols.Add(SaxDbDfn_Core.ColumnIdx.UserAccount_Title);
|
||||
cols.Add(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName);
|
||||
cols.Add(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName);
|
||||
if (columns.HasId(SaxUserOrganisation.Column.User_EmailAddress))
|
||||
cols.Add(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress);
|
||||
if (columns.HasId(SaxUserOrganisation.Column.User_Title) || columns.HasId(SaxUserOrganisation.Column.User_DisplayName))
|
||||
cols.Add(SaxDbDfn_Core.ColumnIdx.UserAccount_Title);
|
||||
if (columns.HasId(SaxUserOrganisation.Column.User_FirstName) || columns.HasId(SaxUserOrganisation.Column.User_DisplayName))
|
||||
cols.Add(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName);
|
||||
if (columns.HasId(SaxUserOrganisation.Column.User_LastName) || columns.HasId(SaxUserOrganisation.Column.User_DisplayName))
|
||||
cols.Add(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName);
|
||||
if (columns.HasId(SaxUserOrganisation.Column.User_Status) || columns.HasId(SaxUserOrganisation.Column.User_Status_Desc))
|
||||
cols.Add(SaxDbDfn_Core.ColumnIdx.UserAccount_Status);
|
||||
foreach (var col in cols)
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(col, aliasUserOrganisation_UserAccount), prefixUserOrganisation_UserAccount + SaxDbDfn_Core.GetColumnName(col, false));
|
||||
}
|
||||
@@ -659,6 +714,34 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Organisation Member count.
|
||||
if (columns.HasId(SaxUserOrganisation.Column.Organisation_Member_Count))
|
||||
{
|
||||
// Count 'Member' entries on User Organisation for the Organisation.
|
||||
String aliasOrgMbr = "OrgMbr";
|
||||
DbQuery qryOrgMbr = new DbQuery(CoreDatabase.DbmsType);
|
||||
qryOrgMbr.Tables.Add(SaxDbDfn_Core.GetTableName(SaxDbDfn_Core.TableIdx.UserOrganisation), aliasOrgMbr);
|
||||
qryOrgMbr.Columns.Add("Count(*)");
|
||||
qryOrgMbr.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_OrganisationId, aliasOrgMbr) + "=" + SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_OrganisationId, aliasUserOrganisation));
|
||||
qryOrgMbr.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_OrganisationRoleCount, aliasOrgMbr) + ">0");
|
||||
query.Columns.Add("(" + qryOrgMbr.BuildQuery() + ")", dataName_UserOrganisation_Organisation_Member_Count);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Organisation Opportunity count.
|
||||
if (columns.HasId(SaxUserOrganisation.Column.Organisation_Opportunity_Count))
|
||||
{
|
||||
// Count Organisation Opportunities.
|
||||
String aliasOrgOpp = "OrgOpp";
|
||||
DbQuery qryOrgOpp = new DbQuery(CoreDatabase.DbmsType);
|
||||
qryOrgOpp.Tables.Add(SaxDbDfn_Core.GetTableName(SaxDbDfn_Core.TableIdx.OrganisationOpportunity), aliasOrgOpp);
|
||||
qryOrgOpp.Columns.Add("Count(*)");
|
||||
qryOrgOpp.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationOpportunity_OrganisationId, aliasOrgOpp) + "=" + SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_OrganisationId, aliasUserOrganisation));
|
||||
// ToDo Should be limited by expiry etc.
|
||||
query.Columns.Add("(" + qryOrgOpp.BuildQuery() + ")", dataName_UserOrganisation_Organisation_Opportunity_Count);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetUserOrganisationQueryFilter(prm));
|
||||
|
||||
Reference in New Issue
Block a user