1.2.11.10 Golf Courses

This commit is contained in:
2024-06-18 18:08:11 +01:00
parent 1c77a2b2e9
commit 8f73e616ca
56 changed files with 802 additions and 316 deletions
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Core
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
@@ -23,6 +23,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
public ColumnDataString _CountryCode { get; } = new ColumnDataString("CountryCode");
public ColumnDataString _CountryName { get; } = new ColumnDataString("CountryName");
public ColumnDataString _EntCountryCode { get; } = new ColumnDataString("EntCountryCode");
public ColumnDataDateTimeNullable _ProvincesUpdateAt { get; } = new ColumnDataDateTimeNullable("ProvincesUpdateAt");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
@@ -42,6 +43,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
"CountryCode",
"CountryName",
"EntCountryCode",
"ProvincesUpdateAt",
"Notes",
"Flags",
"Status",
@@ -63,6 +65,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
protected static List<String> fieldsNullable { get; } = new List<String>()
{
"EntCountryCode",
"ProvincesUpdateAt",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
@@ -91,6 +94,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
public String _CountryCode { get { return Cols._CountryCode.Value; } set { Cols._CountryCode.Value = value; } }
public String _CountryName { get { return Cols._CountryName.Value; } set { Cols._CountryName.Value = value; } }
public String _EntCountryCode { get { return Cols._EntCountryCode.Value; } set { Cols._EntCountryCode.Value = value; } }
public DateTime? _ProvincesUpdateAt { get { return Cols._ProvincesUpdateAt.Value; } set { Cols._ProvincesUpdateAt.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
@@ -125,6 +129,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
_CountryCode = GetFieldString(dbDataReader, "CountryCode", _CountryCode);
_CountryName = GetFieldString(dbDataReader, "CountryName", _CountryName);
_EntCountryCode = GetFieldString(dbDataReader, "EntCountryCode", _EntCountryCode);
_ProvincesUpdateAt = GetFieldDateTimeNullable(dbDataReader, "ProvincesUpdateAt", _ProvincesUpdateAt);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
@@ -158,6 +163,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
if (columnNames.ContainsCI("CountryCode")) AddCommandParameter(dbCommand, "@CountryCode", _CountryCode);
if (columnNames.ContainsCI("CountryName")) AddCommandParameter(dbCommand, "@CountryName", _CountryName);
if (columnNames.ContainsCI("EntCountryCode")) AddCommandParameter(dbCommand, "@EntCountryCode", _EntCountryCode);
if (columnNames.ContainsCI("ProvincesUpdateAt")) AddCommandParameter(dbCommand, "@ProvincesUpdateAt", _ProvincesUpdateAt);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
@@ -206,6 +212,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
if (columnNames.ContainsCI("CountryCode")) AddCommandParameter(dbCommand, "@CountryCode", _CountryCode);
if (columnNames.ContainsCI("CountryName")) AddCommandParameter(dbCommand, "@CountryName", _CountryName);
if (columnNames.ContainsCI("EntCountryCode")) AddCommandParameter(dbCommand, "@EntCountryCode", _EntCountryCode);
if (columnNames.ContainsCI("ProvincesUpdateAt")) AddCommandParameter(dbCommand, "@ProvincesUpdateAt", _ProvincesUpdateAt);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
@@ -21,7 +21,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
public ColumnDataInt64 _Id { get; } = new ColumnDataInt64("Id", true);
public ColumnDataInt64 _FacilityId { get; } = new ColumnDataInt64("FacilityId");
public ColumnDataInt64 _CourseId { get; } = new ColumnDataInt64("CourseId");
public ColumnDataInt64 _UsgaCourseId { get; } = new ColumnDataInt64("UsgaCourseId");
public ColumnDataInt64 _LegacyCrpCourseId { get; } = new ColumnDataInt64("LegacyCrpCourseId");
public ColumnDataString _Caption { get; } = new ColumnDataString("Caption");
public ColumnDataString _CourseName { get; } = new ColumnDataString("CourseName");
@@ -34,6 +34,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
public ColumnDataDecimalNullable _Longitude { get; } = new ColumnDataDecimalNullable("Longitude");
public ColumnDataString _Email { get; } = new ColumnDataString("Email");
public ColumnDataString _Telephone { get; } = new ColumnDataString("Telephone");
public ColumnDataDateTimeNullable _MarkersUpdateAt { get; } = new ColumnDataDateTimeNullable("MarkersUpdateAt");
public ColumnDataString _MarkersData { get; } = new ColumnDataString("MarkersData");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
@@ -52,7 +53,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
"Id",
"FacilityId",
"CourseId",
"UsgaCourseId",
"LegacyCrpCourseId",
"Caption",
"CourseName",
@@ -65,6 +66,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
"Longitude",
"Email",
"Telephone",
"MarkersUpdateAt",
"MarkersData",
"Notes",
"Flags",
@@ -88,6 +90,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
"Latitude",
"Longitude",
"MarkersUpdateAt",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
@@ -114,7 +117,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
public ColumnsData Cols { get; } = new ColumnsData();
public Int64 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int64 _FacilityId { get { return Cols._FacilityId.Value; } set { Cols._FacilityId.Value = value; } }
public Int64 _CourseId { get { return Cols._CourseId.Value; } set { Cols._CourseId.Value = value; } }
public Int64 _UsgaCourseId { get { return Cols._UsgaCourseId.Value; } set { Cols._UsgaCourseId.Value = value; } }
public Int64 _LegacyCrpCourseId { get { return Cols._LegacyCrpCourseId.Value; } set { Cols._LegacyCrpCourseId.Value = value; } }
public String _Caption { get { return Cols._Caption.Value; } set { Cols._Caption.Value = value; } }
public String _CourseName { get { return Cols._CourseName.Value; } set { Cols._CourseName.Value = value; } }
@@ -127,6 +130,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
public Decimal? _Longitude { get { return Cols._Longitude.Value; } set { Cols._Longitude.Value = value; } }
public String _Email { get { return Cols._Email.Value; } set { Cols._Email.Value = value; } }
public String _Telephone { get { return Cols._Telephone.Value; } set { Cols._Telephone.Value = value; } }
public DateTime? _MarkersUpdateAt { get { return Cols._MarkersUpdateAt.Value; } set { Cols._MarkersUpdateAt.Value = value; } }
public String _MarkersData { get { return Cols._MarkersData.Value; } set { Cols._MarkersData.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
@@ -160,7 +164,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
_Id = GetFieldInt64(dbDataReader, "Id", _Id);
_FacilityId = GetFieldInt64(dbDataReader, "FacilityId", _FacilityId);
_CourseId = GetFieldInt64(dbDataReader, "CourseId", _CourseId);
_UsgaCourseId = GetFieldInt64(dbDataReader, "UsgaCourseId", _UsgaCourseId);
_LegacyCrpCourseId = GetFieldInt64(dbDataReader, "LegacyCrpCourseId", _LegacyCrpCourseId);
_Caption = GetFieldString(dbDataReader, "Caption", _Caption);
_CourseName = GetFieldString(dbDataReader, "CourseName", _CourseName);
@@ -173,6 +177,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
_Longitude = GetFieldDecimalNullable(dbDataReader, "Longitude", _Longitude);
_Email = GetFieldString(dbDataReader, "Email", _Email);
_Telephone = GetFieldString(dbDataReader, "Telephone", _Telephone);
_MarkersUpdateAt = GetFieldDateTimeNullable(dbDataReader, "MarkersUpdateAt", _MarkersUpdateAt);
_MarkersData = GetFieldString(dbDataReader, "MarkersData", _MarkersData);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
@@ -205,7 +210,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("FacilityId")) AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
if (columnNames.ContainsCI("CourseId")) AddCommandParameter(dbCommand, "@CourseId", _CourseId);
if (columnNames.ContainsCI("UsgaCourseId")) AddCommandParameter(dbCommand, "@UsgaCourseId", _UsgaCourseId);
if (columnNames.ContainsCI("LegacyCrpCourseId")) AddCommandParameter(dbCommand, "@LegacyCrpCourseId", _LegacyCrpCourseId);
if (columnNames.ContainsCI("Caption")) AddCommandParameter(dbCommand, "@Caption", _Caption);
if (columnNames.ContainsCI("CourseName")) AddCommandParameter(dbCommand, "@CourseName", _CourseName);
@@ -218,6 +223,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
if (columnNames.ContainsCI("Longitude")) AddCommandParameter(dbCommand, "@Longitude", _Longitude);
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
if (columnNames.ContainsCI("Telephone")) AddCommandParameter(dbCommand, "@Telephone", _Telephone);
if (columnNames.ContainsCI("MarkersUpdateAt")) AddCommandParameter(dbCommand, "@MarkersUpdateAt", _MarkersUpdateAt);
if (columnNames.ContainsCI("MarkersData")) AddCommandParameter(dbCommand, "@MarkersData", _MarkersData);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
@@ -265,7 +271,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("FacilityId")) AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
if (columnNames.ContainsCI("CourseId")) AddCommandParameter(dbCommand, "@CourseId", _CourseId);
if (columnNames.ContainsCI("UsgaCourseId")) AddCommandParameter(dbCommand, "@UsgaCourseId", _UsgaCourseId);
if (columnNames.ContainsCI("LegacyCrpCourseId")) AddCommandParameter(dbCommand, "@LegacyCrpCourseId", _LegacyCrpCourseId);
if (columnNames.ContainsCI("Caption")) AddCommandParameter(dbCommand, "@Caption", _Caption);
if (columnNames.ContainsCI("CourseName")) AddCommandParameter(dbCommand, "@CourseName", _CourseName);
@@ -278,6 +284,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
if (columnNames.ContainsCI("Longitude")) AddCommandParameter(dbCommand, "@Longitude", _Longitude);
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
if (columnNames.ContainsCI("Telephone")) AddCommandParameter(dbCommand, "@Telephone", _Telephone);
if (columnNames.ContainsCI("MarkersUpdateAt")) AddCommandParameter(dbCommand, "@MarkersUpdateAt", _MarkersUpdateAt);
if (columnNames.ContainsCI("MarkersData")) AddCommandParameter(dbCommand, "@MarkersData", _MarkersData);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
@@ -21,7 +21,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
public ColumnDataInt64 _Id { get; } = new ColumnDataInt64("Id", true);
public ColumnDataInt64 _ProvinceId { get; } = new ColumnDataInt64("ProvinceId");
public ColumnDataInt64 _FacilityId { get; } = new ColumnDataInt64("FacilityId");
public ColumnDataInt64 _UsgaFacilityId { get; } = new ColumnDataInt64("UsgaFacilityId");
public ColumnDataString _FacilityName { get; } = new ColumnDataString("FacilityName");
public ColumnDataString _Address1 { get; } = new ColumnDataString("Address1");
public ColumnDataString _Address2 { get; } = new ColumnDataString("Address2");
@@ -48,7 +48,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
"Id",
"ProvinceId",
"FacilityId",
"UsgaFacilityId",
"FacilityName",
"Address1",
"Address2",
@@ -106,7 +106,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
public ColumnsData Cols { get; } = new ColumnsData();
public Int64 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int64 _ProvinceId { get { return Cols._ProvinceId.Value; } set { Cols._ProvinceId.Value = value; } }
public Int64 _FacilityId { get { return Cols._FacilityId.Value; } set { Cols._FacilityId.Value = value; } }
public Int64 _UsgaFacilityId { get { return Cols._UsgaFacilityId.Value; } set { Cols._UsgaFacilityId.Value = value; } }
public String _FacilityName { get { return Cols._FacilityName.Value; } set { Cols._FacilityName.Value = value; } }
public String _Address1 { get { return Cols._Address1.Value; } set { Cols._Address1.Value = value; } }
public String _Address2 { get { return Cols._Address2.Value; } set { Cols._Address2.Value = value; } }
@@ -148,7 +148,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
_Id = GetFieldInt64(dbDataReader, "Id", _Id);
_ProvinceId = GetFieldInt64(dbDataReader, "ProvinceId", _ProvinceId);
_FacilityId = GetFieldInt64(dbDataReader, "FacilityId", _FacilityId);
_UsgaFacilityId = GetFieldInt64(dbDataReader, "UsgaFacilityId", _UsgaFacilityId);
_FacilityName = GetFieldString(dbDataReader, "FacilityName", _FacilityName);
_Address1 = GetFieldString(dbDataReader, "Address1", _Address1);
_Address2 = GetFieldString(dbDataReader, "Address2", _Address2);
@@ -189,7 +189,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("ProvinceId")) AddCommandParameter(dbCommand, "@ProvinceId", _ProvinceId);
if (columnNames.ContainsCI("FacilityId")) AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
if (columnNames.ContainsCI("UsgaFacilityId")) AddCommandParameter(dbCommand, "@UsgaFacilityId", _UsgaFacilityId);
if (columnNames.ContainsCI("FacilityName")) AddCommandParameter(dbCommand, "@FacilityName", _FacilityName);
if (columnNames.ContainsCI("Address1")) AddCommandParameter(dbCommand, "@Address1", _Address1);
if (columnNames.ContainsCI("Address2")) AddCommandParameter(dbCommand, "@Address2", _Address2);
@@ -245,7 +245,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("ProvinceId")) AddCommandParameter(dbCommand, "@ProvinceId", _ProvinceId);
if (columnNames.ContainsCI("FacilityId")) AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
if (columnNames.ContainsCI("UsgaFacilityId")) AddCommandParameter(dbCommand, "@UsgaFacilityId", _UsgaFacilityId);
if (columnNames.ContainsCI("FacilityName")) AddCommandParameter(dbCommand, "@FacilityName", _FacilityName);
if (columnNames.ContainsCI("Address1")) AddCommandParameter(dbCommand, "@Address1", _Address1);
if (columnNames.ContainsCI("Address2")) AddCommandParameter(dbCommand, "@Address2", _Address2);
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
@@ -21,7 +21,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
public ColumnDataInt64 _Id { get; } = new ColumnDataInt64("Id", true);
public ColumnDataInt64 _CourseId { get; } = new ColumnDataInt64("CourseId");
public ColumnDataInt64 _MarkerId { get; } = new ColumnDataInt64("MarkerId");
public ColumnDataInt64 _UsgaMarkerId { get; } = new ColumnDataInt64("UsgaMarkerId");
public ColumnDataString _Caption { get; } = new ColumnDataString("Caption");
public ColumnDataInt16 _Holes { get; } = new ColumnDataInt16("Holes");
public ColumnDataString _HolesCaption { get; } = new ColumnDataString("HolesCaption");
@@ -49,7 +49,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
"Id",
"CourseId",
"MarkerId",
"UsgaMarkerId",
"Caption",
"Holes",
"HolesCaption",
@@ -106,7 +106,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
public ColumnsData Cols { get; } = new ColumnsData();
public Int64 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
public Int64 _CourseId { get { return Cols._CourseId.Value; } set { Cols._CourseId.Value = value; } }
public Int64 _MarkerId { get { return Cols._MarkerId.Value; } set { Cols._MarkerId.Value = value; } }
public Int64 _UsgaMarkerId { get { return Cols._UsgaMarkerId.Value; } set { Cols._UsgaMarkerId.Value = value; } }
public String _Caption { get { return Cols._Caption.Value; } set { Cols._Caption.Value = value; } }
public Int16 _Holes { get { return Cols._Holes.Value; } set { Cols._Holes.Value = value; } }
public String _HolesCaption { get { return Cols._HolesCaption.Value; } set { Cols._HolesCaption.Value = value; } }
@@ -149,7 +149,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
_Id = GetFieldInt64(dbDataReader, "Id", _Id);
_CourseId = GetFieldInt64(dbDataReader, "CourseId", _CourseId);
_MarkerId = GetFieldInt64(dbDataReader, "MarkerId", _MarkerId);
_UsgaMarkerId = GetFieldInt64(dbDataReader, "UsgaMarkerId", _UsgaMarkerId);
_Caption = GetFieldString(dbDataReader, "Caption", _Caption);
_Holes = GetFieldInt16(dbDataReader, "Holes", _Holes);
_HolesCaption = GetFieldString(dbDataReader, "HolesCaption", _HolesCaption);
@@ -191,7 +191,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("CourseId")) AddCommandParameter(dbCommand, "@CourseId", _CourseId);
if (columnNames.ContainsCI("MarkerId")) AddCommandParameter(dbCommand, "@MarkerId", _MarkerId);
if (columnNames.ContainsCI("UsgaMarkerId")) AddCommandParameter(dbCommand, "@UsgaMarkerId", _UsgaMarkerId);
if (columnNames.ContainsCI("Caption")) AddCommandParameter(dbCommand, "@Caption", _Caption);
if (columnNames.ContainsCI("Holes")) AddCommandParameter(dbCommand, "@Holes", _Holes);
if (columnNames.ContainsCI("HolesCaption")) AddCommandParameter(dbCommand, "@HolesCaption", _HolesCaption);
@@ -248,7 +248,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
// Populate parameters.
dbCommand.Parameters.Clear();
if (columnNames.ContainsCI("CourseId")) AddCommandParameter(dbCommand, "@CourseId", _CourseId);
if (columnNames.ContainsCI("MarkerId")) AddCommandParameter(dbCommand, "@MarkerId", _MarkerId);
if (columnNames.ContainsCI("UsgaMarkerId")) AddCommandParameter(dbCommand, "@UsgaMarkerId", _UsgaMarkerId);
if (columnNames.ContainsCI("Caption")) AddCommandParameter(dbCommand, "@Caption", _Caption);
if (columnNames.ContainsCI("Holes")) AddCommandParameter(dbCommand, "@Holes", _Holes);
if (columnNames.ContainsCI("HolesCaption")) AddCommandParameter(dbCommand, "@HolesCaption", _HolesCaption);
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:29
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{
@@ -24,6 +24,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
public ColumnDataString _ProvinceCode { get; } = new ColumnDataString("ProvinceCode");
public ColumnDataString _EntProvinceCode { get; } = new ColumnDataString("EntProvinceCode");
public ColumnDataString _ProvinceName { get; } = new ColumnDataString("ProvinceName");
public ColumnDataDateTimeNullable _CoursesUpdateAt { get; } = new ColumnDataDateTimeNullable("CoursesUpdateAt");
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
@@ -44,6 +45,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
"ProvinceCode",
"EntProvinceCode",
"ProvinceName",
"CoursesUpdateAt",
"Notes",
"Flags",
"Status",
@@ -64,6 +66,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
};
protected static List<String> fieldsNullable { get; } = new List<String>()
{
"CoursesUpdateAt",
};
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
{
@@ -93,6 +96,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
public String _ProvinceCode { get { return Cols._ProvinceCode.Value; } set { Cols._ProvinceCode.Value = value; } }
public String _EntProvinceCode { get { return Cols._EntProvinceCode.Value; } set { Cols._EntProvinceCode.Value = value; } }
public String _ProvinceName { get { return Cols._ProvinceName.Value; } set { Cols._ProvinceName.Value = value; } }
public DateTime? _CoursesUpdateAt { get { return Cols._CoursesUpdateAt.Value; } set { Cols._CoursesUpdateAt.Value = value; } }
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
public String _Status { get { return Cols._Status.Value; } set { Cols._Status.Value = value; } }
@@ -128,6 +132,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
_ProvinceCode = GetFieldString(dbDataReader, "ProvinceCode", _ProvinceCode);
_EntProvinceCode = GetFieldString(dbDataReader, "EntProvinceCode", _EntProvinceCode);
_ProvinceName = GetFieldString(dbDataReader, "ProvinceName", _ProvinceName);
_CoursesUpdateAt = GetFieldDateTimeNullable(dbDataReader, "CoursesUpdateAt", _CoursesUpdateAt);
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
_Status = GetFieldString(dbDataReader, "Status", _Status);
@@ -162,6 +167,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
if (columnNames.ContainsCI("ProvinceCode")) AddCommandParameter(dbCommand, "@ProvinceCode", _ProvinceCode);
if (columnNames.ContainsCI("EntProvinceCode")) AddCommandParameter(dbCommand, "@EntProvinceCode", _EntProvinceCode);
if (columnNames.ContainsCI("ProvinceName")) AddCommandParameter(dbCommand, "@ProvinceName", _ProvinceName);
if (columnNames.ContainsCI("CoursesUpdateAt")) AddCommandParameter(dbCommand, "@CoursesUpdateAt", _CoursesUpdateAt);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
@@ -211,6 +217,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
if (columnNames.ContainsCI("ProvinceCode")) AddCommandParameter(dbCommand, "@ProvinceCode", _ProvinceCode);
if (columnNames.ContainsCI("EntProvinceCode")) AddCommandParameter(dbCommand, "@EntProvinceCode", _EntProvinceCode);
if (columnNames.ContainsCI("ProvinceName")) AddCommandParameter(dbCommand, "@ProvinceName", _ProvinceName);
if (columnNames.ContainsCI("CoursesUpdateAt")) AddCommandParameter(dbCommand, "@CoursesUpdateAt", _CoursesUpdateAt);
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:30
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Support
{
@@ -9,7 +9,7 @@ using System.Data.Common;
using System.Linq;
//---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 13-Jun-2024 12:44:40
// Code generated by Sarand Database Utilities Tue 18-Jun-2024 10:19:30
//---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Support
{
@@ -215,6 +215,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
dbUsgaCountry._CountryCode = usgaCountry.CountryCode;
dbUsgaCountry._EntCountryCode = usgaCountry.EntCountryCode;
dbUsgaCountry._CountryName = usgaCountry.CountryName;
dbUsgaCountry._ProvincesUpdateAt = usgaCountry.ProvincesUpdateAt;
// Common.
dbUsgaCountry._Notes = usgaCountry.Notes;
dbUsgaCountry._Status = SacsSystem.GetStatusCode(usgaCountry.Status);
@@ -235,6 +236,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
usgaCountry.CountryCode = dbUsgaCountry._CountryCode;
usgaCountry.EntCountryCode = dbUsgaCountry._EntCountryCode;
usgaCountry.CountryName = dbUsgaCountry._CountryName;
usgaCountry.ProvincesUpdateAt = dbUsgaCountry._ProvincesUpdateAt;
// Common.
usgaCountry.Notes = dbUsgaCountry._Notes;
usgaCountry.Status = SacsSystem.GetStatusForCode(dbUsgaCountry._Status);
@@ -272,7 +274,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
List<String> query = new List<string>();
query.Add($"Declare @statusActive VarChar(3) = '{SacsSystem.GetStatusCode(SaxGolfUsgaCountry.DefaultStatus)}';");
query.Add($"Declare @updateOn DateTime = GetUtcDate();");
query.Add($"Declare @updateOn DateTime = GetDate();");
query.Add($"Declare @updateBy Int = {SysId.ToLong(dbUpdateInfo.UserId)};");
query.Add($"Declare @updateHost VarChar(100) = '{DbQuery.FormatForCondition(dbUpdateInfo.Host)}';");
query.Add("Merge");
@@ -284,7 +286,9 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
query.Add($"Union Select '{DbQuery.FormatForCondition(country.CountryCode)}', " + (country.EntCountryCode != null ? $"'{DbQuery.FormatForCondition(country.EntCountryCode)}'" : "Null") + ", " + (country.CountryName != null ? $"'{DbQuery.FormatForCondition(country.CountryName)}'" : "Null"));
query.Add(") dCty");
query.Add("On uCty.CountryCode=dCty.CountryCode");
query.Add("When Matched And ((dCty.EntCountryCode Is Not Null And uCty.EntCountryCode!=dCty.EntCountryCode) Or (dCty.CountryName Is Not Null And uCty.CountryName!=dCty.CountryName) Or uCty.Status!=@statusActive)");
// Always update countries so that they are time stamped.
// Was: query.Add("When Matched And ((dCty.EntCountryCode Is Not Null And uCty.EntCountryCode!=dCty.EntCountryCode) Or (dCty.CountryName Is Not Null And uCty.CountryName!=dCty.CountryName) Or uCty.Status!=@statusActive)");
query.Add("When Matched");
query.Add("Then Update Set");
query.Add(" EntCountryCode=Coalesce(dCty.EntCountryCode,uCty.EntCountryCode),");
query.Add(" CountryName=Coalesce(dCty.CountryName,uCty.CountryName),");
@@ -321,6 +325,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
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 static readonly String colCountry_Courses_Percent = "Cty_Crs_Perc";
private void SetUsgaCountryColDfn
(ColumnDfn col, String caption, int width, SaxDbDfn_Reference.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
@@ -358,6 +363,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
SetUsgaCountryColDfn(columnDfn, "Name", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryName, ColumnAlignment.Center);
columnDfn.ReadOnly = true;
break;
case SaxGolfUsgaCountry.Column.ProvincesUpdateAt_Date:
SetUsgaCountryColDfn(columnDfn, "Provinces updated", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCountry_ProvincesUpdateAt, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.ReadOnly = true;
break;
//-----------------------------------------------------------
// Derived properties.
@@ -378,6 +387,11 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
columnDfn.DataName = colCountry_Facility_Active_Count;
break;
case SaxGolfUsgaCountry.Column.FacilityPercent:
SetUsgaCountryColDfn(columnDfn, "Courses %", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colCountry_Courses_Percent;
break;
//-----------------------------------------------------------
// Common properties.
case SaxGolfUsgaCountry.Column.Notes:
@@ -589,6 +603,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryCode, aliasUsgaCountry));
if (columns.HasId(SaxGolfUsgaCountry.Column.CountryName))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryName, aliasUsgaCountry));
if (columns.HasId(SaxGolfUsgaCountry.Column.ProvincesUpdateAt_Date))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_ProvincesUpdateAt, aliasUsgaCountry));
// Common properties.
if (columns.HasId(SaxGolfUsgaCountry.Column.Notes))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Notes, aliasUsgaCountry));
@@ -651,18 +667,45 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
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_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)}'");
// 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) + "'");
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);
}
//---------------------------------------------------------------------
// Facility population %.
if (columns.HasId(SaxGolfUsgaCountry.Column.FacilityPercent))
{
// Sub query to count provinces & provinces with facilities, and work out the percent with facilities.
String alias_Province = "prv";
String alias_Facility = "fty";
String table_Province = $"{SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince)} {alias_Province}";
String table_Facility = $"{SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility)} {alias_Facility}";
String col_Country_Id = SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry);
String col_Province_Id = SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, alias_Province);
String col_Province_CountryId = SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CountryId, alias_Province);
String col_Facility_ProvinceId = SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, alias_Facility);
String name_ProvinceCount = "ProvinceCount";
String name_ProvincesWithFacilities= "ProvincesWithFacilities";
List<String> subQuery = new List<String>();
subQuery.Add($"Select Convert (decimal(9,2), Case When {name_ProvinceCount} > 0 Then 100.0 * (1.0 * {name_ProvincesWithFacilities} / {name_ProvinceCount}) Else 0 End)");
subQuery.Add($"From");
subQuery.Add($"(");
subQuery.Add($"Select");
subQuery.Add($"{name_ProvinceCount} = (select Count(*) From {table_Province} Where {col_Province_CountryId}={col_Country_Id}),");
subQuery.Add($"{name_ProvincesWithFacilities} = (select Count(*) From {table_Province} Where {col_Province_CountryId}={col_Country_Id} and {col_Province_Id} in (Select {col_Facility_ProvinceId} from {table_Facility}))");
subQuery.Add($") dat");
query.Columns.Add($"({subQuery.Concat(" ")})", colCountry_Courses_Percent);
}
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetUsgaCountryQueryFilter(prm));
@@ -31,7 +31,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
new StringPair("Id",SysId.ToString(usgaCourse.Id)),
new StringPair("FacilityId",SysId.ToString(usgaCourse.FacilityId)),
new StringPair("CourseId",SysId.ToString(usgaCourse.CourseId)),
new StringPair("UsgaCourseId",SysId.ToString(usgaCourse.UsgaCourseId)),
new StringPair("Caption ",usgaCourse.Caption),
new StringPair("Status",usgaCourse.StatusCode)
};
@@ -215,7 +215,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
dbUsgaCourse._Id = SysId.ToLong(usgaCourse.Id);
dbUsgaCourse._FacilityId = SysId.ToInt(usgaCourse.FacilityId);
dbUsgaCourse._CourseId = SysId.ToInt(usgaCourse.CourseId);
dbUsgaCourse._UsgaCourseId = SysId.ToInt(usgaCourse.UsgaCourseId);
dbUsgaCourse._LegacyCrpCourseId = SysId.ToInt(usgaCourse.LegacyCrpCourseId);
dbUsgaCourse._Caption = usgaCourse.Caption;
dbUsgaCourse._CourseName = usgaCourse.CourseName;
@@ -228,6 +228,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
dbUsgaCourse._Longitude = usgaCourse.Longitude;
dbUsgaCourse._Email = usgaCourse.Email;
dbUsgaCourse._Telephone = usgaCourse.Telephone;
dbUsgaCourse._MarkersUpdateAt = usgaCourse.MarkersUpdateAt;
dbUsgaCourse._MarkersData = usgaCourse.MarkersData;
// Common.
dbUsgaCourse._Notes = usgaCourse.Notes;
@@ -247,7 +248,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
//usgaCourse.Id = new SysId(dbUsgaCourse._Id);
usgaCourse.FacilityId = new SysId(dbUsgaCourse._FacilityId);
usgaCourse.CourseId = new SysId(dbUsgaCourse._CourseId);
usgaCourse.UsgaCourseId = new SysId(dbUsgaCourse._UsgaCourseId);
usgaCourse.LegacyCrpCourseId = new SysId(dbUsgaCourse._LegacyCrpCourseId);
usgaCourse.Caption = dbUsgaCourse._Caption;
usgaCourse.CourseName = dbUsgaCourse._CourseName;
@@ -260,6 +261,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
usgaCourse.Longitude = dbUsgaCourse._Longitude;
usgaCourse.Email = dbUsgaCourse._Email;
usgaCourse.Telephone = dbUsgaCourse._Telephone;
usgaCourse.MarkersUpdateAt = dbUsgaCourse._MarkersUpdateAt;
usgaCourse.MarkersData = dbUsgaCourse._MarkersData;
// Common.
usgaCourse.Notes = dbUsgaCourse._Notes;
@@ -288,8 +290,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
// Validate course properties.
// Facility and Course Codes are mandatory, other values only validated if non-null.
if (!SysId.IsValid(course.FacilityId)) return SetErrorState("Facility Id must be supplied");
if (!SysId.IsValid(course.CourseId)) return SetErrorState("Course Id must be supplied");
if (!SysId.IsValid(course.UsgaFacilityId)) return SetErrorState("Facility Id must be supplied");
if (!SysId.IsValid(course.UsgaCourseId)) return SetErrorState("USGA Course Id must be supplied");
if (course.Caption != null && !IsValidValue(course.Caption, "caption", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Caption), true)) return false;
if (course.CourseName != null && !IsValidValue(course.CourseName, "name", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CourseName))) return false;
if (course.FullName != null && !IsValidValue(course.FullName, "full name", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FullName))) return false;
@@ -306,19 +308,19 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
List<String> query = new List<string>();
query.Add($"Declare @statusActive VarChar(3) = '{SacsSystem.GetStatusCode(SaxGolfUsgaCourse.DefaultStatus)}';");
query.Add($"Declare @updateOn DateTime = GetUtcDate();");
query.Add($"Declare @updateOn DateTime = GetDate();");
query.Add($"Declare @updateBy Int = {SysId.ToLong(dbUpdateInfo.UserId)};");
query.Add($"Declare @updateHost VarChar(100) = '{DbQuery.FormatForCondition(dbUpdateInfo.Host)}';");
query.Add("Merge");
query.Add($"Into {SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCourse)} uCrs");
query.Add("Using");
query.Add("(");
query.Add("Select dFty.Id FacilityId, dCrs.CourseId, dCrs.LegacyCrpCourseId, dCrs.Caption, dCrs.CourseName, dCrs.FullName, dCrs.Address1, dCrs.Address2, dCrs.City, dCrs.PostalCode, dCrs.Email, dCrs.Telephone");
query.Add("Select dFty.Id FacilityId, dCrs.UsgaFacilityId, dCrs.UsgaCourseId, dCrs.LegacyCrpCourseId, dCrs.Caption, dCrs.CourseName, dCrs.FullName, dCrs.Address1, dCrs.Address2, dCrs.City, dCrs.PostalCode, dCrs.Email, dCrs.Telephone");
query.Add("From");
query.Add("(");
query.Add("Select 0 FacilityId, 0 CourseId, 0 LegacyCrpCourseId, '' Caption, '' CourseName, '' FullName, '' Address1, '' Address2, '' City, '' PostalCode, '' Email, '' Telephone");
query.Add("Select 0 UsgaFacilityId, 0 UsgaCourseId, 0 LegacyCrpCourseId, '' Caption, '' CourseName, '' FullName, '' Address1, '' Address2, '' City, '' PostalCode, '' Email, '' Telephone");
foreach (UsgaCourseData course in coursesToUpdate.ExtractRange(0, batchSize))
query.Add($"Union Select {course.FacilityId}, {course.CourseId}, " +
query.Add($"Union Select {course.UsgaFacilityId}, {course.UsgaCourseId}, " +
(SysId.IsValid(course.LegacyCrpCourseId) ? $"{course.LegacyCrpCourseId}" : "Null") + "," +
(course.Caption != null ? $"'{DbQuery.FormatForCondition(course.Caption)}'" : "Null") + "," +
(course.CourseName != null ? $"'{DbQuery.FormatForCondition(course.CourseName)}'" : "Null") + "," +
@@ -330,9 +332,9 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
(course.Email != null ? $"'{DbQuery.FormatForCondition(course.Email)}'" : "Null") + "," +
(course.Telephone != null ? $"'{DbQuery.FormatForCondition(course.Telephone)}'" : "Null"));
query.Add(") dCrs");
query.Add($"Inner Join {SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility)} dFty On dFty.FacilityId=dCrs.FacilityId");
query.Add($"Inner Join {SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility)} dFty On dFty.UsgaFacilityId=dCrs.UsgaFacilityId");
query.Add(") dCrs");
query.Add("On uCrs.FacilityId=dCrs.FacilityId And uCrs.CourseId=dCrs.CourseId");
query.Add("On uCrs.FacilityId=dCrs.FacilityId And uCrs.UsgaCourseId=dCrs.UsgaCourseId");
query.Add("When Matched And ((dCrs.LegacyCrpCourseId Is Not Null And uCrs.LegacyCrpCourseId!=dCrs.LegacyCrpCourseId) Or (dCrs.Caption Is Not Null And uCrs.Caption!=dCrs.Caption) Or (dCrs.CourseName Is Not Null And uCrs.CourseName!=dCrs.CourseName) Or (dCrs.FullName Is Not Null And uCrs.FullName!=dCrs.FullName) Or (dCrs.Address1 Is Not Null And uCrs.Address1!=dCrs.Address1) Or (dCrs.Address2 Is Not Null And uCrs.Address2!=dCrs.Address2) Or (dCrs.City Is Not Null And uCrs.City!=dCrs.City) Or (dCrs.PostalCode Is Not Null And uCrs.PostalCode!=dCrs.PostalCode) Or (dCrs.Email Is Not Null And uCrs.Email!=dCrs.Email) Or (dCrs.Telephone Is Not Null And uCrs.Telephone!=dCrs.Telephone) Or uCrs.Status!=@statusActive)");
query.Add("Then Update Set");
query.Add(" LegacyCrpCourseId=Coalesce(dCrs.LegacyCrpCourseId,uCrs.LegacyCrpCourseId),");
@@ -350,8 +352,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
query.Add(" UpdateBy=@updateBy,");
query.Add(" UpdateHost=@updateHost");
query.Add("When Not Matched And Len(Coalesce(dCrs.Caption,''))>0");
query.Add("Then Insert (FacilityId,CourseId,LegacyCrpCourseId,Caption,CourseName,FullName,Address1,Address2,City,PostalCode,Email,Telephone,MarkersData,Notes,Flags,Status,CreateOn,CreateBy,CreateHost,UpdateOn,UpdateBy,UpdateHost)");
query.Add($"Values (dCrs.FacilityId,dCrs.CourseId,Coalesce(dCrs.LegacyCrpCourseId,0),dCrs.Caption,Coalesce(dCrs.CourseName,''),Coalesce(dCrs.FullName,''),Coalesce(dCrs.Address1,''),Coalesce(dCrs.Address2,''),Coalesce(dCrs.City,''),Coalesce(dCrs.PostalCode,''),Coalesce(dCrs.Email,''),Coalesce(dCrs.Telephone,''),'','',0,@statusActive,@updateOn,@updateBy,@updateHost,@updateOn,@updateBy,@updateHost)");
query.Add("Then Insert (FacilityId,UsgaCourseId,LegacyCrpCourseId,Caption,CourseName,FullName,Address1,Address2,City,PostalCode,Email,Telephone,MarkersData,Notes,Flags,Status,CreateOn,CreateBy,CreateHost,UpdateOn,UpdateBy,UpdateHost)");
query.Add($"Values (dCrs.FacilityId,dCrs.UsgaCourseId,Coalesce(dCrs.LegacyCrpCourseId,0),dCrs.Caption,Coalesce(dCrs.CourseName,''),Coalesce(dCrs.FullName,''),Coalesce(dCrs.Address1,''),Coalesce(dCrs.Address2,''),Coalesce(dCrs.City,''),Coalesce(dCrs.PostalCode,''),Coalesce(dCrs.Email,''),Coalesce(dCrs.Telephone,''),'','',0,@statusActive,@updateOn,@updateBy,@updateHost,@updateOn,@updateBy,@updateHost)");
query.Add(";");
//SaLogger.Info($"{SysUtil.Fn} Bulk USGA Course update query:\n\t{query.Concat("\n\t")}");
@@ -374,6 +376,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
private static readonly String aliasUsgaCourse = "UsgCrs";
private static readonly String aliasUsgaCourse_Facility = "UsgCrs_Cty";
private static readonly String prefixUsgaCourse_Facility = aliasUsgaCourse_Facility + "_";
private static readonly String colCourse_Marker_Count = "Crs_Mkr_Count";
private static readonly String colCourse_Marker_Active_Count = "Crs_Mkr_Act_Count";
private void SetUsgaCourseColDfn
(ColumnDfn col, String caption, int width, SaxDbDfn_Reference.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
@@ -413,14 +417,18 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
break;
//-------------------------------------------------------
case SaxGolfUsgaCourse.Column.CourseId:
SetUsgaCourseColDfn(columnDfn, "Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CourseId, ColumnAlignment.Center, DataValue.DataType.Long);
case SaxGolfUsgaCourse.Column.UsgaCourseId:
SetUsgaCourseColDfn(columnDfn, "Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_UsgaCourseId, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SaxGolfUsgaCourse.Column.LegacyCrpCourseId:
SetUsgaCourseColDfn(columnDfn, "CRP Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_LegacyCrpCourseId, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SaxGolfUsgaCourse.Column.Caption:
SetUsgaCourseColDfn(columnDfn, "Caption", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Caption, ColumnAlignment.Center);
columnDfn.ReadOnly = true;
break;
case SaxGolfUsgaCourse.Column.CourseName:
SetUsgaCourseColDfn(columnDfn, "Name", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CourseName, ColumnAlignment.Center);
columnDfn.ReadOnly = true;
@@ -449,9 +457,21 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
SetUsgaCourseColDfn(columnDfn, "Telephone", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Telephone, ColumnAlignment.Center);
columnDfn.ReadOnly = true;
break;
case SaxGolfUsgaCourse.Column.MarkersUpdateOn_Date:
SetUsgaCourseColDfn(columnDfn, "Markers updated", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_MarkersUpdateAt, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.ReadOnly = true;
break;
//-----------------------------------------------------------
// Derived properties.
case SaxGolfUsgaCourse.Column.MarkerCount_All:
SetUsgaProvinceColDfn(columnDfn, "Markers", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colCourse_Marker_Count;
break;
case SaxGolfUsgaCourse.Column.MarkerCount_Active:
SetUsgaProvinceColDfn(columnDfn, "Markers (act)", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colCourse_Marker_Active_Count;
break;
//-----------------------------------------------------------
// Common properties.
@@ -460,16 +480,20 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
break;
case SaxGolfUsgaCourse.Column.Flags:
SetUsgaCourseColDfn(columnDfn, "Flags", 60, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SaxGolfUsgaCourse.Column.Status:
SetUsgaCourseColDfn(columnDfn, "Status", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Status, ColumnAlignment.Center);
columnDfn.ReadOnly = true;
break;
case SaxGolfUsgaCourse.Column.Status_Desc:
SetUsgaCourseColDfn(columnDfn, "Status", 90, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Status, ColumnAlignment.Center);
columnDfn.ReadOnly = true;
break;
case SaxGolfUsgaCourse.Column.Status_Ind:
SetUsgaCourseColDfn(columnDfn, "Status", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
columnDfn.ReadOnly = true;
break;
case SaxGolfUsgaCourse.Column.CreateOn_Date:
SetUsgaCourseColDfn(columnDfn, "Created", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
@@ -517,9 +541,9 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
if (prm.FacilityIdsIncluded.HasValidIds())
filter.Add($"{col_FacilityId} IN ({prm.FacilityIdsIncluded.Concat(",")})");
// Course Ids.
if (prm.CourseIdsIncluded.HasValidIds())
filter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CourseId, aliasUsgaCourse)} IN ({prm.CourseIdsIncluded.Concat(",")})");
// USGA Course Ids.
if (prm.UsgaCourseIdsIncluded.HasValidIds())
filter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_UsgaCourseId, aliasUsgaCourse)} IN ({prm.UsgaCourseIdsIncluded.Concat(",")})");
if (!StringUtil.IsBlank(prm.CourseFilter))
{
@@ -557,9 +581,9 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
filter.Add(DbQuery.BuildBitMappedFilter(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Flags, aliasUsgaCourse), SaxGolfUsgaCourse.Flag_Priority, prm.PriorityFlagState == SacsHierarchyItem.Params.FlagState.True));
// Associated data.
if (prm.HasMarkers!= SacsHierarchyItem.Params.BoolState.Either)
if (prm.HasMarkers != SacsHierarchyItem.Params.BoolState.Either)
{
String existsPrefix = (prm.HasMarkers== SacsHierarchyItem.Params.BoolState.True ? "" : "Not ");
String existsPrefix = (prm.HasMarkers == SacsHierarchyItem.Params.BoolState.True ? "" : "Not ");
filter.Add($"{existsPrefix} Exists (Select 1 From {SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaMarker)} Where {SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_CourseId)}={col_Id})");
}
@@ -689,10 +713,12 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
bool hasFacilityCols = (columns.HasId(SaxGolfUsgaCourse.Column.Facility_Name));
if (columns.HasId(SaxGolfUsgaCourse.Column.FacilityId) || hasFacilityCols)
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FacilityId, aliasUsgaCourse));
if (columns.HasId(SaxGolfUsgaCourse.Column.CourseId))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CourseId, aliasUsgaCourse));
if (columns.HasId(SaxGolfUsgaCourse.Column.UsgaCourseId))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_UsgaCourseId, aliasUsgaCourse));
if (columns.HasId(SaxGolfUsgaCourse.Column.LegacyCrpCourseId))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_LegacyCrpCourseId, aliasUsgaCourse));
if (columns.HasId(SaxGolfUsgaCourse.Column.Caption))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Caption, aliasUsgaCourse));
if (columns.HasId(SaxGolfUsgaCourse.Column.CourseName))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CourseName, aliasUsgaCourse));
if (columns.HasId(SaxGolfUsgaCourse.Column.FullName))
@@ -707,6 +733,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Email, aliasUsgaCourse));
if (columns.HasId(SaxGolfUsgaCourse.Column.Telephone))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Telephone, aliasUsgaCourse));
if (columns.HasId(SaxGolfUsgaCourse.Column.MarkersUpdateOn_Date))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_MarkersUpdateAt, aliasUsgaCourse));
// Common properties.
if (columns.HasId(SaxGolfUsgaCourse.Column.Notes))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Notes, aliasUsgaCourse));
@@ -728,12 +756,37 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
joinFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Id, aliasUsgaCourse_Facility) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FacilityId, aliasUsgaCourse));
query.Joins.Add(joinFacility);
List<SaxDbDfn_Reference.ColumnIdx> cols = new List<SaxDbDfn_Reference.ColumnIdx>();
cols.Add(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_UsgaFacilityId);
cols.Add(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName);
foreach (var col in cols)
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(col, aliasUsgaCourse_Facility), prefixUsgaCourse_Facility + SaxDbDfn_Reference.GetColumnName(col, false));
prm.Alias_Facility = aliasUsgaCourse_Facility;
}
//---------------------------------------------------------------------
// Marker count.
if (columns.HasId(SaxGolfUsgaCourse.Column.MarkerCount_All))
{
String aliasMarker = "aCrsMkr_Count";
DbQuery queryMarker = new DbQuery(CoreDatabase.DbmsType);
queryMarker.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaMarker), aliasMarker);
queryMarker.Columns.Add("Count(*)");
queryMarker.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_CourseId, aliasMarker) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Id, aliasUsgaCourse));
query.Columns.Add("(" + queryMarker.BuildQuery() + ")", colCourse_Marker_Count);
}
// Active Marker count.
if (columns.HasId(SaxGolfUsgaCourse.Column.MarkerCount_Active))
{
String aliasMarker = "aCrsMkrAct_Count";
DbQuery queryMarker = new DbQuery(CoreDatabase.DbmsType);
queryMarker.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaMarker), aliasMarker);
queryMarker.Columns.Add("Count(*)");
queryMarker.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_CourseId, aliasMarker) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Id, aliasUsgaCourse));
queryMarker.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Status, aliasMarker) + "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'");
query.Columns.Add("(" + queryMarker.BuildQuery() + ")", colCourse_Marker_Active_Count);
}
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetUsgaCourseQueryFilter(prm));
@@ -30,7 +30,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
new StringPair("Id",SysId.ToString(usgaFacility.Id)),
new StringPair("ProvinceId",SysId.ToString(usgaFacility.ProvinceId)),
new StringPair("FacilityId",SysId.ToString(usgaFacility.FacilityId)),
new StringPair("UsgaFacilityId",SysId.ToString(usgaFacility.UsgaFacilityId)),
new StringPair("FacilityName",usgaFacility.FacilityName),
new StringPair("Status",usgaFacility.StatusCode)
};
@@ -214,7 +214,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
dbUsgaFacility._Id = SysId.ToLong(usgaFacility.Id);
dbUsgaFacility._ProvinceId = SysId.ToInt(usgaFacility.ProvinceId);
dbUsgaFacility._FacilityId = SysId.ToLong(usgaFacility.FacilityId);
dbUsgaFacility._UsgaFacilityId = SysId.ToLong(usgaFacility.UsgaFacilityId);
dbUsgaFacility._FacilityName = usgaFacility.FacilityName;
dbUsgaFacility._Address1 = usgaFacility.Address1;
dbUsgaFacility._Address2 = usgaFacility.Address2;
@@ -242,7 +242,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
//usgaFacility.Id = new SysId(dbUsgaFacility._Id);
usgaFacility.ProvinceId = new SysId(dbUsgaFacility._ProvinceId);
usgaFacility.FacilityId = new SysId(dbUsgaFacility._FacilityId);
usgaFacility.UsgaFacilityId = new SysId(dbUsgaFacility._UsgaFacilityId);
usgaFacility.FacilityName = dbUsgaFacility._FacilityName;
usgaFacility.Address1 = dbUsgaFacility._Address1;
usgaFacility.Address2 = dbUsgaFacility._Address2;
@@ -280,7 +280,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
// Validate facility properties.
// Province and Facility Codes are mandatory, other values only validated if non-null.
if (!IsValidValue(facility.ProvinceCode, "province", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceCode), true)) return false;
if (!SysId.IsValid(facility.FacilityId)) return SetErrorState("Facility Id must be supplied");
if (!SysId.IsValid(facility.UsgaFacilityId)) return SetErrorState("USGA Facility Id must be supplied");
if (facility.FacilityName != null && !IsValidValue(facility.FacilityName, "name", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName))) return false;
if (facility.Address1 != null && !IsValidValue(facility.Address1, "address 1", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Address1))) return false;
if (facility.Address2 != null && !IsValidValue(facility.Address2, "address 2", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Address2))) return false;
@@ -295,19 +295,19 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
List<String> query = new List<string>();
query.Add($"Declare @statusActive VarChar(3) = '{SacsSystem.GetStatusCode(SaxGolfUsgaFacility.DefaultStatus)}';");
query.Add($"Declare @updateOn DateTime = GetUtcDate();");
query.Add($"Declare @updateOn DateTime = GetDate();");
query.Add($"Declare @updateBy Int = {SysId.ToLong(dbUpdateInfo.UserId)};");
query.Add($"Declare @updateHost VarChar(100) = '{DbQuery.FormatForCondition(dbUpdateInfo.Host)}';");
query.Add("Merge");
query.Add($"Into {SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility)} uFty");
query.Add("Using");
query.Add("(");
query.Add("Select dPrv.Id ProvinceId, dFty.ProvinceCode, dFty.FacilityId, dFty.FacilityName, dFty.Address1, dFty.Address2, dFty.City, dFty.PostalCode, dFty.Email, dFty.Telephone");
query.Add("Select dPrv.Id ProvinceId, dFty.ProvinceCode, dFty.UsgaFacilityId, dFty.FacilityName, dFty.Address1, dFty.Address2, dFty.City, dFty.PostalCode, dFty.Email, dFty.Telephone");
query.Add("From");
query.Add("(");
query.Add("Select '' ProvinceCode, '' FacilityId, '' FacilityName, '' Address1, '' Address2, '' City, '' PostalCode, '' Email, '' Telephone");
query.Add("Select '' ProvinceCode, 0 UsgaFacilityId, '' FacilityName, '' Address1, '' Address2, '' City, '' PostalCode, '' Email, '' Telephone");
foreach (UsgaFacilityData facility in facilitiesToUpdate.ExtractRange(0, batchSize))
query.Add($"Union Select '{DbQuery.FormatForCondition(facility.ProvinceCode)}', {SysId.ToString(facility.FacilityId)}, " +
query.Add($"Union Select '{DbQuery.FormatForCondition(facility.ProvinceCode)}', {SysId.ToString(facility.UsgaFacilityId)}, " +
(facility.FacilityName != null ? $"'{DbQuery.FormatForCondition(facility.FacilityName)}'" : "Null") + "," +
(facility.Address1 != null ? $"'{DbQuery.FormatForCondition(facility.Address1)}'" : "Null") + "," +
(facility.Address2 != null ? $"'{DbQuery.FormatForCondition(facility.Address2)}'" : "Null") + "," +
@@ -318,7 +318,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
query.Add(") dFty");
query.Add($"Inner Join {SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince)} dPrv On dPrv.ProvinceCode=dFty.ProvinceCode");
query.Add(") dFty");
query.Add("On uFty.ProvinceId=dFty.ProvinceId And uFty.FacilityId=dFty.FacilityId");
query.Add("On uFty.ProvinceId=dFty.ProvinceId And uFty.UsgaFacilityId=dFty.UsgaFacilityId");
query.Add("When Matched And ((dFty.FacilityName Is Not Null And uFty.FacilityName!=dFty.FacilityName) Or (dFty.Address1 Is Not Null And uFty.Address1!=dFty.Address1) Or (dFty.Address2 Is Not Null And uFty.Address2!=dFty.Address2) Or (dFty.City Is Not Null And uFty.City!=dFty.City) Or (dFty.PostalCode Is Not Null And uFty.PostalCode!=dFty.PostalCode) Or (dFty.Email Is Not Null And uFty.Email!=dFty.Email) Or (dFty.Telephone Is Not Null And uFty.Telephone!=dFty.Telephone) Or uFty.Status!=@statusActive)");
query.Add("Then Update Set");
query.Add(" FacilityName=Coalesce(dFty.FacilityName,uFty.FacilityName),");
@@ -333,8 +333,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
query.Add(" UpdateBy=@updateBy,");
query.Add(" UpdateHost=@updateHost");
query.Add("When Not Matched And Len(IsNull(dFty.FacilityName,''))>0");
query.Add("Then Insert (ProvinceId,FacilityId,FacilityName,Address1,Address2,City,PostalCode,Email,Telephone,Notes,Flags,Status,CreateOn,CreateBy,CreateHost,UpdateOn,UpdateBy,UpdateHost)");
query.Add($"Values (dFty.ProvinceId,dFty.FacilityId,dFty.FacilityName,Coalesce(dFty.Address1,''),Coalesce(dFty.Address2,''),Coalesce(dFty.City,''),Coalesce(dFty.PostalCode,''),Coalesce(dFty.Email,''),Coalesce(dFty.Telephone,''),'',0,@statusActive,@updateOn,@updateBy,@updateHost,@updateOn,@updateBy,@updateHost)");
query.Add("Then Insert (ProvinceId,UsgaFacilityId,FacilityName,Address1,Address2,City,PostalCode,Email,Telephone,Notes,Flags,Status,CreateOn,CreateBy,CreateHost,UpdateOn,UpdateBy,UpdateHost)");
query.Add($"Values (dFty.ProvinceId,dFty.UsgaFacilityId,dFty.FacilityName,Coalesce(dFty.Address1,''),Coalesce(dFty.Address2,''),Coalesce(dFty.City,''),Coalesce(dFty.PostalCode,''),Coalesce(dFty.Email,''),Coalesce(dFty.Telephone,''),'',0,@statusActive,@updateOn,@updateBy,@updateHost,@updateOn,@updateBy,@updateHost)");
query.Add(";");
//SaLogger.Info($"{SysUtil.Fn} Bulk USGA Facility update query:\n\t{query.Concat("\n\t")}");
@@ -396,8 +396,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
break;
//-------------------------------------------------------
case SaxGolfUsgaFacility.Column.FacilityId:
SetUsgaFacilityColDfn(columnDfn, "Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityId, ColumnAlignment.Center, DataValue.DataType.Long);
case SaxGolfUsgaFacility.Column.UsgaFacilityId:
SetUsgaFacilityColDfn(columnDfn, "USGA Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_UsgaFacilityId, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SaxGolfUsgaFacility.Column.FacilityName:
@@ -613,8 +613,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
bool hasProvinceCols = (columns.HasId(SaxGolfUsgaFacility.Column.Province_Name));
if (columns.HasId(SaxGolfUsgaFacility.Column.ProvinceId) || hasProvinceCols)
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasUsgaFacility));
if (columns.HasId(SaxGolfUsgaFacility.Column.FacilityId))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityId, aliasUsgaFacility));
if (columns.HasId(SaxGolfUsgaFacility.Column.UsgaFacilityId))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_UsgaFacilityId, aliasUsgaFacility));
if (columns.HasId(SaxGolfUsgaFacility.Column.FacilityName))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName, aliasUsgaFacility));
// Common properties.
@@ -30,7 +30,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
new StringPair("Id",SysId.ToString(usgaMarker.Id)),
new StringPair("CourseId",SysId.ToString(usgaMarker.CourseId)),
new StringPair("MarkerId",SysId.ToString(usgaMarker.MarkerId)),
new StringPair("UsgaMarkerId",SysId.ToString(usgaMarker.UsgaMarkerId)),
new StringPair("Caption",usgaMarker.Caption),
new StringPair("Status",usgaMarker.StatusCode)
};
@@ -214,7 +214,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
dbUsgaMarker._Id = SysId.ToLong(usgaMarker.Id);
dbUsgaMarker._CourseId = SysId.ToInt(usgaMarker.CourseId);
dbUsgaMarker._MarkerId = SysId.ToInt(usgaMarker.MarkerId);
dbUsgaMarker._UsgaMarkerId = SysId.ToInt(usgaMarker.UsgaMarkerId);
dbUsgaMarker._Caption = usgaMarker.Caption;
dbUsgaMarker._Holes = usgaMarker.Holes;
dbUsgaMarker._HolesCaption = usgaMarker.HolesCaption;
@@ -243,7 +243,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
//usgaMarker.Id = new SysId(dbUsgaMarker._Id);
usgaMarker.CourseId = new SysId(dbUsgaMarker._CourseId);
usgaMarker.MarkerId = new SysId(dbUsgaMarker._MarkerId);
usgaMarker.UsgaMarkerId = new SysId(dbUsgaMarker._UsgaMarkerId);
usgaMarker.Caption = dbUsgaMarker._Caption;
usgaMarker.Holes = dbUsgaMarker._Holes;
usgaMarker.HolesCaption = dbUsgaMarker._HolesCaption;
@@ -281,12 +281,12 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
// Validate marker properties.
// Course and Marker Codes are mandatory, other values only validated if non-null.
if (!SysId.IsValid(marker.CourseId)) return SetErrorState("Course Id must be supplied");
// 9 hole markers missing Id: if (!SysId.IsValid(marker.MarkerId)) return SetErrorState("Marker Id must be supplied");
if (!SysId.IsValid(marker.UsgaCourseId)) return SetErrorState("USGA Course Id must be supplied");
// 9 hole markers missing Id: if (!SysId.IsValid(marker.UsgaMarkerId)) return SetErrorState("USGA Marker Id must be supplied");
if (marker.Caption != null && !IsValidValue(marker.HolesCaption, "caption", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_HolesCaption))) return false;
if (marker.Holes < 1) return SetErrorState("Holes must be supplied");
if (marker.HolesCaption != null && !IsValidValue(marker.HolesCaption, "full name", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_HolesCaption))) return false;
if (marker.Tee != null && !IsValidValue(marker.Tee, "tee", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Tee))) return false;
if (marker.HolesCaption != null && !IsValidValue(marker.HolesCaption, "holes caption", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_HolesCaption), true)) return false;
if (marker.Tee != null && !IsValidValue(marker.Tee, "tee", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Tee), true)) return false;
if (marker.Gender != null && !IsValidValue(marker.Gender, "gender", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Gender))) return false;
if (marker.SlopeRating < 1) return SetErrorState("Slope rating must be supplied");
if (marker.Par < 1) return SetErrorState("Par must be supplied");
@@ -299,19 +299,19 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
List<String> query = new List<string>();
query.Add($"Declare @statusActive VarChar(3) = '{SacsSystem.GetStatusCode(SaxGolfUsgaMarker.DefaultStatus)}';");
query.Add($"Declare @updateOn DateTime = GetUtcDate();");
query.Add($"Declare @updateOn DateTime = GetDate();");
query.Add($"Declare @updateBy Int = {SysId.ToLong(dbUpdateInfo.UserId)};");
query.Add($"Declare @updateHost VarChar(100) = '{DbQuery.FormatForCondition(dbUpdateInfo.Host)}';");
query.Add("Merge");
query.Add($"Into {SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaMarker)} uMkr");
query.Add("Using");
query.Add("(");
query.Add("Select dCrs.Id CourseId, dMkr.MarkerId, dMkr.Caption, dMkr.Holes, dMkr.HolesCaption, dMkr.Tee, dMkr.Gender, dMkr.SlopeRating, dMkr.Par, dMkr.CourseRating, dMkr.BogeyRating, dMkr.Length");
query.Add("Select uCrs.Id CourseId, dMkr.UsgaCourseId, dMkr.UsgaMarkerId, dMkr.Caption, dMkr.Holes, dMkr.HolesCaption, dMkr.Tee, dMkr.Gender, dMkr.SlopeRating, dMkr.Par, dMkr.CourseRating, dMkr.BogeyRating, dMkr.Length");
query.Add("From");
query.Add("(");
query.Add("Select 0 CourseId, 0 MarkerId, '' Caption, 0 Holes, '' HolesCaption, '' Tee, '' Gender, 0 SlopeRating, 0 Par, 0 CourseRating, 0 BogeyRating, 0 Length");
query.Add("Select 0 UsgaCourseId, 0 UsgaMarkerId, '' Caption, 0 Holes, '' HolesCaption, '' Tee, '' Gender, 0 SlopeRating, 0 Par, 0 CourseRating, 0 BogeyRating, 0 Length");
foreach (UsgaMarkerData marker in markersToUpdate.ExtractRange(0, batchSize))
query.Add($"Union Select {marker.CourseId},{StringUtil.OnBlank(SysId.ToString(marker.MarkerId),"0")}," +
query.Add($"Union Select {marker.UsgaCourseId},{StringUtil.OnBlank(SysId.ToString(marker.UsgaMarkerId),"0")}," +
(marker.Caption != null ? $"'{DbQuery.FormatForCondition(marker.Caption)}'" : "Null") + "," +
$"{marker.Holes}," +
(marker.HolesCaption != null ? $"'{DbQuery.FormatForCondition(marker.HolesCaption)}'" : "Null") + "," +
@@ -323,9 +323,12 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
(marker.BogeyRating > 0 ? $"{marker.BogeyRating}" : "Null") + "," +
(marker.Length > 0 ? $"{marker.Length}" : "Null"));
query.Add(") dMkr");
query.Add($"Inner Join {SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCourse)} dCrs On dCrs.CourseId=dMkr.CourseId");
query.Add($"Inner Join {SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCourse)} uCrs On uCrs.UsgaCourseId=dMkr.UsgaCourseId");
query.Add(") dMkr");
query.Add("On uMkr.CourseId=dMkr.CourseId And uMkr.MarkerId=dMkr.MarkerId");
// Want to use UsgaMarkerId to identify the Marker alongside the CourseId, but only 18 hole markers have an Id value.
// Use alternative identifiers for now: Holes Caption, Tee and Gender.
// Was: query.Add("On uMkr.CourseId=dMkr.CourseId And uMkr.UsgaMarkerId=dMkr.UsgaMarkerId");
query.Add("On uMkr.CourseId=dMkr.CourseId And uMkr.HolesCaption=dMkr.HolesCaption And uMkr.Tee=dMkr.Tee And uMkr.Gender=Coalesce(dMkr.Gender,'')");
query.Add("When Matched And ((dMkr.Caption Is Not Null And uMkr.Caption!=dMkr.Caption) Or (uMkr.Holes!=dMkr.Holes) Or (dMkr.HolesCaption Is Not Null And uMkr.HolesCaption!=dMkr.HolesCaption) Or (dMkr.Tee Is Not Null And uMkr.Tee!=dMkr.Tee) Or (dMkr.Gender Is Not Null And uMkr.Gender!=dMkr.Gender) Or (uMkr.SlopeRating!=dMkr.SlopeRating) Or (uMkr.Par!=dMkr.Par) Or (uMkr.CourseRating!=dMkr.CourseRating) Or (dMkr.BogeyRating Is Not Null And uMkr.BogeyRating!=dMkr.BogeyRating) Or (dMkr.Length Is Not Null And uMkr.Length!=dMkr.Length) Or uMkr.Status!=@statusActive)");
query.Add("Then Update Set");
query.Add(" Caption=Coalesce(dMkr.Caption,uMkr.Caption),");
@@ -343,8 +346,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
query.Add(" UpdateBy=@updateBy,");
query.Add(" UpdateHost=@updateHost");
query.Add("When Not Matched And Len(Coalesce(dMkr.Caption,''))>0 And dMkr.Holes>0 And dMkr.SlopeRating>0 And dMkr.Par>0 And dMkr.CourseRating>0");
query.Add("Then Insert (CourseId,MarkerId,Caption,Holes,HolesCaption,Tee,Gender,SlopeRating,Par,CourseRating,BogeyRating,Length,Notes,Flags,Status,CreateOn,CreateBy,CreateHost,UpdateOn,UpdateBy,UpdateHost)");
query.Add($"Values (dMkr.CourseId,dMkr.MarkerId,Coalesce(dMkr.Caption,''),dMkr.Holes,Coalesce(dMkr.HolesCaption,''),Coalesce(dMkr.Tee,''),Coalesce(dMkr.Gender,''),Coalesce(dMkr.SlopeRating,''),Coalesce(dMkr.Par,''),Coalesce(dMkr.CourseRating,''),Coalesce(dMkr.BogeyRating,''),Coalesce(dMkr.Length,''),'',0,@statusActive,@updateOn,@updateBy,@updateHost,@updateOn,@updateBy,@updateHost)");
query.Add("Then Insert (CourseId,UsgaMarkerId,Caption,Holes,HolesCaption,Tee,Gender,SlopeRating,Par,CourseRating,BogeyRating,Length,Notes,Flags,Status,CreateOn,CreateBy,CreateHost,UpdateOn,UpdateBy,UpdateHost)");
query.Add($"Values (dMkr.CourseId,dMkr.UsgaMarkerId,Coalesce(dMkr.Caption,''),dMkr.Holes,Coalesce(dMkr.HolesCaption,''),Coalesce(dMkr.Tee,''),Coalesce(dMkr.Gender,''),Coalesce(dMkr.SlopeRating,''),Coalesce(dMkr.Par,''),Coalesce(dMkr.CourseRating,''),Coalesce(dMkr.BogeyRating,''),Coalesce(dMkr.Length,''),'',0,@statusActive,@updateOn,@updateBy,@updateHost,@updateOn,@updateBy,@updateHost)");
query.Add(";");
//SaLogger.Info($"{SysUtil.Fn} Bulk USGA Marker update query:\n\t{query.Concat("\n\t")}");
@@ -406,8 +409,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
break;
//-------------------------------------------------------
case SaxGolfUsgaMarker.Column.MarkerId:
SetUsgaMarkerColDfn(columnDfn, "Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_MarkerId, ColumnAlignment.Center, DataValue.DataType.Long);
case SaxGolfUsgaMarker.Column.UsgaMarkerId:
SetUsgaMarkerColDfn(columnDfn, "Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_UsgaMarkerId, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.ReadOnly = true;
break;
case SaxGolfUsgaMarker.Column.Caption:
@@ -649,8 +652,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
bool hasCourseCols = (columns.HasId(SaxGolfUsgaMarker.Column.Course_Name));
if (columns.HasId(SaxGolfUsgaMarker.Column.CourseId) || hasCourseCols)
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_CourseId, aliasUsgaMarker));
if (columns.HasId(SaxGolfUsgaMarker.Column.MarkerId))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_MarkerId, aliasUsgaMarker));
if (columns.HasId(SaxGolfUsgaMarker.Column.UsgaMarkerId))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_UsgaMarkerId, aliasUsgaMarker));
if (columns.HasId(SaxGolfUsgaMarker.Column.Caption))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Caption, aliasUsgaMarker));
if (columns.HasId(SaxGolfUsgaMarker.Column.Holes))
@@ -217,6 +217,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
dbUsgaProvince._ProvinceCode = usgaProvince.ProvinceCode;
dbUsgaProvince._EntProvinceCode = usgaProvince.EntProvinceCode;
dbUsgaProvince._ProvinceName = usgaProvince.ProvinceName;
dbUsgaProvince._CoursesUpdateAt = usgaProvince.CoursesUpdateAt;
// Common.
dbUsgaProvince._Notes = usgaProvince.Notes;
dbUsgaProvince._Status = SacsSystem.GetStatusCode(usgaProvince.Status);
@@ -238,6 +239,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
usgaProvince.ProvinceCode = dbUsgaProvince._ProvinceCode;
usgaProvince.EntProvinceCode = dbUsgaProvince._EntProvinceCode;
usgaProvince.ProvinceName = dbUsgaProvince._ProvinceName;
usgaProvince.CoursesUpdateAt = dbUsgaProvince._CoursesUpdateAt;
// Common.
usgaProvince.Notes = dbUsgaProvince._Notes;
usgaProvince.Status = SacsSystem.GetStatusForCode(dbUsgaProvince._Status);
@@ -277,7 +279,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
{
List<String> query = new List<string>();
query.Add($"Declare @statusActive VarChar(3) = '{SacsSystem.GetStatusCode(SaxGolfUsgaProvince.DefaultStatus)}';");
query.Add($"Declare @updateOn DateTime = GetUtcDate();");
query.Add($"Declare @updateOn DateTime = GetDate();");
query.Add($"Declare @updateBy Int = {SysId.ToLong(dbUpdateInfo.UserId)};");
query.Add($"Declare @updateHost VarChar(100) = '{DbQuery.FormatForCondition(dbUpdateInfo.Host)}';");
query.Add("Merge");
@@ -331,6 +333,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
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 static readonly String colProvince_Markers_Percent = "Prv_Mkr_Perc";
private void SetUsgaProvinceColDfn
(ColumnDfn col, String caption, int width, SaxDbDfn_Reference.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
@@ -378,6 +381,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
SetUsgaProvinceColDfn(columnDfn, "Name", 120, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceName, ColumnAlignment.Center);
columnDfn.ReadOnly = true;
break;
case SaxGolfUsgaProvince.Column.CoursesUpdateAt_Date:
SetUsgaProvinceColDfn(columnDfn, "Courses updated", 120, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CoursesUpdateAt, ColumnAlignment.Center, DataValue.DataType.Date);
columnDfn.ReadOnly = true;
break;
//-----------------------------------------------------------
// Derived properties.
@@ -398,6 +405,11 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
columnDfn.DataName = colProvince_Course_Active_Count;
break;
case SaxGolfUsgaProvince.Column.MarkerPercent:
SetUsgaCountryColDfn(columnDfn, "Markers %", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colProvince_Markers_Percent;
break;
//-----------------------------------------------------------
// Common properties.
case SaxGolfUsgaProvince.Column.Notes:
@@ -616,6 +628,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceCode, aliasUsgaProvince));
if (columns.HasId(SaxGolfUsgaProvince.Column.ProvinceName))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceName, aliasUsgaProvince));
if (columns.HasId(SaxGolfUsgaProvince.Column.CoursesUpdateAt_Date))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CoursesUpdateAt, aliasUsgaProvince));
// Common properties.
if (columns.HasId(SaxGolfUsgaProvince.Column.Notes))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Notes, aliasUsgaProvince));
@@ -705,6 +719,36 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
query.Columns.Add("(" + queryFacility.BuildQuery() + ")", colProvince_Course_Active_Count);
}
//---------------------------------------------------------------------
// Marker population %.
if (columns.HasId(SaxGolfUsgaProvince.Column.MarkerPercent))
{
// Sub query to count facilities & privinces with markers, and work out the percent with markers.
String alias_Facility = "prv";
String alias_Course = "crs";
String alias_Marker = "fty";
String table_Facility = $"{SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility)} {alias_Facility}";
String table_Course = $"{SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCourse)} {alias_Course}";
String table_Marker = $"{SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaMarker)} {alias_Marker}";
String col_Province_Id = SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaProvince);
String col_Facility_Id = SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Id, alias_Facility);
String col_Facility_ProvinceId = SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, alias_Facility);
String col_Course_Id = SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Id, alias_Course);
String col_Course_FacilityId = SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FacilityId, alias_Course);
String col_Marker_CourseId = SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_CourseId, alias_Marker);
String name_CourseCount = "CourseCount";
String name_CoursesWithMarkers = "CoursesWithMarkers";
List<String> subQuery = new List<String>();
subQuery.Add($"Select Convert (decimal(9,2), Case When {name_CourseCount} > 0 Then 100.0 * (1.0 * {name_CoursesWithMarkers} / {name_CourseCount}) Else 0 End)");
subQuery.Add($"From");
subQuery.Add($"(");
subQuery.Add($"Select");
subQuery.Add($"{name_CourseCount} = (select Count(*) From {table_Course} Where {col_Course_FacilityId} In (Select {col_Facility_Id} From {table_Facility} Where {col_Facility_ProvinceId}={col_Province_Id})),");
subQuery.Add($"{name_CoursesWithMarkers} = (select Count(*) From {table_Course} Where {col_Course_FacilityId} In (Select {col_Facility_Id} From {table_Facility} Where {col_Facility_ProvinceId}={col_Province_Id}) And {col_Course_Id} in (Select {col_Marker_CourseId} from {table_Marker}))");
subQuery.Add($") dat");
query.Columns.Add($"({subQuery.Concat(" ")})", colProvince_Markers_Percent);
}
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetUsgaProvinceQueryFilter(prm));