1.2.11.9 Golf Countries & Provinces

This commit is contained in:
2024-06-17 18:16:02 +01:00
parent dedea84691
commit 1c77a2b2e9
43 changed files with 2256 additions and 182 deletions
@@ -317,6 +317,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
private static readonly String aliasUsgaCountry = "UsgPrv";
private static readonly String aliasUsgaCountry_Dummy = "UsgPrv_Cty";
private static readonly String prefixUsgaCountry_Dummy = aliasUsgaCountry_Dummy + "_";
private static readonly String colCountry_Province_Count = "Cty_Prv_Count";
private static readonly String colCountry_Province_Active_Count = "Cty_Prv_Act_Count";
private static readonly String colCountry_Facility_Count = "Cty_Fty_Count";
private static readonly String colCountry_Facility_Active_Count = "Cty_Fty_Act_Count";
private void SetUsgaCountryColDfn
(ColumnDfn col, String caption, int width, SaxDbDfn_Reference.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
@@ -357,6 +361,22 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
//-----------------------------------------------------------
// Derived properties.
case SaxGolfUsgaCountry.Column.ProvinceCount_All:
SetUsgaCountryColDfn(columnDfn, "Provinces", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colCountry_Province_Count;
break;
case SaxGolfUsgaCountry.Column.ProvinceCount_Active:
SetUsgaCountryColDfn(columnDfn, "Provinces (act)", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colCountry_Province_Active_Count;
break;
case SaxGolfUsgaCountry.Column.FacilityCount_All:
SetUsgaCountryColDfn(columnDfn, "Facilities", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colCountry_Facility_Count;
break;
case SaxGolfUsgaCountry.Column.FacilityCount_Active:
SetUsgaCountryColDfn(columnDfn, "Facilities (act)", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colCountry_Facility_Active_Count;
break;
//-----------------------------------------------------------
// Common properties.
@@ -418,10 +438,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
filterWords.RemoveBlanks();
foreach (String filterWord in filterWords)
{
List<String> articleFilter = new List<String>();
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryCode, aliasUsgaCountry)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryName, aliasUsgaCountry)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(articleFilter.Concat(" OR ", "(", ")"));
List<String> countryFilter = new List<String>();
countryFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryCode, aliasUsgaCountry)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
countryFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryName, aliasUsgaCountry)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(countryFilter.Concat(" OR ", "(", ")"));
}
}
@@ -469,7 +489,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
public List<String> GetUsgaCountrySortColumns(SaxGolfUsgaCountry.Params prm)
{
// Sort sequence:
List<String> sortColumnNames = new List<String>();
HashSet<String> sortColumnNames = new HashSet<String>();
foreach (var columnDfn in prm.SortColumns)
{
// Need to ensure correct alias used for UsgaCountry columns in case of conflict.
@@ -496,7 +516,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
// Default sort columns.
sortColumnNames.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry) + " ASC");
}
return sortColumnNames;
return sortColumnNames.ToList();
}
//-------------------------------------------------------------------
@@ -581,6 +601,68 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
if (columns.HasId(SaxGolfUsgaCountry.Column.UpdateOn_Date))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_UpdateOn, aliasUsgaCountry));
//---------------------------------------------------------------------
// Province count.
if (columns.HasId(SaxGolfUsgaCountry.Column.ProvinceCount_All))
{
String aliasProvince = "aCtyPrv_Count";
DbQuery queryProvince = new DbQuery(CoreDatabase.DbmsType);
queryProvince.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince), aliasProvince);
queryProvince.Columns.Add("Count(*)");
queryProvince.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CountryId, aliasProvince) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry));
query.Columns.Add("(" + queryProvince.BuildQuery() + ")", colCountry_Province_Count);
}
// Active Province count.
if (columns.HasId(SaxGolfUsgaCountry.Column.ProvinceCount_Active))
{
String aliasProvince = "aCtyPrvAct_Count";
DbQuery queryProvince = new DbQuery(CoreDatabase.DbmsType);
queryProvince.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince), aliasProvince);
queryProvince.Columns.Add("Count(*)");
queryProvince.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CountryId, aliasProvince) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry));
queryProvince.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Status, aliasProvince) + "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'");
query.Columns.Add("(" + queryProvince.BuildQuery() + ")", colCountry_Province_Active_Count);
}
//---------------------------------------------------------------------
// Facility count.
if (columns.HasId(SaxGolfUsgaCountry.Column.ProvinceCount_All))
{
String aliasProvince = "aCtyFty_Count_Prv";
DbQuery queryProvince = new DbQuery(CoreDatabase.DbmsType);
queryProvince.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince), aliasProvince);
queryProvince.Columns.Add("Count(*)");
queryProvince.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CountryId, aliasProvince) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry));
// Join to Facility.
String aliasFacility = "aCtyFty_Count_Fty";
DbQueryJoin joinFacility = new DbQueryJoin(DbJoinType.Inner);
joinFacility.Table = new StringPair(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasFacility);
joinFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasFacility) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasProvince));
queryProvince.Joins.Add(joinFacility);
// Construct sub-query.
query.Columns.Add("(" + queryProvince.BuildQuery() + ")", colCountry_Facility_Count);
}
// Active Facility count.
if (columns.HasId(SaxGolfUsgaCountry.Column.ProvinceCount_Active))
{
String aliasProvince = "aCtyFty_Count_Prv";
DbQuery queryProvince = new DbQuery(CoreDatabase.DbmsType);
queryProvince.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince), aliasProvince);
queryProvince.Columns.Add("Count(*)");
queryProvince.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CountryId, aliasProvince) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry));
// Join to Facility.
String aliasFacility = "aCtyFty_Count_Fty";
DbQueryJoin joinFacility = new DbQueryJoin(DbJoinType.Inner);
joinFacility.Table = new StringPair(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasFacility);
joinFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasFacility) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasProvince));
joinFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Status, aliasFacility) + "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'");
queryProvince.Joins.Add(joinFacility);
// Construct sub-query.
query.Columns.Add("(" + queryProvince.BuildQuery() + ")", colCountry_Facility_Active_Count);
}
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetUsgaCountryQueryFilter(prm));
@@ -529,13 +529,13 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
filterWords.RemoveBlanks();
foreach (String filterWord in filterWords)
{
List<String> articleFilter = new List<String>();
articleFilter.Add($"{col_CourseName} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FullName, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address1, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address2, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_City, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(articleFilter.Concat(" OR ", "(", ")"));
List<String> courseFilter = new List<String>();
courseFilter.Add($"{col_CourseName} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
courseFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FullName, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
courseFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address1, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
courseFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address2, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
courseFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_City, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(courseFilter.Concat(" OR ", "(", ")"));
}
}
@@ -468,9 +468,9 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
filterWords.RemoveBlanks();
foreach (String filterWord in filterWords)
{
List<String> articleFilter = new List<String>();
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName, aliasUsgaFacility)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(articleFilter.Concat(" OR ", "(", ")"));
List<String> facilityFilter = new List<String>();
facilityFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName, aliasUsgaFacility)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(facilityFilter.Concat(" OR ", "(", ")"));
}
}
@@ -514,12 +514,12 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
filterWords.RemoveBlanks();
foreach (String filterWord in filterWords)
{
List<String> articleFilter = new List<String>();
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Caption, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_HolesCaption, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Tee, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Gender, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(articleFilter.Concat(" OR ", "(", ")"));
List<String> markerFilter = new List<String>();
markerFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Caption, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
markerFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_HolesCaption, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
markerFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Tee, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
markerFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Gender, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(markerFilter.Concat(" OR ", "(", ")"));
}
}
@@ -327,6 +327,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
private static readonly String aliasUsgaProvince = "UsgPrv";
private static readonly String aliasUsgaProvince_Country = "UsgPrv_Cty";
private static readonly String prefixUsgaProvince_Country = aliasUsgaProvince_Country + "_";
private static readonly String colProvince_Facility_Count = "Prv_Fty_Count";
private static readonly String colProvince_Facility_Active_Count = "Prv_Fty_Act_Count";
private static readonly String colProvince_Course_Count = "Prv_Crs_Count";
private static readonly String colProvince_Course_Active_Count = "Prv_Crs_Act_Count";
private void SetUsgaProvinceColDfn
(ColumnDfn col, String caption, int width, SaxDbDfn_Reference.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
@@ -377,6 +381,22 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
//-----------------------------------------------------------
// Derived properties.
case SaxGolfUsgaProvince.Column.FacilityCount_All:
SetUsgaProvinceColDfn(columnDfn, "Facilities", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colProvince_Facility_Count;
break;
case SaxGolfUsgaProvince.Column.FacilityCount_Active:
SetUsgaProvinceColDfn(columnDfn, "Facilities (act)", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colProvince_Facility_Active_Count;
break;
case SaxGolfUsgaProvince.Column.CourseCount_All:
SetUsgaProvinceColDfn(columnDfn, "Courses", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colProvince_Course_Count;
break;
case SaxGolfUsgaProvince.Column.CourseCount_Active:
SetUsgaProvinceColDfn(columnDfn, "Courses (act)", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colProvince_Course_Active_Count;
break;
//-----------------------------------------------------------
// Common properties.
@@ -442,10 +462,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
filterWords.RemoveBlanks();
foreach (String filterWord in filterWords)
{
List<String> articleFilter = new List<String>();
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceCode, aliasUsgaProvince)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceName, aliasUsgaProvince)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(articleFilter.Concat(" OR ", "(", ")"));
List<String> provinceFilter = new List<String>();
provinceFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceCode, aliasUsgaProvince)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
provinceFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceName, aliasUsgaProvince)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(provinceFilter.Concat(" OR ", "(", ")"));
}
}
@@ -623,6 +643,68 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
prm.Alias_Country = aliasUsgaProvince_Country;
}
//---------------------------------------------------------------------
// Facility count.
if (columns.HasId(SaxGolfUsgaProvince.Column.FacilityCount_All))
{
String aliasFacility = "aPrvFty_Count";
DbQuery queryFacility = new DbQuery(CoreDatabase.DbmsType);
queryFacility.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasFacility);
queryFacility.Columns.Add("Count(*)");
queryFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasFacility) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaProvince));
query.Columns.Add("(" + queryFacility.BuildQuery() + ")", colProvince_Facility_Count);
}
// Active Facility count.
if (columns.HasId(SaxGolfUsgaProvince.Column.FacilityCount_Active))
{
String aliasFacility = "aPrvFtyAct_Count";
DbQuery queryFacility = new DbQuery(CoreDatabase.DbmsType);
queryFacility.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasFacility);
queryFacility.Columns.Add("Count(*)");
queryFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasFacility) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaProvince));
queryFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Status, aliasFacility) + "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'");
query.Columns.Add("(" + queryFacility.BuildQuery() + ")", colProvince_Facility_Active_Count);
}
//---------------------------------------------------------------------
// Course count.
if (columns.HasId(SaxGolfUsgaProvince.Column.FacilityCount_All))
{
String aliasFacility = "aPrvFty_Count_Fty";
DbQuery queryFacility = new DbQuery(CoreDatabase.DbmsType);
queryFacility.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasFacility);
queryFacility.Columns.Add("Count(*)");
queryFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasFacility) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaProvince));
// Join to Course.
String aliasCourse = "aPrvFty_Count_Crs";
DbQueryJoin joinCourse = new DbQueryJoin(DbJoinType.Inner);
joinCourse.Table = new StringPair(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCourse), aliasCourse);
joinCourse.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FacilityId, aliasCourse) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Id, aliasFacility));
queryFacility.Joins.Add(joinCourse);
// Construct sub-query.
query.Columns.Add("(" + queryFacility.BuildQuery() + ")", colProvince_Course_Count);
}
// Active Course count.
if (columns.HasId(SaxGolfUsgaProvince.Column.FacilityCount_Active))
{
String aliasFacility = "aPrvFty_Count_Fty";
DbQuery queryFacility = new DbQuery(CoreDatabase.DbmsType);
queryFacility.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasFacility);
queryFacility.Columns.Add("Count(*)");
queryFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasFacility) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaProvince));
// Join to Course.
String aliasCourse = "aPrvFty_Count_Crs";
DbQueryJoin joinCourse = new DbQueryJoin(DbJoinType.Inner);
joinCourse.Table = new StringPair(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCourse), aliasCourse);
joinCourse.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FacilityId, aliasCourse) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Id, aliasFacility));
joinCourse.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Status, aliasCourse) + "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'");
queryFacility.Joins.Add(joinCourse);
// Construct sub-query.
query.Columns.Add("(" + queryFacility.BuildQuery() + ")", colProvince_Course_Active_Count);
}
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetUsgaProvinceQueryFilter(prm));