1.2.11.4
This commit is contained in:
@@ -60,7 +60,7 @@ namespace Saxonite.Net.Standard.Dbas.App
|
||||
OutputDirectory = directory
|
||||
};
|
||||
// Schema - Tables.
|
||||
config.Schema.Tables_Excluded.AddRange(new String[] { });
|
||||
config.Schema.Tables_Excluded.UnionWith(new String[] { });
|
||||
// Schema - Columns.
|
||||
config.Schema.InsertOnlyColumns.Add(".*", "CreateOn,CreateBy,CreateHost");
|
||||
config.Schema.InsertOnlyColumns.Add("SomeOldTable", "Code");
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Mgr;
|
||||
using Saxonite.Net.Standard.Base.Mgr.Reference;
|
||||
using Saxonite.Net.Standard.Base.Mgr.Support;
|
||||
using Saxonite.Net.Standard.Dbas.Mgr;
|
||||
using Saxonite.Net.Standard.Dbas.Mgr.Reference;
|
||||
using Saxonite.Net.Standard.Dbas.Mgr.Support;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -37,6 +39,10 @@ namespace Saxonite.Net.Standard.Dbas.App
|
||||
{
|
||||
return new SaxItemDataMgr_Dbas(sessionContext, internals);
|
||||
}
|
||||
public override SaxReferenceGolfMgr CreateReferenceGolfMgr(SaxSessionContext sessionContext, SaxInternals internals)
|
||||
{
|
||||
return new SaxReferenceGolfMgr_Dbas(sessionContext, internals);
|
||||
}
|
||||
public override SaxSupportMgr CreateSupportMgr(SaxSessionContext sessionContext, SaxInternals internals)
|
||||
{
|
||||
return new SaxSupportMgr_Dbas(sessionContext, internals);
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Saxonite.Net.Standard.Base.Bus.Reference;
|
||||
using System;
|
||||
|
||||
namespace Saxonite.Net.Standard.Dbas.Bus.Reference
|
||||
{
|
||||
//=======================================================================
|
||||
public class SaxGolfUsgaCountry_Dbas : SaxGolfUsgaCountry
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private ISacsDatabase database;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SaxGolfUsgaCountry_Dbas(ISacsDatabase database, SysId id, UInt16 flags) :
|
||||
base(id)
|
||||
{
|
||||
this.database = database;
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Associated data.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Saxonite.Net.Standard.Base.Bus.Reference;
|
||||
using System;
|
||||
|
||||
namespace Saxonite.Net.Standard.Dbas.Bus.Reference
|
||||
{
|
||||
//=======================================================================
|
||||
public class SaxGolfUsgaCourse_Dbas : SaxGolfUsgaCourse
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private ISacsDatabase database;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SaxGolfUsgaCourse_Dbas(ISacsDatabase database, SysId id, SysId facilityId, UInt16 flags) :
|
||||
base(id, facilityId)
|
||||
{
|
||||
this.database = database;
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Associated data.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Saxonite.Net.Standard.Base.Bus.Reference;
|
||||
using System;
|
||||
|
||||
namespace Saxonite.Net.Standard.Dbas.Bus.Reference
|
||||
{
|
||||
//=======================================================================
|
||||
public class SaxGolfUsgaFacility_Dbas : SaxGolfUsgaFacility
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private ISacsDatabase database;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SaxGolfUsgaFacility_Dbas(ISacsDatabase database, SysId id, SysId provinceId, UInt16 flags) :
|
||||
base(id, provinceId)
|
||||
{
|
||||
this.database = database;
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Associated data.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Saxonite.Net.Standard.Base.Bus.Reference;
|
||||
using System;
|
||||
|
||||
namespace Saxonite.Net.Standard.Dbas.Bus.Reference
|
||||
{
|
||||
//=======================================================================
|
||||
public class SaxGolfUsgaMarker_Dbas : SaxGolfUsgaMarker
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private ISacsDatabase database;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SaxGolfUsgaMarker_Dbas(ISacsDatabase database, SysId id, SysId courseId, UInt16 flags) :
|
||||
base(id, courseId)
|
||||
{
|
||||
this.database = database;
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Associated data.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Saxonite.Net.Standard.Base.Bus.Reference;
|
||||
using System;
|
||||
|
||||
namespace Saxonite.Net.Standard.Dbas.Bus.Reference
|
||||
{
|
||||
//=======================================================================
|
||||
public class SaxGolfUsgaProvince_Dbas : SaxGolfUsgaProvince
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private ISacsDatabase database;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SaxGolfUsgaProvince_Dbas(ISacsDatabase database, SysId id, SysId countryId, UInt16 flags) :
|
||||
base(id, countryId)
|
||||
{
|
||||
this.database = database;
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Associated data.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Core
|
||||
{
|
||||
|
||||
@@ -0,0 +1,218 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Saxonite.Net.Standard.Dbas.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
{
|
||||
internal class Golf_UsgaCountry_Db : SaxDbDataItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Column definitions.
|
||||
public class ColumnsData
|
||||
{
|
||||
public ColumnDataInt64 _Id { get; } = new ColumnDataInt64("Id", true);
|
||||
public ColumnDataString _CountryCode { get; } = new ColumnDataString("CountryCode");
|
||||
public ColumnDataString _CountryName { get; } = new ColumnDataString("CountryName");
|
||||
public ColumnDataString _EntCountryCode { get; } = new ColumnDataString("EntCountryCode");
|
||||
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
|
||||
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
|
||||
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
|
||||
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
|
||||
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
|
||||
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
|
||||
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
|
||||
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
|
||||
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
protected static List<String> fields { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
"CountryCode",
|
||||
"CountryName",
|
||||
"EntCountryCode",
|
||||
"Notes",
|
||||
"Flags",
|
||||
"Status",
|
||||
"CreateOn",
|
||||
"CreateBy",
|
||||
"CreateHost",
|
||||
"UpdateOn",
|
||||
"UpdateBy",
|
||||
"UpdateHost",
|
||||
};
|
||||
protected static List<String> fieldsId { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
};
|
||||
protected static List<String> fieldsPrimary { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
};
|
||||
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
|
||||
{
|
||||
"CreateOn",
|
||||
"CreateBy",
|
||||
"CreateHost",
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
internal Golf_UsgaCountry_Db (IDatabaseInfo dbInfo) : base(dbInfo)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public override String SchemaName { get; } = "golf";
|
||||
public override String TableName { get; } = "UsgaCountry";
|
||||
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
|
||||
public static List<String> Fields { get { return new List<String>(fields); } }
|
||||
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
|
||||
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
|
||||
// Columns.
|
||||
public ColumnsData Cols { get; } = new ColumnsData();
|
||||
public Int64 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
|
||||
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 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; } }
|
||||
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
|
||||
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
|
||||
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
|
||||
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
|
||||
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
|
||||
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
|
||||
// Existing columns - confirmed on database if table exists.
|
||||
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
|
||||
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Population.
|
||||
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
|
||||
{
|
||||
dbCommand.CommandText =
|
||||
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
|
||||
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
|
||||
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
|
||||
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
|
||||
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
|
||||
{
|
||||
dbDataReader.Read();
|
||||
PopulateFrom(dbDataReader);
|
||||
}
|
||||
}
|
||||
public override void PopulateFrom (DbDataReader dbDataReader)
|
||||
{
|
||||
_Id = GetFieldInt64(dbDataReader, "Id", _Id);
|
||||
_CountryCode = GetFieldString(dbDataReader, "CountryCode", _CountryCode);
|
||||
_CountryName = GetFieldString(dbDataReader, "CountryName", _CountryName);
|
||||
_EntCountryCode = GetFieldString(dbDataReader, "EntCountryCode", _EntCountryCode);
|
||||
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
|
||||
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
|
||||
_Status = GetFieldString(dbDataReader, "Status", _Status);
|
||||
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
|
||||
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
|
||||
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
|
||||
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
|
||||
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
|
||||
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert command.
|
||||
public override bool ExecuteInsertCommand (DbCommand dbCommand)
|
||||
{
|
||||
List<String> columnNames = ExistingColumnNamesNonId;
|
||||
// Avoid insert if Identity field is already valid.
|
||||
if (_Id != 0) throw new Exception("Invalid for Insert - item already has a valid Id");
|
||||
// Construct query.
|
||||
String query =
|
||||
"INSERT INTO " + TableNameFmt + " " +
|
||||
"("+columnNames.Concat(",","[","]")+") ";
|
||||
query += "Output Inserted.Id ";
|
||||
if (dbCommand is SqlCommand)
|
||||
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
|
||||
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
|
||||
dbCommand.CommandText = query;
|
||||
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
|
||||
// Populate parameters.
|
||||
dbCommand.Parameters.Clear();
|
||||
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("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
|
||||
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
|
||||
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
|
||||
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
|
||||
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
|
||||
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
|
||||
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
|
||||
// Execute insert command.
|
||||
bool commandSuccess = false;
|
||||
int executeNonQuery = dbCommand.ExecuteNonQuery();
|
||||
if (executeNonQuery == 1)
|
||||
{
|
||||
dbCommand.CommandText = "SELECT Max(Id) FROM " + TableNameFmt + ";";
|
||||
_Id = Convert.ToInt64(dbCommand.ExecuteScalar());
|
||||
commandSuccess = (_Id > 0);
|
||||
}
|
||||
return commandSuccess;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update command.
|
||||
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
|
||||
{
|
||||
// Avoid update if Identity field isn't valid.
|
||||
if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id");
|
||||
// Columns to update.
|
||||
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
|
||||
// Construct query.
|
||||
String query = "UPDATE " + TableNameFmt + " SET ";
|
||||
if (dbCommand is SqlCommand)
|
||||
{
|
||||
query += StringPairList.CreateFrom(columnNames.Bracket("[","]"),columnNames).Concat("=@").Concat(", ") + " ";
|
||||
query += "WHERE Id=@Id;";
|
||||
}
|
||||
else
|
||||
{
|
||||
query += columnNames.Concat(", ", "", "=?") + " ";
|
||||
query += "WHERE Id=?;";
|
||||
}
|
||||
dbCommand.CommandText = query;
|
||||
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
|
||||
// Populate parameters.
|
||||
dbCommand.Parameters.Clear();
|
||||
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("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
|
||||
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
|
||||
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
|
||||
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
|
||||
AddCommandParameter(dbCommand, "@Id", _Id);
|
||||
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
|
||||
return (executeNonQueryResult == 1);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,266 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Saxonite.Net.Standard.Dbas.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
{
|
||||
internal class Golf_UsgaCourse_Db : SaxDbDataItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Column definitions.
|
||||
public class ColumnsData
|
||||
{
|
||||
public ColumnDataInt64 _Id { get; } = new ColumnDataInt64("Id", true);
|
||||
public ColumnDataInt64 _FacilityId { get; } = new ColumnDataInt64("FacilityId");
|
||||
public ColumnDataInt64 _CourseId { get; } = new ColumnDataInt64("CourseId");
|
||||
public ColumnDataInt64 _LegacyCrpCourseId { get; } = new ColumnDataInt64("LegacyCrpCourseId");
|
||||
public ColumnDataString _Caption { get; } = new ColumnDataString("Caption");
|
||||
public ColumnDataString _CourseName { get; } = new ColumnDataString("CourseName");
|
||||
public ColumnDataString _FullName { get; } = new ColumnDataString("FullName");
|
||||
public ColumnDataString _Address1 { get; } = new ColumnDataString("Address1");
|
||||
public ColumnDataString _Address2 { get; } = new ColumnDataString("Address2");
|
||||
public ColumnDataString _City { get; } = new ColumnDataString("City");
|
||||
public ColumnDataString _Email { get; } = new ColumnDataString("Email");
|
||||
public ColumnDataString _Telephone { get; } = new ColumnDataString("Telephone");
|
||||
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
|
||||
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
|
||||
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
|
||||
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
|
||||
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
|
||||
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
|
||||
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
|
||||
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
|
||||
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
protected static List<String> fields { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
"FacilityId",
|
||||
"CourseId",
|
||||
"LegacyCrpCourseId",
|
||||
"Caption",
|
||||
"CourseName",
|
||||
"FullName",
|
||||
"Address1",
|
||||
"Address2",
|
||||
"City",
|
||||
"Email",
|
||||
"Telephone",
|
||||
"Notes",
|
||||
"Flags",
|
||||
"Status",
|
||||
"CreateOn",
|
||||
"CreateBy",
|
||||
"CreateHost",
|
||||
"UpdateOn",
|
||||
"UpdateBy",
|
||||
"UpdateHost",
|
||||
};
|
||||
protected static List<String> fieldsId { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
};
|
||||
protected static List<String> fieldsPrimary { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
};
|
||||
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
|
||||
{
|
||||
"CreateOn",
|
||||
"CreateBy",
|
||||
"CreateHost",
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
internal Golf_UsgaCourse_Db (IDatabaseInfo dbInfo) : base(dbInfo)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public override String SchemaName { get; } = "golf";
|
||||
public override String TableName { get; } = "UsgaCourse";
|
||||
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
|
||||
public static List<String> Fields { get { return new List<String>(fields); } }
|
||||
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
|
||||
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
|
||||
// Columns.
|
||||
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 _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; } }
|
||||
public String _FullName { get { return Cols._FullName.Value; } set { Cols._FullName.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; } }
|
||||
public String _City { get { return Cols._City.Value; } set { Cols._City.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 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; } }
|
||||
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
|
||||
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
|
||||
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
|
||||
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
|
||||
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
|
||||
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
|
||||
// Existing columns - confirmed on database if table exists.
|
||||
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
|
||||
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Population.
|
||||
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
|
||||
{
|
||||
dbCommand.CommandText =
|
||||
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
|
||||
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
|
||||
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
|
||||
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
|
||||
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
|
||||
{
|
||||
dbDataReader.Read();
|
||||
PopulateFrom(dbDataReader);
|
||||
}
|
||||
}
|
||||
public override void PopulateFrom (DbDataReader dbDataReader)
|
||||
{
|
||||
_Id = GetFieldInt64(dbDataReader, "Id", _Id);
|
||||
_FacilityId = GetFieldInt64(dbDataReader, "FacilityId", _FacilityId);
|
||||
_CourseId = GetFieldInt64(dbDataReader, "CourseId", _CourseId);
|
||||
_LegacyCrpCourseId = GetFieldInt64(dbDataReader, "LegacyCrpCourseId", _LegacyCrpCourseId);
|
||||
_Caption = GetFieldString(dbDataReader, "Caption", _Caption);
|
||||
_CourseName = GetFieldString(dbDataReader, "CourseName", _CourseName);
|
||||
_FullName = GetFieldString(dbDataReader, "FullName", _FullName);
|
||||
_Address1 = GetFieldString(dbDataReader, "Address1", _Address1);
|
||||
_Address2 = GetFieldString(dbDataReader, "Address2", _Address2);
|
||||
_City = GetFieldString(dbDataReader, "City", _City);
|
||||
_Email = GetFieldString(dbDataReader, "Email", _Email);
|
||||
_Telephone = GetFieldString(dbDataReader, "Telephone", _Telephone);
|
||||
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
|
||||
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
|
||||
_Status = GetFieldString(dbDataReader, "Status", _Status);
|
||||
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
|
||||
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
|
||||
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
|
||||
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
|
||||
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
|
||||
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert command.
|
||||
public override bool ExecuteInsertCommand (DbCommand dbCommand)
|
||||
{
|
||||
List<String> columnNames = ExistingColumnNamesNonId;
|
||||
// Avoid insert if Identity field is already valid.
|
||||
if (_Id != 0) throw new Exception("Invalid for Insert - item already has a valid Id");
|
||||
// Construct query.
|
||||
String query =
|
||||
"INSERT INTO " + TableNameFmt + " " +
|
||||
"("+columnNames.Concat(",","[","]")+") ";
|
||||
query += "Output Inserted.Id ";
|
||||
if (dbCommand is SqlCommand)
|
||||
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
|
||||
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
|
||||
dbCommand.CommandText = query;
|
||||
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
|
||||
// Populate parameters.
|
||||
dbCommand.Parameters.Clear();
|
||||
if (columnNames.ContainsCI("FacilityId")) AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
|
||||
if (columnNames.ContainsCI("CourseId")) AddCommandParameter(dbCommand, "@CourseId", _CourseId);
|
||||
if (columnNames.ContainsCI("LegacyCrpCourseId")) AddCommandParameter(dbCommand, "@LegacyCrpCourseId", _LegacyCrpCourseId);
|
||||
if (columnNames.ContainsCI("Caption")) AddCommandParameter(dbCommand, "@Caption", _Caption);
|
||||
if (columnNames.ContainsCI("CourseName")) AddCommandParameter(dbCommand, "@CourseName", _CourseName);
|
||||
if (columnNames.ContainsCI("FullName")) AddCommandParameter(dbCommand, "@FullName", _FullName);
|
||||
if (columnNames.ContainsCI("Address1")) AddCommandParameter(dbCommand, "@Address1", _Address1);
|
||||
if (columnNames.ContainsCI("Address2")) AddCommandParameter(dbCommand, "@Address2", _Address2);
|
||||
if (columnNames.ContainsCI("City")) AddCommandParameter(dbCommand, "@City", _City);
|
||||
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
|
||||
if (columnNames.ContainsCI("Telephone")) AddCommandParameter(dbCommand, "@Telephone", _Telephone);
|
||||
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
|
||||
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
|
||||
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
|
||||
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
|
||||
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
|
||||
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
|
||||
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
|
||||
// Execute insert command.
|
||||
bool commandSuccess = false;
|
||||
int executeNonQuery = dbCommand.ExecuteNonQuery();
|
||||
if (executeNonQuery == 1)
|
||||
{
|
||||
dbCommand.CommandText = "SELECT Max(Id) FROM " + TableNameFmt + ";";
|
||||
_Id = Convert.ToInt64(dbCommand.ExecuteScalar());
|
||||
commandSuccess = (_Id > 0);
|
||||
}
|
||||
return commandSuccess;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update command.
|
||||
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
|
||||
{
|
||||
// Avoid update if Identity field isn't valid.
|
||||
if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id");
|
||||
// Columns to update.
|
||||
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
|
||||
// Construct query.
|
||||
String query = "UPDATE " + TableNameFmt + " SET ";
|
||||
if (dbCommand is SqlCommand)
|
||||
{
|
||||
query += StringPairList.CreateFrom(columnNames.Bracket("[","]"),columnNames).Concat("=@").Concat(", ") + " ";
|
||||
query += "WHERE Id=@Id;";
|
||||
}
|
||||
else
|
||||
{
|
||||
query += columnNames.Concat(", ", "", "=?") + " ";
|
||||
query += "WHERE Id=?;";
|
||||
}
|
||||
dbCommand.CommandText = query;
|
||||
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
|
||||
// Populate parameters.
|
||||
dbCommand.Parameters.Clear();
|
||||
if (columnNames.ContainsCI("FacilityId")) AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
|
||||
if (columnNames.ContainsCI("CourseId")) AddCommandParameter(dbCommand, "@CourseId", _CourseId);
|
||||
if (columnNames.ContainsCI("LegacyCrpCourseId")) AddCommandParameter(dbCommand, "@LegacyCrpCourseId", _LegacyCrpCourseId);
|
||||
if (columnNames.ContainsCI("Caption")) AddCommandParameter(dbCommand, "@Caption", _Caption);
|
||||
if (columnNames.ContainsCI("CourseName")) AddCommandParameter(dbCommand, "@CourseName", _CourseName);
|
||||
if (columnNames.ContainsCI("FullName")) AddCommandParameter(dbCommand, "@FullName", _FullName);
|
||||
if (columnNames.ContainsCI("Address1")) AddCommandParameter(dbCommand, "@Address1", _Address1);
|
||||
if (columnNames.ContainsCI("Address2")) AddCommandParameter(dbCommand, "@Address2", _Address2);
|
||||
if (columnNames.ContainsCI("City")) AddCommandParameter(dbCommand, "@City", _City);
|
||||
if (columnNames.ContainsCI("Email")) AddCommandParameter(dbCommand, "@Email", _Email);
|
||||
if (columnNames.ContainsCI("Telephone")) AddCommandParameter(dbCommand, "@Telephone", _Telephone);
|
||||
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
|
||||
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
|
||||
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
|
||||
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
|
||||
AddCommandParameter(dbCommand, "@Id", _Id);
|
||||
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
|
||||
return (executeNonQueryResult == 1);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,218 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Saxonite.Net.Standard.Dbas.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
{
|
||||
internal class Golf_UsgaFacility_Db : SaxDbDataItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Column definitions.
|
||||
public class ColumnsData
|
||||
{
|
||||
public ColumnDataInt64 _Id { get; } = new ColumnDataInt64("Id", true);
|
||||
public ColumnDataInt64 _ProvinceId { get; } = new ColumnDataInt64("ProvinceId");
|
||||
public ColumnDataInt64 _FacilityId { get; } = new ColumnDataInt64("FacilityId");
|
||||
public ColumnDataString _FacilityName { get; } = new ColumnDataString("FacilityName");
|
||||
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
|
||||
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
|
||||
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
|
||||
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
|
||||
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
|
||||
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
|
||||
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
|
||||
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
|
||||
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
protected static List<String> fields { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
"ProvinceId",
|
||||
"FacilityId",
|
||||
"FacilityName",
|
||||
"Notes",
|
||||
"Flags",
|
||||
"Status",
|
||||
"CreateOn",
|
||||
"CreateBy",
|
||||
"CreateHost",
|
||||
"UpdateOn",
|
||||
"UpdateBy",
|
||||
"UpdateHost",
|
||||
};
|
||||
protected static List<String> fieldsId { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
};
|
||||
protected static List<String> fieldsPrimary { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
};
|
||||
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
|
||||
{
|
||||
"CreateOn",
|
||||
"CreateBy",
|
||||
"CreateHost",
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
internal Golf_UsgaFacility_Db (IDatabaseInfo dbInfo) : base(dbInfo)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public override String SchemaName { get; } = "golf";
|
||||
public override String TableName { get; } = "UsgaFacility";
|
||||
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
|
||||
public static List<String> Fields { get { return new List<String>(fields); } }
|
||||
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
|
||||
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
|
||||
// Columns.
|
||||
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 String _FacilityName { get { return Cols._FacilityName.Value; } set { Cols._FacilityName.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; } }
|
||||
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
|
||||
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
|
||||
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
|
||||
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
|
||||
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
|
||||
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
|
||||
// Existing columns - confirmed on database if table exists.
|
||||
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
|
||||
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Population.
|
||||
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
|
||||
{
|
||||
dbCommand.CommandText =
|
||||
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
|
||||
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
|
||||
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
|
||||
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
|
||||
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
|
||||
{
|
||||
dbDataReader.Read();
|
||||
PopulateFrom(dbDataReader);
|
||||
}
|
||||
}
|
||||
public override void PopulateFrom (DbDataReader dbDataReader)
|
||||
{
|
||||
_Id = GetFieldInt64(dbDataReader, "Id", _Id);
|
||||
_ProvinceId = GetFieldInt64(dbDataReader, "ProvinceId", _ProvinceId);
|
||||
_FacilityId = GetFieldInt64(dbDataReader, "FacilityId", _FacilityId);
|
||||
_FacilityName = GetFieldString(dbDataReader, "FacilityName", _FacilityName);
|
||||
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
|
||||
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
|
||||
_Status = GetFieldString(dbDataReader, "Status", _Status);
|
||||
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
|
||||
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
|
||||
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
|
||||
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
|
||||
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
|
||||
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert command.
|
||||
public override bool ExecuteInsertCommand (DbCommand dbCommand)
|
||||
{
|
||||
List<String> columnNames = ExistingColumnNamesNonId;
|
||||
// Avoid insert if Identity field is already valid.
|
||||
if (_Id != 0) throw new Exception("Invalid for Insert - item already has a valid Id");
|
||||
// Construct query.
|
||||
String query =
|
||||
"INSERT INTO " + TableNameFmt + " " +
|
||||
"("+columnNames.Concat(",","[","]")+") ";
|
||||
query += "Output Inserted.Id ";
|
||||
if (dbCommand is SqlCommand)
|
||||
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
|
||||
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
|
||||
dbCommand.CommandText = query;
|
||||
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
|
||||
// Populate parameters.
|
||||
dbCommand.Parameters.Clear();
|
||||
if (columnNames.ContainsCI("ProvinceId")) AddCommandParameter(dbCommand, "@ProvinceId", _ProvinceId);
|
||||
if (columnNames.ContainsCI("FacilityId")) AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
|
||||
if (columnNames.ContainsCI("FacilityName")) AddCommandParameter(dbCommand, "@FacilityName", _FacilityName);
|
||||
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
|
||||
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
|
||||
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
|
||||
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
|
||||
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
|
||||
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
|
||||
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
|
||||
// Execute insert command.
|
||||
bool commandSuccess = false;
|
||||
int executeNonQuery = dbCommand.ExecuteNonQuery();
|
||||
if (executeNonQuery == 1)
|
||||
{
|
||||
dbCommand.CommandText = "SELECT Max(Id) FROM " + TableNameFmt + ";";
|
||||
_Id = Convert.ToInt64(dbCommand.ExecuteScalar());
|
||||
commandSuccess = (_Id > 0);
|
||||
}
|
||||
return commandSuccess;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update command.
|
||||
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
|
||||
{
|
||||
// Avoid update if Identity field isn't valid.
|
||||
if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id");
|
||||
// Columns to update.
|
||||
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
|
||||
// Construct query.
|
||||
String query = "UPDATE " + TableNameFmt + " SET ";
|
||||
if (dbCommand is SqlCommand)
|
||||
{
|
||||
query += StringPairList.CreateFrom(columnNames.Bracket("[","]"),columnNames).Concat("=@").Concat(", ") + " ";
|
||||
query += "WHERE Id=@Id;";
|
||||
}
|
||||
else
|
||||
{
|
||||
query += columnNames.Concat(", ", "", "=?") + " ";
|
||||
query += "WHERE Id=?;";
|
||||
}
|
||||
dbCommand.CommandText = query;
|
||||
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
|
||||
// Populate parameters.
|
||||
dbCommand.Parameters.Clear();
|
||||
if (columnNames.ContainsCI("ProvinceId")) AddCommandParameter(dbCommand, "@ProvinceId", _ProvinceId);
|
||||
if (columnNames.ContainsCI("FacilityId")) AddCommandParameter(dbCommand, "@FacilityId", _FacilityId);
|
||||
if (columnNames.ContainsCI("FacilityName")) AddCommandParameter(dbCommand, "@FacilityName", _FacilityName);
|
||||
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
|
||||
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
|
||||
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
|
||||
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
|
||||
AddCommandParameter(dbCommand, "@Id", _Id);
|
||||
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
|
||||
return (executeNonQueryResult == 1);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,272 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Saxonite.Net.Standard.Dbas.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
{
|
||||
internal class Golf_UsgaMarker_Db : SaxDbDataItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Column definitions.
|
||||
public class ColumnsData
|
||||
{
|
||||
public ColumnDataInt64 _Id { get; } = new ColumnDataInt64("Id", true);
|
||||
public ColumnDataInt64 _CourseId { get; } = new ColumnDataInt64("CourseId");
|
||||
public ColumnDataInt64 _MarkerId { get; } = new ColumnDataInt64("MarkerId");
|
||||
public ColumnDataString _Caption { get; } = new ColumnDataString("Caption");
|
||||
public ColumnDataInt16 _Holes { get; } = new ColumnDataInt16("Holes");
|
||||
public ColumnDataString _HolesCaption { get; } = new ColumnDataString("HolesCaption");
|
||||
public ColumnDataString _Tee { get; } = new ColumnDataString("Tee");
|
||||
public ColumnDataString _Gender { get; } = new ColumnDataString("Gender");
|
||||
public ColumnDataInt16 _SlopeRating { get; } = new ColumnDataInt16("SlopeRating");
|
||||
public ColumnDataInt16 _Par { get; } = new ColumnDataInt16("Par");
|
||||
public ColumnDataDecimal _CourseRating { get; } = new ColumnDataDecimal("CourseRating");
|
||||
public ColumnDataDecimal _BogeyRating { get; } = new ColumnDataDecimal("BogeyRating");
|
||||
public ColumnDataInt16 _Length { get; } = new ColumnDataInt16("Length");
|
||||
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
|
||||
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
|
||||
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
|
||||
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
|
||||
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
|
||||
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
|
||||
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
|
||||
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
|
||||
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
protected static List<String> fields { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
"CourseId",
|
||||
"MarkerId",
|
||||
"Caption",
|
||||
"Holes",
|
||||
"HolesCaption",
|
||||
"Tee",
|
||||
"Gender",
|
||||
"SlopeRating",
|
||||
"Par",
|
||||
"CourseRating",
|
||||
"BogeyRating",
|
||||
"Length",
|
||||
"Notes",
|
||||
"Flags",
|
||||
"Status",
|
||||
"CreateOn",
|
||||
"CreateBy",
|
||||
"CreateHost",
|
||||
"UpdateOn",
|
||||
"UpdateBy",
|
||||
"UpdateHost",
|
||||
};
|
||||
protected static List<String> fieldsId { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
};
|
||||
protected static List<String> fieldsPrimary { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
};
|
||||
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
|
||||
{
|
||||
"CreateOn",
|
||||
"CreateBy",
|
||||
"CreateHost",
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
internal Golf_UsgaMarker_Db (IDatabaseInfo dbInfo) : base(dbInfo)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public override String SchemaName { get; } = "golf";
|
||||
public override String TableName { get; } = "UsgaMarker";
|
||||
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
|
||||
public static List<String> Fields { get { return new List<String>(fields); } }
|
||||
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
|
||||
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
|
||||
// Columns.
|
||||
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 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; } }
|
||||
public String _Tee { get { return Cols._Tee.Value; } set { Cols._Tee.Value = value; } }
|
||||
public String _Gender { get { return Cols._Gender.Value; } set { Cols._Gender.Value = value; } }
|
||||
public Int16 _SlopeRating { get { return Cols._SlopeRating.Value; } set { Cols._SlopeRating.Value = value; } }
|
||||
public Int16 _Par { get { return Cols._Par.Value; } set { Cols._Par.Value = value; } }
|
||||
public Decimal _CourseRating { get { return Cols._CourseRating.Value; } set { Cols._CourseRating.Value = value; } }
|
||||
public Decimal _BogeyRating { get { return Cols._BogeyRating.Value; } set { Cols._BogeyRating.Value = value; } }
|
||||
public Int16 _Length { get { return Cols._Length.Value; } set { Cols._Length.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; } }
|
||||
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
|
||||
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
|
||||
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
|
||||
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
|
||||
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
|
||||
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
|
||||
// Existing columns - confirmed on database if table exists.
|
||||
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
|
||||
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Population.
|
||||
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
|
||||
{
|
||||
dbCommand.CommandText =
|
||||
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
|
||||
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
|
||||
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
|
||||
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
|
||||
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
|
||||
{
|
||||
dbDataReader.Read();
|
||||
PopulateFrom(dbDataReader);
|
||||
}
|
||||
}
|
||||
public override void PopulateFrom (DbDataReader dbDataReader)
|
||||
{
|
||||
_Id = GetFieldInt64(dbDataReader, "Id", _Id);
|
||||
_CourseId = GetFieldInt64(dbDataReader, "CourseId", _CourseId);
|
||||
_MarkerId = GetFieldInt64(dbDataReader, "MarkerId", _MarkerId);
|
||||
_Caption = GetFieldString(dbDataReader, "Caption", _Caption);
|
||||
_Holes = GetFieldInt16(dbDataReader, "Holes", _Holes);
|
||||
_HolesCaption = GetFieldString(dbDataReader, "HolesCaption", _HolesCaption);
|
||||
_Tee = GetFieldString(dbDataReader, "Tee", _Tee);
|
||||
_Gender = GetFieldString(dbDataReader, "Gender", _Gender);
|
||||
_SlopeRating = GetFieldInt16(dbDataReader, "SlopeRating", _SlopeRating);
|
||||
_Par = GetFieldInt16(dbDataReader, "Par", _Par);
|
||||
_CourseRating = GetFieldDecimal(dbDataReader, "CourseRating", _CourseRating);
|
||||
_BogeyRating = GetFieldDecimal(dbDataReader, "BogeyRating", _BogeyRating);
|
||||
_Length = GetFieldInt16(dbDataReader, "Length", _Length);
|
||||
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
|
||||
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
|
||||
_Status = GetFieldString(dbDataReader, "Status", _Status);
|
||||
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
|
||||
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
|
||||
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
|
||||
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
|
||||
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
|
||||
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert command.
|
||||
public override bool ExecuteInsertCommand (DbCommand dbCommand)
|
||||
{
|
||||
List<String> columnNames = ExistingColumnNamesNonId;
|
||||
// Avoid insert if Identity field is already valid.
|
||||
if (_Id != 0) throw new Exception("Invalid for Insert - item already has a valid Id");
|
||||
// Construct query.
|
||||
String query =
|
||||
"INSERT INTO " + TableNameFmt + " " +
|
||||
"("+columnNames.Concat(",","[","]")+") ";
|
||||
query += "Output Inserted.Id ";
|
||||
if (dbCommand is SqlCommand)
|
||||
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
|
||||
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
|
||||
dbCommand.CommandText = query;
|
||||
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
|
||||
// Populate parameters.
|
||||
dbCommand.Parameters.Clear();
|
||||
if (columnNames.ContainsCI("CourseId")) AddCommandParameter(dbCommand, "@CourseId", _CourseId);
|
||||
if (columnNames.ContainsCI("MarkerId")) AddCommandParameter(dbCommand, "@MarkerId", _MarkerId);
|
||||
if (columnNames.ContainsCI("Caption")) AddCommandParameter(dbCommand, "@Caption", _Caption);
|
||||
if (columnNames.ContainsCI("Holes")) AddCommandParameter(dbCommand, "@Holes", _Holes);
|
||||
if (columnNames.ContainsCI("HolesCaption")) AddCommandParameter(dbCommand, "@HolesCaption", _HolesCaption);
|
||||
if (columnNames.ContainsCI("Tee")) AddCommandParameter(dbCommand, "@Tee", _Tee);
|
||||
if (columnNames.ContainsCI("Gender")) AddCommandParameter(dbCommand, "@Gender", _Gender);
|
||||
if (columnNames.ContainsCI("SlopeRating")) AddCommandParameter(dbCommand, "@SlopeRating", _SlopeRating);
|
||||
if (columnNames.ContainsCI("Par")) AddCommandParameter(dbCommand, "@Par", _Par);
|
||||
if (columnNames.ContainsCI("CourseRating")) AddCommandParameter(dbCommand, "@CourseRating", _CourseRating);
|
||||
if (columnNames.ContainsCI("BogeyRating")) AddCommandParameter(dbCommand, "@BogeyRating", _BogeyRating);
|
||||
if (columnNames.ContainsCI("Length")) AddCommandParameter(dbCommand, "@Length", _Length);
|
||||
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
|
||||
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
|
||||
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
|
||||
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
|
||||
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
|
||||
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
|
||||
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
|
||||
// Execute insert command.
|
||||
bool commandSuccess = false;
|
||||
int executeNonQuery = dbCommand.ExecuteNonQuery();
|
||||
if (executeNonQuery == 1)
|
||||
{
|
||||
dbCommand.CommandText = "SELECT Max(Id) FROM " + TableNameFmt + ";";
|
||||
_Id = Convert.ToInt64(dbCommand.ExecuteScalar());
|
||||
commandSuccess = (_Id > 0);
|
||||
}
|
||||
return commandSuccess;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update command.
|
||||
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
|
||||
{
|
||||
// Avoid update if Identity field isn't valid.
|
||||
if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id");
|
||||
// Columns to update.
|
||||
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
|
||||
// Construct query.
|
||||
String query = "UPDATE " + TableNameFmt + " SET ";
|
||||
if (dbCommand is SqlCommand)
|
||||
{
|
||||
query += StringPairList.CreateFrom(columnNames.Bracket("[","]"),columnNames).Concat("=@").Concat(", ") + " ";
|
||||
query += "WHERE Id=@Id;";
|
||||
}
|
||||
else
|
||||
{
|
||||
query += columnNames.Concat(", ", "", "=?") + " ";
|
||||
query += "WHERE Id=?;";
|
||||
}
|
||||
dbCommand.CommandText = query;
|
||||
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
|
||||
// Populate parameters.
|
||||
dbCommand.Parameters.Clear();
|
||||
if (columnNames.ContainsCI("CourseId")) AddCommandParameter(dbCommand, "@CourseId", _CourseId);
|
||||
if (columnNames.ContainsCI("MarkerId")) AddCommandParameter(dbCommand, "@MarkerId", _MarkerId);
|
||||
if (columnNames.ContainsCI("Caption")) AddCommandParameter(dbCommand, "@Caption", _Caption);
|
||||
if (columnNames.ContainsCI("Holes")) AddCommandParameter(dbCommand, "@Holes", _Holes);
|
||||
if (columnNames.ContainsCI("HolesCaption")) AddCommandParameter(dbCommand, "@HolesCaption", _HolesCaption);
|
||||
if (columnNames.ContainsCI("Tee")) AddCommandParameter(dbCommand, "@Tee", _Tee);
|
||||
if (columnNames.ContainsCI("Gender")) AddCommandParameter(dbCommand, "@Gender", _Gender);
|
||||
if (columnNames.ContainsCI("SlopeRating")) AddCommandParameter(dbCommand, "@SlopeRating", _SlopeRating);
|
||||
if (columnNames.ContainsCI("Par")) AddCommandParameter(dbCommand, "@Par", _Par);
|
||||
if (columnNames.ContainsCI("CourseRating")) AddCommandParameter(dbCommand, "@CourseRating", _CourseRating);
|
||||
if (columnNames.ContainsCI("BogeyRating")) AddCommandParameter(dbCommand, "@BogeyRating", _BogeyRating);
|
||||
if (columnNames.ContainsCI("Length")) AddCommandParameter(dbCommand, "@Length", _Length);
|
||||
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
|
||||
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
|
||||
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
|
||||
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
|
||||
AddCommandParameter(dbCommand, "@Id", _Id);
|
||||
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
|
||||
return (executeNonQueryResult == 1);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,224 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Saxonite.Net.Standard.Dbas.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:55
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
{
|
||||
internal class Golf_UsgaProvince_Db : SaxDbDataItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Column definitions.
|
||||
public class ColumnsData
|
||||
{
|
||||
public ColumnDataInt64 _Id { get; } = new ColumnDataInt64("Id", true);
|
||||
public ColumnDataInt64 _CountryId { get; } = new ColumnDataInt64("CountryId");
|
||||
public ColumnDataString _ProvinceCode { get; } = new ColumnDataString("ProvinceCode");
|
||||
public ColumnDataString _EntProvinceCode { get; } = new ColumnDataString("EntProvinceCode");
|
||||
public ColumnDataString _ProvinceName { get; } = new ColumnDataString("ProvinceName");
|
||||
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
|
||||
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
|
||||
public ColumnDataString _Status { get; } = new ColumnDataString("Status");
|
||||
public ColumnDataDateTime _CreateOn { get; } = new ColumnDataDateTime("CreateOn");
|
||||
public ColumnDataInt32 _CreateBy { get; } = new ColumnDataInt32("CreateBy");
|
||||
public ColumnDataString _CreateHost { get; } = new ColumnDataString("CreateHost");
|
||||
public ColumnDataDateTime _UpdateOn { get; } = new ColumnDataDateTime("UpdateOn");
|
||||
public ColumnDataInt32 _UpdateBy { get; } = new ColumnDataInt32("UpdateBy");
|
||||
public ColumnDataString _UpdateHost { get; } = new ColumnDataString("UpdateHost");
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
protected static List<String> fields { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
"CountryId",
|
||||
"ProvinceCode",
|
||||
"EntProvinceCode",
|
||||
"ProvinceName",
|
||||
"Notes",
|
||||
"Flags",
|
||||
"Status",
|
||||
"CreateOn",
|
||||
"CreateBy",
|
||||
"CreateHost",
|
||||
"UpdateOn",
|
||||
"UpdateBy",
|
||||
"UpdateHost",
|
||||
};
|
||||
protected static List<String> fieldsId { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
};
|
||||
protected static List<String> fieldsPrimary { get; } = new List<String>()
|
||||
{
|
||||
"Id",
|
||||
};
|
||||
protected static List<String> fieldsIgnoreOnUpdate { get; } = new List<String>()
|
||||
{
|
||||
"CreateOn",
|
||||
"CreateBy",
|
||||
"CreateHost",
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
internal Golf_UsgaProvince_Db (IDatabaseInfo dbInfo) : base(dbInfo)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public override String SchemaName { get; } = "golf";
|
||||
public override String TableName { get; } = "UsgaProvince";
|
||||
public String TableNameFmt { get { return (!String.IsNullOrEmpty(SchemaName) ? "[" + SchemaName + "]." : "") + "[" + TableName + "]"; } }
|
||||
public static List<String> Fields { get { return new List<String>(fields); } }
|
||||
public static List<String> FieldsId { get { return new List<String>(fieldsId); } }
|
||||
public static List<String> FieldsNonId { get { return fields.FindAll(item => !fieldsId.ContainsCI(item)); } }
|
||||
// Columns.
|
||||
public ColumnsData Cols { get; } = new ColumnsData();
|
||||
public Int64 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
|
||||
public Int64 _CountryId { get { return Cols._CountryId.Value; } set { Cols._CountryId.Value = value; } }
|
||||
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 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; } }
|
||||
public DateTime _CreateOn { get { return Cols._CreateOn.Value; } set { Cols._CreateOn.Value = value; } }
|
||||
public Int32 _CreateBy { get { return Cols._CreateBy.Value; } set { Cols._CreateBy.Value = value; } }
|
||||
public String _CreateHost { get { return Cols._CreateHost.Value; } set { Cols._CreateHost.Value = value; } }
|
||||
public DateTime _UpdateOn { get { return Cols._UpdateOn.Value; } set { Cols._UpdateOn.Value = value; } }
|
||||
public Int32 _UpdateBy { get { return Cols._UpdateBy.Value; } set { Cols._UpdateBy.Value = value; } }
|
||||
public String _UpdateHost { get { return Cols._UpdateHost.Value; } set { Cols._UpdateHost.Value = value; } }
|
||||
// Existing columns - confirmed on database if table exists.
|
||||
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
|
||||
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Population.
|
||||
public override void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter)
|
||||
{
|
||||
dbCommand.CommandText =
|
||||
"SELECT " + ExistingColumnNames.Concat(", ", (!String.IsNullOrEmpty(tableAlias) ? tableAlias + "." : "") + "[", "]") + " " +
|
||||
"FROM " + TableNameFmt + (!String.IsNullOrEmpty(tableAlias) ? " " + tableAlias : "") + " " +
|
||||
(!String.IsNullOrEmpty(filter) ? "WHERE " + filter : "");
|
||||
Log(GetType().Name + ".PopulateFrom", dbCommand.CommandText);
|
||||
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
|
||||
{
|
||||
dbDataReader.Read();
|
||||
PopulateFrom(dbDataReader);
|
||||
}
|
||||
}
|
||||
public override void PopulateFrom (DbDataReader dbDataReader)
|
||||
{
|
||||
_Id = GetFieldInt64(dbDataReader, "Id", _Id);
|
||||
_CountryId = GetFieldInt64(dbDataReader, "CountryId", _CountryId);
|
||||
_ProvinceCode = GetFieldString(dbDataReader, "ProvinceCode", _ProvinceCode);
|
||||
_EntProvinceCode = GetFieldString(dbDataReader, "EntProvinceCode", _EntProvinceCode);
|
||||
_ProvinceName = GetFieldString(dbDataReader, "ProvinceName", _ProvinceName);
|
||||
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
|
||||
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
|
||||
_Status = GetFieldString(dbDataReader, "Status", _Status);
|
||||
_CreateOn = GetFieldDateTime(dbDataReader, "CreateOn", _CreateOn);
|
||||
_CreateBy = GetFieldInt32(dbDataReader, "CreateBy", _CreateBy);
|
||||
_CreateHost = GetFieldString(dbDataReader, "CreateHost", _CreateHost);
|
||||
_UpdateOn = GetFieldDateTime(dbDataReader, "UpdateOn", _UpdateOn);
|
||||
_UpdateBy = GetFieldInt32(dbDataReader, "UpdateBy", _UpdateBy);
|
||||
_UpdateHost = GetFieldString(dbDataReader, "UpdateHost", _UpdateHost);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert command.
|
||||
public override bool ExecuteInsertCommand (DbCommand dbCommand)
|
||||
{
|
||||
List<String> columnNames = ExistingColumnNamesNonId;
|
||||
// Avoid insert if Identity field is already valid.
|
||||
if (_Id != 0) throw new Exception("Invalid for Insert - item already has a valid Id");
|
||||
// Construct query.
|
||||
String query =
|
||||
"INSERT INTO " + TableNameFmt + " " +
|
||||
"("+columnNames.Concat(",","[","]")+") ";
|
||||
query += "Output Inserted.Id ";
|
||||
if (dbCommand is SqlCommand)
|
||||
query += "VALUES (" + columnNames.Concat(",", "@", "") + ") ";
|
||||
else query += "VALUES (" + StringListUtil.CreateList("?", columnNames.Count).Concat(",") + ") ";
|
||||
dbCommand.CommandText = query;
|
||||
Log(GetType().Name + ".ExecuteInsertCommand", dbCommand.CommandText);
|
||||
// Populate parameters.
|
||||
dbCommand.Parameters.Clear();
|
||||
if (columnNames.ContainsCI("CountryId")) AddCommandParameter(dbCommand, "@CountryId", _CountryId);
|
||||
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("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
|
||||
if (columnNames.ContainsCI("CreateOn")) AddCommandParameter(dbCommand, "@CreateOn", _CreateOn);
|
||||
if (columnNames.ContainsCI("CreateBy")) AddCommandParameter(dbCommand, "@CreateBy", _CreateBy);
|
||||
if (columnNames.ContainsCI("CreateHost")) AddCommandParameter(dbCommand, "@CreateHost", _CreateHost);
|
||||
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
|
||||
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
|
||||
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
|
||||
// Execute insert command.
|
||||
bool commandSuccess = false;
|
||||
int executeNonQuery = dbCommand.ExecuteNonQuery();
|
||||
if (executeNonQuery == 1)
|
||||
{
|
||||
dbCommand.CommandText = "SELECT Max(Id) FROM " + TableNameFmt + ";";
|
||||
_Id = Convert.ToInt64(dbCommand.ExecuteScalar());
|
||||
commandSuccess = (_Id > 0);
|
||||
}
|
||||
return commandSuccess;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update command.
|
||||
public override bool ExecuteUpdateCommand (DbCommand dbCommand)
|
||||
{
|
||||
// Avoid update if Identity field isn't valid.
|
||||
if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id");
|
||||
// Columns to update.
|
||||
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList();
|
||||
// Construct query.
|
||||
String query = "UPDATE " + TableNameFmt + " SET ";
|
||||
if (dbCommand is SqlCommand)
|
||||
{
|
||||
query += StringPairList.CreateFrom(columnNames.Bracket("[","]"),columnNames).Concat("=@").Concat(", ") + " ";
|
||||
query += "WHERE Id=@Id;";
|
||||
}
|
||||
else
|
||||
{
|
||||
query += columnNames.Concat(", ", "", "=?") + " ";
|
||||
query += "WHERE Id=?;";
|
||||
}
|
||||
dbCommand.CommandText = query;
|
||||
Log(GetType().Name + ".ExecuteUpdateCommand", dbCommand.CommandText);
|
||||
// Populate parameters.
|
||||
dbCommand.Parameters.Clear();
|
||||
if (columnNames.ContainsCI("CountryId")) AddCommandParameter(dbCommand, "@CountryId", _CountryId);
|
||||
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("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
if (columnNames.ContainsCI("Status")) AddCommandParameter(dbCommand, "@Status", _Status);
|
||||
if (columnNames.ContainsCI("UpdateOn")) AddCommandParameter(dbCommand, "@UpdateOn", _UpdateOn);
|
||||
if (columnNames.ContainsCI("UpdateBy")) AddCommandParameter(dbCommand, "@UpdateBy", _UpdateBy);
|
||||
if (columnNames.ContainsCI("UpdateHost")) AddCommandParameter(dbCommand, "@UpdateHost", _UpdateHost);
|
||||
AddCommandParameter(dbCommand, "@Id", _Id);
|
||||
int executeNonQueryResult = dbCommand.ExecuteNonQuery();
|
||||
return (executeNonQueryResult == 1);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Support
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 8-Feb-2023 18:02:24
|
||||
// Code generated by Sarand Database Utilities Wed 22-May-2024 12:21:56
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal.Support
|
||||
{
|
||||
|
||||
@@ -0,0 +1,587 @@
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Sarand.Net.Standard.Dbas.Data;
|
||||
using Saxonite.Base.App;
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Bus;
|
||||
using Saxonite.Net.Standard.Base.Bus.Reference;
|
||||
using Saxonite.Net.Standard.Dbas.Bus.Reference;
|
||||
using Saxonite.Net.Standard.Dbas.Internal.Reference;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SaxReferenceGolfMgr_Dbas
|
||||
{
|
||||
//*******************************************************************
|
||||
// Support Mgr - User Report
|
||||
//*******************************************************************
|
||||
// Utilities.
|
||||
private List<StringPair> GetLogProperties(SaxGolfUsgaCountry usgaCountry)
|
||||
{
|
||||
return new List<StringPair>()
|
||||
{
|
||||
new StringPair("Id",SysId.ToString(usgaCountry.Id)),
|
||||
new StringPair("CountryCode",usgaCountry.CountryCode),
|
||||
new StringPair("CountryName",usgaCountry.CountryName),
|
||||
new StringPair("Status",usgaCountry.StatusCode)
|
||||
};
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create item.
|
||||
public override SaxGolfUsgaCountry CreateUsgaCountry()
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SaxGolfUsgaCountry_Dbas(ReferenceDatabase, null, 0);
|
||||
}
|
||||
private SaxGolfUsgaCountry_Dbas CreateUsgaCountry(Golf_UsgaCountry_Db dbUsgaCountry)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaxGolfUsgaCountry_Dbas usgaCountry = new SaxGolfUsgaCountry_Dbas(ReferenceDatabase, new SysId(dbUsgaCountry._Id), (ushort)dbUsgaCountry._Flags);
|
||||
PopulateFrom(dbUsgaCountry, usgaCountry);
|
||||
return usgaCountry;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get item.
|
||||
public override SaxGolfUsgaCountry GetUsgaCountry(SaxGolfUsgaCountry.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetUsgaCountry(GetUsgaCountryQueryFilter(prm).Concat(" And ", "(", ")"));
|
||||
}
|
||||
private SaxGolfUsgaCountry GetUsgaCountry(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
long count = GetUsgaCountryCount(filter);
|
||||
if (count == 0) return null;
|
||||
if (count != 1)
|
||||
{
|
||||
SetErrorState("Multiple items found");
|
||||
return null;
|
||||
}
|
||||
SaxGolfUsgaCountry usgaCountry = null;
|
||||
// Query data.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
Golf_UsgaCountry_Db dbUsgaCountry = new Golf_UsgaCountry_Db(ReferenceDbInfo);
|
||||
dbUsgaCountry.PopulateFrom(dbCommand, aliasUsgaCountry, filter);
|
||||
usgaCountry = CreateUsgaCountry(dbUsgaCountry);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SetErrorState("Database query exception");
|
||||
SaLogger.Warn(GetType().Name + ".GetUsgaCountry\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc));
|
||||
}
|
||||
}
|
||||
return usgaCountry;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate item.
|
||||
public override bool IsValidUsgaCountryData(SaxGolfUsgaCountry.Data data, SaxGolfUsgaCountry.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidUsgaCountryData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert item.
|
||||
public override bool InsertUsgaCountry(SaxGolfUsgaCountry usgaCountry, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".InsertUsgaCountry";
|
||||
ClearErrorState();
|
||||
if (!IsValidUsgaCountry(usgaCountry)) return false;
|
||||
if (SysId.IsValid(usgaCountry.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
Golf_UsgaCountry_Db dbUsgaCountry = new Golf_UsgaCountry_Db(ReferenceDbInfo);
|
||||
PopulateTo(dbUsgaCountry, usgaCountry, dbUpdateInfo);
|
||||
if (Golf_UsgaCountry_Db.FieldsNonId.Contains("Id"))
|
||||
{
|
||||
// Generate next Id.
|
||||
dbUsgaCountry._Id = ReferenceDatabase.GetNextIdFromTable("UsgaCountry");
|
||||
}
|
||||
dbUsgaCountry.ExecuteInsertCommand(dbCommand);
|
||||
usgaCountry.Id = new SysId(dbUsgaCountry._Id);
|
||||
usgaCountry.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(usgaCountry).Concat(": ").Concat("", "\n\t"));
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update item.
|
||||
public override bool UpdateUsgaCountry(SaxGolfUsgaCountry usgaCountry, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".UpdateUsgaCountry";
|
||||
ClearErrorState();
|
||||
if (!IsValidUsgaCountry(usgaCountry)) return false;
|
||||
if (!SysId.IsValid(usgaCountry.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
if (!usgaCountry.Changed)
|
||||
{
|
||||
if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(usgaCountry).Concat(": ").Concat("", "\n\t"));
|
||||
return true;
|
||||
}
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
// Retrieve item.
|
||||
dbConnection.Open();
|
||||
Golf_UsgaCountry_Db dbUsgaCountry = new Golf_UsgaCountry_Db(ReferenceDbInfo);
|
||||
dbUsgaCountry.PopulateFrom(dbCommand, aliasUsgaCountry, "Id=" + SysId.ToString(usgaCountry.Id));
|
||||
// ToDo SaxUpdateLogItemMonitor_UsgaCountry updateLogMonitor = new SaxUpdateLogItemMonitor_UsgaCountry(SessionContext, CreateUsgaCountry(dbUsgaCountry), dbUpdateInfo);
|
||||
// Update item.
|
||||
PopulateTo(dbUsgaCountry, usgaCountry, dbUpdateInfo);
|
||||
dbUsgaCountry.ExecuteUpdateCommand(dbCommand);
|
||||
usgaCountry.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Updated. " + GetLogProperties(usgaCountry).Concat(": ").Concat("", "\n\t"));
|
||||
// Record updates.
|
||||
// ToDo updateLogMonitor.RecordUpdatedValues(usgaCountry);
|
||||
// ToDo updateLogMonitor.LogUpdates();
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete item.
|
||||
public override bool UsgaCountryCanBeDeleted(SaxGolfUsgaCountry usgaCountry)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.UsgaCountryCanBeDeleted(usgaCountry)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteUsgaCountry(SaxGolfUsgaCountry usgaCountry, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".DeleteUsgaCountry";
|
||||
ClearErrorState();
|
||||
if (!UsgaCountryCanBeDeleted(usgaCountry)) return false;
|
||||
|
||||
// User Roles are logically deleted by changing the status.
|
||||
usgaCountry.Status = SaStatus.Deleted;
|
||||
return UpdateUsgaCountry(usgaCountry, dbUpdateInfo);
|
||||
|
||||
/*
|
||||
* Physical deletion.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
// Retrieve item.
|
||||
dbConnection.Open();
|
||||
Golf_UsgaCountry_Db dbUsgaCountry = new Golf_UsgaCountry_Db(ReferenceDbInfo);
|
||||
dbUsgaCountry.PopulateFrom(dbCommand, aliasUsgaCountry, "Id=" + usgaCountry.Id.ToString());
|
||||
// Delete item.
|
||||
dbCommand.CommandType = System.Data.CommandType.Text;
|
||||
dbCommand.CommandText = "DELETE FROM " + SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCountry) + " WHERE Id=" + SysId.ToString(usgaCountry.Id) + ";";
|
||||
dbCommand.ExecuteNonQuery();
|
||||
usgaCountry.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Deleted. " + GetLogProperties(usgaCountry).Concat(": ").Concat("", "\n\t"));
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
*/
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo(Golf_UsgaCountry_Db dbUsgaCountry, SaxGolfUsgaCountry usgaCountry, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
dbUsgaCountry._Id = SysId.ToLong(usgaCountry.Id);
|
||||
dbUsgaCountry._CountryCode = usgaCountry.CountryCode;
|
||||
dbUsgaCountry._EntCountryCode = usgaCountry.EntCountryCode;
|
||||
dbUsgaCountry._CountryName = usgaCountry.CountryName;
|
||||
// Common.
|
||||
dbUsgaCountry._Notes = usgaCountry.Notes;
|
||||
dbUsgaCountry._Status = SacsSystem.GetStatusCode(usgaCountry.Status);
|
||||
dbUsgaCountry._Flags = (short)usgaCountry.Flags;
|
||||
if (!SysId.IsValid(usgaCountry.Id))
|
||||
{
|
||||
dbUsgaCountry._CreateOn = DateTime.Now;
|
||||
dbUsgaCountry._CreateBy = dbUpdateInfo.UserId.ToInt();
|
||||
dbUsgaCountry._CreateHost = dbUpdateInfo.Host;
|
||||
}
|
||||
dbUsgaCountry._UpdateOn = DateTime.Now;
|
||||
dbUsgaCountry._UpdateBy = dbUpdateInfo.UserId.ToInt();
|
||||
dbUsgaCountry._UpdateHost = dbUpdateInfo.Host;
|
||||
}
|
||||
private void PopulateFrom(Golf_UsgaCountry_Db dbUsgaCountry, SaxGolfUsgaCountry usgaCountry)
|
||||
{
|
||||
//usgaCountry.Id = new SysId(dbUsgaCountry._Id);
|
||||
usgaCountry.CountryCode = dbUsgaCountry._CountryCode;
|
||||
usgaCountry.EntCountryCode = dbUsgaCountry._EntCountryCode;
|
||||
usgaCountry.CountryName = dbUsgaCountry._CountryName;
|
||||
// Common.
|
||||
usgaCountry.Notes = dbUsgaCountry._Notes;
|
||||
usgaCountry.Status = SacsSystem.GetStatusForCode(dbUsgaCountry._Status);
|
||||
usgaCountry.SetCreateStamp(dbUsgaCountry._CreateOn, new SysId(dbUsgaCountry._CreateBy), dbUsgaCountry._CreateHost);
|
||||
usgaCountry.SetUpdateStamp(dbUsgaCountry._UpdateOn, new SysId(dbUsgaCountry._UpdateBy), dbUsgaCountry._UpdateHost);
|
||||
usgaCountry.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Bulk updates.
|
||||
/// <summary>
|
||||
/// Bulk update USGA Countries.
|
||||
/// <para>- Country code must be supplied to act as identifier.</para>
|
||||
/// <para>- Other properties are validated as per country rules - check error state.</para>
|
||||
/// <para>- Other properties are left as is if null.</para>
|
||||
/// </summary>
|
||||
public override bool BulkUpdateUsgaCountries(List<UsgaCountryData> countries, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<UsgaCountryData> countriesToUpdate = new List<UsgaCountryData>();
|
||||
|
||||
// Validate supplied data.
|
||||
foreach (UsgaCountryData country in countries)
|
||||
{
|
||||
// Validate country properties.
|
||||
// Code is mandatory, other values only validated if non-null.
|
||||
if (!IsValidValue(country.CountryCode, "code", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryCode), true)) return false;
|
||||
if (country.EntCountryCode != null && !IsValidValue(country.EntCountryCode, "ent code", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_EntCountryCode))) return false;
|
||||
if (country.CountryName != null && !IsValidValue(country.CountryName, "name", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryName))) return false;
|
||||
countriesToUpdate.Add(country);
|
||||
}
|
||||
int MaxBulkUpdateBatchSize = 64;
|
||||
int batchSize = countriesToUpdate.Any() ? (int)Math.Ceiling(countriesToUpdate.Count() / Math.Ceiling((double)countriesToUpdate.Count() / MaxBulkUpdateBatchSize)) : MaxBulkUpdateBatchSize;
|
||||
while (countriesToUpdate.Any())
|
||||
{
|
||||
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 @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.UsgaCountry)} uCty");
|
||||
query.Add("Using");
|
||||
query.Add("(");
|
||||
query.Add("Select '' CountryCode, '' EntCountryCode, '' CountryName");
|
||||
foreach (UsgaCountryData country in countriesToUpdate.ExtractRange(0, batchSize))
|
||||
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)");
|
||||
query.Add("Then Update Set");
|
||||
query.Add(" EntCountryCode=Coalesce(dCty.EntCountryCode,uCty.EntCountryCode),");
|
||||
query.Add(" CountryName=Coalesce(dCty.CountryName,uCty.CountryName),");
|
||||
query.Add(" Status=@statusActive,");
|
||||
query.Add(" UpdateOn=@updateOn,");
|
||||
query.Add(" UpdateBy=@updateBy,");
|
||||
query.Add(" UpdateHost=@updateHost");
|
||||
query.Add("When Not Matched And Len(IsNull(dCty.CountryName,''))>0");
|
||||
query.Add("Then Insert (CountryCode,EntCountryCode,CountryName,Notes,Flags,Status,CreateOn,CreateBy,CreateHost,UpdateOn,UpdateBy,UpdateHost)");
|
||||
query.Add($"Values (dCty.CountryCode,Coalesce(dCty.EntCountryCode,''),dCty.CountryName,'',0,@statusActive,@updateOn,@updateBy,@updateHost,@updateOn,@updateBy,@updateHost)");
|
||||
query.Add(";");
|
||||
//SaLogger.Info($"{SysUtil.Fn} Bulk USGA Country update query:\n\t{query.Concat("\n\t")}");
|
||||
|
||||
try
|
||||
{
|
||||
int result = ReferenceDatabase.ExecuteNonQuery(query.Concat("\n"));
|
||||
if (ReferenceDatabase.HasErrorState())
|
||||
SaLogger.Warn($"{SysUtil.Fn} Error executing bulk USGA Country update - {ReferenceDatabase.ErrorStateMessage}");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SaLogger.Warn(SysUtil.Fn + " " + ExceptionUtil.GetLogMessage(exc, " executing bulk USGA Country update"));
|
||||
}
|
||||
}
|
||||
return HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item column definitions.
|
||||
private static readonly String aliasUsgaCountry = "UsgPrv";
|
||||
private static readonly String aliasUsgaCountry_Dummy = "UsgPrv_Cty";
|
||||
private static readonly String prefixUsgaCountry_Dummy = aliasUsgaCountry_Dummy + "_";
|
||||
private void SetUsgaCountryColDfn
|
||||
(ColumnDfn col, String caption, int width, SaxDbDfn_Reference.ColumnIdx dbCol,
|
||||
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
|
||||
String alias = "", String prefix = "")
|
||||
{
|
||||
if (String.IsNullOrEmpty(alias) && SaxDbDfn_Reference.GetTableForColumn(dbCol) == SaxDbDfn_Reference.TableIdx.UsgaCountry)
|
||||
alias = aliasUsgaCountry;
|
||||
col.Set(caption, width, (int)dbCol, prefix + SaxDbDfn_Reference.GetColumnName(dbCol, false), SaxDbDfn_Reference.GetColumnNameQual(dbCol, alias), dataType, align);
|
||||
if (dataType == DataValue.DataType.String && dbCol != SaxDbDfn_Reference.ColumnIdx.Unknown)
|
||||
col.MaxLength = (int)SaxDbDfn_Reference.GetColTextLen(dbCol);
|
||||
}
|
||||
public override ColumnDfn GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
switch (columnId)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
case SaxGolfUsgaCountry.Column.Pos:
|
||||
SetUsgaCountryColDfn(columnDfn, "Pos", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Right);
|
||||
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
|
||||
columnDfn.ReadOnly = true;
|
||||
columnDfn.Resizable = false;
|
||||
break;
|
||||
case SaxGolfUsgaCountry.Column.Id:
|
||||
SetUsgaCountryColDfn(columnDfn, "Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, ColumnAlignment.Right, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-------------------------------------------------------
|
||||
case SaxGolfUsgaCountry.Column.CountryCode:
|
||||
SetUsgaCountryColDfn(columnDfn, "Code", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryCode, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaCountry.Column.CountryName:
|
||||
SetUsgaCountryColDfn(columnDfn, "Name", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryName, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Derived properties.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Common properties.
|
||||
case SaxGolfUsgaCountry.Column.Notes:
|
||||
SetUsgaCountryColDfn(columnDfn, "Notes", 240, SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Notes);
|
||||
break;
|
||||
case SaxGolfUsgaCountry.Column.Flags:
|
||||
SetUsgaCountryColDfn(columnDfn, "Flags", 60, SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
break;
|
||||
case SaxGolfUsgaCountry.Column.Status:
|
||||
SetUsgaCountryColDfn(columnDfn, "Status", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Status, ColumnAlignment.Center);
|
||||
break;
|
||||
case SaxGolfUsgaCountry.Column.Status_Desc:
|
||||
SetUsgaCountryColDfn(columnDfn, "Status", 90, SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Status, ColumnAlignment.Center);
|
||||
break;
|
||||
case SaxGolfUsgaCountry.Column.Status_Ind:
|
||||
SetUsgaCountryColDfn(columnDfn, "Status", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
|
||||
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
|
||||
break;
|
||||
case SaxGolfUsgaCountry.Column.CreateOn_Date:
|
||||
SetUsgaCountryColDfn(columnDfn, "Created", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaCountry.Column.UpdateOn_Date:
|
||||
SetUsgaCountryColDfn(columnDfn, "Updated", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCountry_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item query filter.
|
||||
public override List<string> GetUsgaCountryQueryFilter(SaxGolfUsgaCountry.Params prm)
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// Item Ids.
|
||||
String idsIncluded = prm.IdsIncluded.Concat(",");
|
||||
if (!idsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry) + " IN (" + idsIncluded + ")");
|
||||
String idsExcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsExcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry) + " NOT IN (" + idsExcluded + ")");
|
||||
|
||||
if (!StringUtil.IsBlank(prm.CountryFilter))
|
||||
{
|
||||
// Split filter into words.
|
||||
List<String> filterWords = prm.CountryFilter.Split((char[])null).ToList();
|
||||
filterWords.RemoveDuplicatesCI();
|
||||
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 ", "(", ")"));
|
||||
}
|
||||
}
|
||||
|
||||
// Name.
|
||||
if (!StringUtil.IsEmpty(prm.CountryNameFull))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryName, aliasUsgaCountry) + "='" + DbQuery.FormatForCondition(prm.CountryNameFull) + "'");
|
||||
if (!StringUtil.IsEmpty(prm.CountryNamePartial))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryName, aliasUsgaCountry) + " LIKE '%" + DbQuery.FormatForLike(prm.CountryNamePartial) + "%'");
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Notes, aliasUsgaCountry) + " LIKE '%" + DbQuery.FormatForLike(prm.NotesPartial) + "%'");
|
||||
|
||||
// Status.
|
||||
if (prm.StatusCat != SaxGolfUsgaCountry.StatusCat.Any)
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Status, aliasUsgaCountry) + GetUsgaCountryStatusCatFilterCondition(prm.StatusCat));
|
||||
|
||||
if (filter.Count < 1) filter.Add("1=1");
|
||||
return filter;
|
||||
}
|
||||
internal static String GetUsgaCountryStatusCatFilterCondition(SaxGolfUsgaCountry.StatusCat statusCat)
|
||||
{
|
||||
if (statusCat == SaxGolfUsgaCountry.StatusCat.ActiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'";
|
||||
if (statusCat == SaxGolfUsgaCountry.StatusCat.InactiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Inactive) + "'";
|
||||
if (statusCat == SaxGolfUsgaCountry.StatusCat.NotDeleted)
|
||||
return "!='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
||||
if (statusCat == SaxGolfUsgaCountry.StatusCat.DeletedOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
||||
return "";
|
||||
}
|
||||
// Item sort columns.
|
||||
public List<String> GetUsgaCountrySortColumns(SaxGolfUsgaCountry.Params prm)
|
||||
{
|
||||
// Sort sequence:
|
||||
List<String> sortColumnNames = new List<String>();
|
||||
foreach (var columnDfn in prm.SortColumns)
|
||||
{
|
||||
// Need to ensure correct alias used for UsgaCountry columns in case of conflict.
|
||||
String sortCol = String.Empty;
|
||||
if (SaxDbDfn_Reference.GetTableForColumn((SaxDbDfn_Reference.ColumnIdx)columnDfn.DbColumn) == SaxDbDfn_Reference.TableIdx.UsgaCountry)
|
||||
{
|
||||
sortCol = SaxDbDfn_Reference.GetColumnNameQual((SaxDbDfn_Reference.ColumnIdx)columnDfn.DbColumn, aliasUsgaCountry);
|
||||
}
|
||||
else
|
||||
{
|
||||
sortCol = columnDfn.DataName;
|
||||
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
|
||||
sortCol = columnDfn.SortDataName;
|
||||
}
|
||||
if (!sortCol.IsEmpty())
|
||||
{
|
||||
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
|
||||
sortColumnNames.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
|
||||
}
|
||||
}
|
||||
sortColumnNames.RemoveBlanks();
|
||||
if (sortColumnNames.IsEmpty())
|
||||
{
|
||||
// Default sort columns.
|
||||
sortColumnNames.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry) + " ASC");
|
||||
}
|
||||
return sortColumnNames;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item count.
|
||||
private long GetUsgaCountryCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return ReferenceDatabase.GetRowCount(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCountry) + " As " + aliasUsgaCountry, filter);
|
||||
}
|
||||
public override long GetUsgaCountryCount(SaxGolfUsgaCountry.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetUsgaCountryCount(GetUsgaCountryQueryFilter(prm).Concat(" AND ", "(", ")"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item list.
|
||||
public override List<SaxGolfUsgaCountry> GetUsgaCountryList(SaxGolfUsgaCountry.Params prm)
|
||||
{
|
||||
List<SaxGolfUsgaCountry> userRoles = new List<SaxGolfUsgaCountry>();
|
||||
DbQuery qry = new DbQuery(ReferenceDatabase.DbmsType);
|
||||
qry.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCountry), aliasUsgaCountry);
|
||||
Golf_UsgaCountry_Db dbUsgaCountry = new Golf_UsgaCountry_Db(ReferenceDbInfo);
|
||||
qry.Columns.AddRange(dbUsgaCountry.ExistingColumnNames);
|
||||
qry.Filters.AddRange(GetUsgaCountryQueryFilter(prm));
|
||||
qry.OrderBy.AddRange(GetUsgaCountrySortColumns(prm));
|
||||
// Query data.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
|
||||
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
|
||||
{
|
||||
while (dbDataReader.Read())
|
||||
{
|
||||
dbUsgaCountry = new Golf_UsgaCountry_Db(ReferenceDbInfo);
|
||||
dbUsgaCountry.PopulateFrom(dbDataReader);
|
||||
userRoles.Add(CreateUsgaCountry(dbUsgaCountry));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SaLogger.Warn(GetType().Name + ".GetUsgaCountryList\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc));
|
||||
}
|
||||
}
|
||||
return userRoles;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item query execution.
|
||||
public override DbResultSet ExecuteUsgaCountryQuery(List<ColumnDfn> columns, SaxGolfUsgaCountry.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Construct query.
|
||||
DbQuery query = new DbQuery(ReferenceDatabase.DbmsType);
|
||||
query.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCountry), aliasUsgaCountry);
|
||||
|
||||
// Add columns as defined in query list.
|
||||
if (columns.HasId(SaxGolfUsgaCountry.Column.Id))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry));
|
||||
if (columns.HasId(SaxGolfUsgaCountry.Column.CountryCode))
|
||||
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));
|
||||
// Common properties.
|
||||
if (columns.HasId(SaxGolfUsgaCountry.Column.Notes))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Notes, aliasUsgaCountry));
|
||||
if (columns.HasId(SaxGolfUsgaCountry.Column.Flags))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Flags, aliasUsgaCountry));
|
||||
if (columns.HasId(SaxGolfUsgaCountry.Column.Status) || columns.HasId(SaxGolfUsgaCountry.Column.Status_Desc) || columns.HasId(SaxGolfUsgaCountry.Column.Status_Ind))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Status, aliasUsgaCountry));
|
||||
if (columns.HasId(SaxGolfUsgaCountry.Column.CreateOn_Date))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CreateOn, aliasUsgaCountry));
|
||||
if (columns.HasId(SaxGolfUsgaCountry.Column.UpdateOn_Date))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_UpdateOn, aliasUsgaCountry));
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetUsgaCountryQueryFilter(prm));
|
||||
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetUsgaCountrySortColumns(prm))
|
||||
query.OrderBy.Add(sortColumn);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
//return new DbResultSet_DataTableReader(db, query.BuildQuery(prm.ResultsPaging));
|
||||
return DbResultSet_DataReader.ExecuteQuery(ReferenceDatabase, query.BuildQuery(prm.ResultsPaging));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,721 @@
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Sarand.Net.Standard.Dbas.Data;
|
||||
using Saxonite.Base.App;
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Bus;
|
||||
using Saxonite.Net.Standard.Base.Bus.Reference;
|
||||
using Saxonite.Net.Standard.Dbas.Bus.Reference;
|
||||
using Saxonite.Net.Standard.Dbas.Internal.Reference;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SaxReferenceGolfMgr_Dbas
|
||||
{
|
||||
//*******************************************************************
|
||||
// Support Mgr - User Report
|
||||
//*******************************************************************
|
||||
// Utilities.
|
||||
private List<StringPair> GetLogProperties(SaxGolfUsgaCourse usgaCourse)
|
||||
{
|
||||
return new List<StringPair>()
|
||||
{
|
||||
new StringPair("Id",SysId.ToString(usgaCourse.Id)),
|
||||
new StringPair("FacilityId",SysId.ToString(usgaCourse.FacilityId)),
|
||||
new StringPair("CourseId",SysId.ToString(usgaCourse.CourseId)),
|
||||
new StringPair("Caption ",usgaCourse.Caption),
|
||||
new StringPair("Status",usgaCourse.StatusCode)
|
||||
};
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create item.
|
||||
public override SaxGolfUsgaCourse CreateUsgaCourse(SysId facilityId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SaxGolfUsgaCourse_Dbas(ReferenceDatabase, null, facilityId, 0);
|
||||
}
|
||||
private SaxGolfUsgaCourse_Dbas CreateUsgaCourse(Golf_UsgaCourse_Db dbUsgaCourse)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaxGolfUsgaCourse_Dbas usgaCourse = new SaxGolfUsgaCourse_Dbas(ReferenceDatabase, new SysId(dbUsgaCourse._Id), new SysId(dbUsgaCourse._FacilityId), (ushort)dbUsgaCourse._Flags);
|
||||
PopulateFrom(dbUsgaCourse, usgaCourse);
|
||||
return usgaCourse;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get item.
|
||||
public override SaxGolfUsgaCourse GetUsgaCourse(SaxGolfUsgaCourse.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetUsgaCourse(GetUsgaCourseQueryFilter(prm).Concat(" And ", "(", ")"));
|
||||
}
|
||||
private SaxGolfUsgaCourse GetUsgaCourse(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
long count = GetUsgaCourseCount(filter);
|
||||
if (count == 0) return null;
|
||||
if (count != 1)
|
||||
{
|
||||
SetErrorState("Multiple items found");
|
||||
return null;
|
||||
}
|
||||
SaxGolfUsgaCourse usgaCourse = null;
|
||||
// Query data.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
Golf_UsgaCourse_Db dbUsgaCourse = new Golf_UsgaCourse_Db(ReferenceDbInfo);
|
||||
dbUsgaCourse.PopulateFrom(dbCommand, aliasUsgaCourse, filter);
|
||||
usgaCourse = CreateUsgaCourse(dbUsgaCourse);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SetErrorState("Database query exception");
|
||||
SaLogger.Warn(GetType().Name + ".GetUsgaCourse\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc));
|
||||
}
|
||||
}
|
||||
return usgaCourse;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate item.
|
||||
public override bool IsValidUsgaCourseData(SaxGolfUsgaCourse.Data data, SaxGolfUsgaCourse.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidUsgaCourseData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert item.
|
||||
public override bool InsertUsgaCourse(SaxGolfUsgaCourse usgaCourse, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".InsertUsgaCourse";
|
||||
ClearErrorState();
|
||||
if (!IsValidUsgaCourse(usgaCourse)) return false;
|
||||
if (SysId.IsValid(usgaCourse.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
Golf_UsgaCourse_Db dbUsgaCourse = new Golf_UsgaCourse_Db(ReferenceDbInfo);
|
||||
PopulateTo(dbUsgaCourse, usgaCourse, dbUpdateInfo);
|
||||
if (Golf_UsgaCourse_Db.FieldsNonId.Contains("Id"))
|
||||
{
|
||||
// Generate next Id.
|
||||
dbUsgaCourse._Id = ReferenceDatabase.GetNextIdFromTable("UsgaCourse");
|
||||
}
|
||||
dbUsgaCourse.ExecuteInsertCommand(dbCommand);
|
||||
usgaCourse.Id = new SysId(dbUsgaCourse._Id);
|
||||
usgaCourse.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(usgaCourse).Concat(": ").Concat("", "\n\t"));
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update item.
|
||||
public override bool UpdateUsgaCourse(SaxGolfUsgaCourse usgaCourse, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".UpdateUsgaCourse";
|
||||
ClearErrorState();
|
||||
if (!IsValidUsgaCourse(usgaCourse)) return false;
|
||||
if (!SysId.IsValid(usgaCourse.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
if (!usgaCourse.Changed)
|
||||
{
|
||||
if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(usgaCourse).Concat(": ").Concat("", "\n\t"));
|
||||
return true;
|
||||
}
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
// Retrieve item.
|
||||
dbConnection.Open();
|
||||
Golf_UsgaCourse_Db dbUsgaCourse = new Golf_UsgaCourse_Db(ReferenceDbInfo);
|
||||
dbUsgaCourse.PopulateFrom(dbCommand, aliasUsgaCourse, "Id=" + SysId.ToString(usgaCourse.Id));
|
||||
// ToDo SaxUpdateLogItemMonitor_UsgaCourse updateLogMonitor = new SaxUpdateLogItemMonitor_UsgaCourse(SessionContext, CreateUsgaCourse(dbUsgaCourse), dbUpdateInfo);
|
||||
// Update item.
|
||||
PopulateTo(dbUsgaCourse, usgaCourse, dbUpdateInfo);
|
||||
dbUsgaCourse.ExecuteUpdateCommand(dbCommand);
|
||||
usgaCourse.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Updated. " + GetLogProperties(usgaCourse).Concat(": ").Concat("", "\n\t"));
|
||||
// Record updates.
|
||||
// ToDo updateLogMonitor.RecordUpdatedValues(usgaCourse);
|
||||
// ToDo updateLogMonitor.LogUpdates();
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete item.
|
||||
public override bool UsgaCourseCanBeDeleted(SaxGolfUsgaCourse usgaCourse)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.UsgaCourseCanBeDeleted(usgaCourse)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteUsgaCourse(SaxGolfUsgaCourse usgaCourse, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".DeleteUsgaCourse";
|
||||
ClearErrorState();
|
||||
if (!UsgaCourseCanBeDeleted(usgaCourse)) return false;
|
||||
|
||||
// User Roles are logically deleted by changing the status.
|
||||
usgaCourse.Status = SaStatus.Deleted;
|
||||
return UpdateUsgaCourse(usgaCourse, dbUpdateInfo);
|
||||
|
||||
/*
|
||||
* Physical deletion.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
// Retrieve item.
|
||||
dbConnection.Open();
|
||||
Golf_UsgaCourse_Db dbUsgaCourse = new Golf_UsgaCourse_Db(ReferenceDbInfo);
|
||||
dbUsgaCourse.PopulateFrom(dbCommand, aliasUsgaCourse, "Id=" + usgaCourse.Id.ToString());
|
||||
// Delete item.
|
||||
dbCommand.CommandType = System.Data.CommandType.Text;
|
||||
dbCommand.CommandText = "DELETE FROM " + SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCourse) + " WHERE Id=" + SysId.ToString(usgaCourse.Id) + ";";
|
||||
dbCommand.ExecuteNonQuery();
|
||||
usgaCourse.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Deleted. " + GetLogProperties(usgaCourse).Concat(": ").Concat("", "\n\t"));
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
*/
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo(Golf_UsgaCourse_Db dbUsgaCourse, SaxGolfUsgaCourse usgaCourse, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
dbUsgaCourse._Id = SysId.ToLong(usgaCourse.Id);
|
||||
dbUsgaCourse._FacilityId = SysId.ToInt(usgaCourse.FacilityId);
|
||||
dbUsgaCourse._CourseId = SysId.ToInt(usgaCourse.CourseId);
|
||||
dbUsgaCourse._LegacyCrpCourseId = SysId.ToInt(usgaCourse.LegacyCrpCourseId);
|
||||
dbUsgaCourse._Caption = usgaCourse.Caption;
|
||||
dbUsgaCourse._CourseName = usgaCourse.CourseName;
|
||||
dbUsgaCourse._FullName = usgaCourse.FullName;
|
||||
dbUsgaCourse._Address1 = usgaCourse.Address1;
|
||||
dbUsgaCourse._Address2 = usgaCourse.Address2;
|
||||
dbUsgaCourse._City = usgaCourse.City;
|
||||
dbUsgaCourse._Email = usgaCourse.Email;
|
||||
dbUsgaCourse._Telephone = usgaCourse.Telephone;
|
||||
// Common.
|
||||
dbUsgaCourse._Notes = usgaCourse.Notes;
|
||||
dbUsgaCourse._Status = SacsSystem.GetStatusCode(usgaCourse.Status);
|
||||
dbUsgaCourse._Flags = (short)usgaCourse.Flags;
|
||||
if (!SysId.IsValid(usgaCourse.Id))
|
||||
{
|
||||
dbUsgaCourse._CreateOn = DateTime.Now;
|
||||
dbUsgaCourse._CreateBy = dbUpdateInfo.UserId.ToInt();
|
||||
dbUsgaCourse._CreateHost = dbUpdateInfo.Host;
|
||||
}
|
||||
dbUsgaCourse._UpdateOn = DateTime.Now;
|
||||
dbUsgaCourse._UpdateBy = dbUpdateInfo.UserId.ToInt();
|
||||
dbUsgaCourse._UpdateHost = dbUpdateInfo.Host;
|
||||
}
|
||||
private void PopulateFrom(Golf_UsgaCourse_Db dbUsgaCourse, SaxGolfUsgaCourse usgaCourse)
|
||||
{
|
||||
//usgaCourse.Id = new SysId(dbUsgaCourse._Id);
|
||||
usgaCourse.FacilityId = new SysId(dbUsgaCourse._FacilityId);
|
||||
usgaCourse.CourseId = new SysId(dbUsgaCourse._CourseId);
|
||||
usgaCourse.LegacyCrpCourseId = new SysId(dbUsgaCourse._LegacyCrpCourseId);
|
||||
usgaCourse.Caption = dbUsgaCourse._Caption;
|
||||
usgaCourse.CourseName = dbUsgaCourse._CourseName;
|
||||
usgaCourse.FullName = dbUsgaCourse._FullName;
|
||||
usgaCourse.Address1 = dbUsgaCourse._Address1;
|
||||
usgaCourse.Address2 = dbUsgaCourse._Address2;
|
||||
usgaCourse.City = dbUsgaCourse._City;
|
||||
usgaCourse.Email = dbUsgaCourse._Email;
|
||||
usgaCourse.Telephone = dbUsgaCourse._Telephone;
|
||||
// Common.
|
||||
usgaCourse.Notes = dbUsgaCourse._Notes;
|
||||
usgaCourse.Status = SacsSystem.GetStatusForCode(dbUsgaCourse._Status);
|
||||
usgaCourse.SetCreateStamp(dbUsgaCourse._CreateOn, new SysId(dbUsgaCourse._CreateBy), dbUsgaCourse._CreateHost);
|
||||
usgaCourse.SetUpdateStamp(dbUsgaCourse._UpdateOn, new SysId(dbUsgaCourse._UpdateBy), dbUsgaCourse._UpdateHost);
|
||||
usgaCourse.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Bulk updates.
|
||||
/// <summary>
|
||||
/// Bulk update USGA Courses.
|
||||
/// <para>- Facility Id must be supplied to identify parent.</para>
|
||||
/// <para>- Course Id must be supplied to act as identifier.</para>
|
||||
/// <para>- Other properties are validated as per course rules - check error state.</para>
|
||||
/// <para>- Other properties are left as is if null.</para>
|
||||
/// </summary>
|
||||
public override bool BulkUpdateUsgaCourses(List<UsgaCourseData> courses, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<UsgaCourseData> coursesToUpdate = new List<UsgaCourseData>();
|
||||
|
||||
// Validate supplied data.
|
||||
foreach (UsgaCourseData course in courses)
|
||||
{
|
||||
// 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 (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;
|
||||
if (course.Address1 != null && !IsValidValue(course.Address1, "address 1", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address1))) return false;
|
||||
if (course.Address2 != null && !IsValidValue(course.Address2, "address 2", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address2))) return false;
|
||||
if (course.City != null && !IsValidValue(course.City, "city", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_City))) return false;
|
||||
if (course.Email != null && !IsValidValue(course.Email, "email", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Email))) return false;
|
||||
if (course.Telephone != null && !IsValidValue(course.Telephone, "telephone", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Telephone))) return false;
|
||||
coursesToUpdate.Add(course);
|
||||
}
|
||||
int MaxBulkUpdateBatchSize = 64;
|
||||
int batchSize = coursesToUpdate.Any() ? (int)Math.Ceiling(coursesToUpdate.Count() / Math.Ceiling((double)coursesToUpdate.Count() / MaxBulkUpdateBatchSize)) : MaxBulkUpdateBatchSize;
|
||||
while (coursesToUpdate.Any())
|
||||
{
|
||||
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 @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.Email, dCrs.Telephone");
|
||||
query.Add("From");
|
||||
query.Add("(");
|
||||
query.Add("Select 0 FacilityId, 0 CourseId, 0 LegacyCrpCourseId, '' Caption, '' CourseName, '' FullName, '' Address1, '' Address2, '' City, '' Email, '' Telephone");
|
||||
foreach (UsgaCourseData course in coursesToUpdate.ExtractRange(0, batchSize))
|
||||
query.Add($"Union Select {course.FacilityId}, {course.CourseId}, " +
|
||||
(SysId.IsValid(course.LegacyCrpCourseId) ? $"{course.LegacyCrpCourseId}" : "Null") + "," +
|
||||
(course.Caption != null ? $"'{DbQuery.FormatForCondition(course.Caption)}'" : "Null") + "," +
|
||||
(course.CourseName != null ? $"'{DbQuery.FormatForCondition(course.CourseName)}'" : "Null") + "," +
|
||||
(course.FullName != null ? $"'{DbQuery.FormatForCondition(course.FullName)}'" : "Null") + "," +
|
||||
(course.Address1 != null ? $"'{DbQuery.FormatForCondition(course.Address1)}'" : "Null") + "," +
|
||||
(course.Address2 != null ? $"'{DbQuery.FormatForCondition(course.Address2)}'" : "Null") + "," +
|
||||
(course.City != null ? $"'{DbQuery.FormatForCondition(course.City)}'" : "Null") + "," +
|
||||
(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(") dCrs");
|
||||
query.Add("On uCrs.FacilityId=dCrs.FacilityId And uCrs.CourseId=dCrs.CourseId");
|
||||
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.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),");
|
||||
query.Add(" Caption=Coalesce(dCrs.Caption,uCrs.Caption),");
|
||||
query.Add(" CourseName=Coalesce(dCrs.CourseName,uCrs.CourseName),");
|
||||
query.Add(" FullName=Coalesce(dCrs.FullName,uCrs.FullName),");
|
||||
query.Add(" Address1=Coalesce(dCrs.Address1,uCrs.Address1),");
|
||||
query.Add(" Address2=Coalesce(dCrs.Address2,uCrs.Address2),");
|
||||
query.Add(" City=Coalesce(dCrs.City,uCrs.City),");
|
||||
query.Add(" Email=Coalesce(dCrs.Email,uCrs.Email),");
|
||||
query.Add(" Telephone=Coalesce(dCrs.Telephone,uCrs.Telephone),");
|
||||
query.Add(" Status=@statusActive,");
|
||||
query.Add(" UpdateOn=@updateOn,");
|
||||
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,Email,Telephone,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.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")}");
|
||||
|
||||
try
|
||||
{
|
||||
int result = ReferenceDatabase.ExecuteNonQuery(query.Concat("\n"));
|
||||
if (ReferenceDatabase.HasErrorState())
|
||||
SaLogger.Warn($"{SysUtil.Fn} Error executing bulk USGA Course update - {ReferenceDatabase.ErrorStateMessage}");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SaLogger.Warn(SysUtil.Fn + " " + ExceptionUtil.GetLogMessage(exc, " executing bulk USGA Course update"));
|
||||
}
|
||||
}
|
||||
return HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item column definitions.
|
||||
private static readonly String aliasUsgaCourse = "UsgCrs";
|
||||
private static readonly String aliasUsgaCourse_Facility = "UsgCrs_Cty";
|
||||
private static readonly String prefixUsgaCourse_Facility = aliasUsgaCourse_Facility + "_";
|
||||
private void SetUsgaCourseColDfn
|
||||
(ColumnDfn col, String caption, int width, SaxDbDfn_Reference.ColumnIdx dbCol,
|
||||
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
|
||||
String alias = "", String prefix = "")
|
||||
{
|
||||
if (String.IsNullOrEmpty(alias) && SaxDbDfn_Reference.GetTableForColumn(dbCol) == SaxDbDfn_Reference.TableIdx.UsgaCourse)
|
||||
alias = aliasUsgaCourse;
|
||||
col.Set(caption, width, (int)dbCol, prefix + SaxDbDfn_Reference.GetColumnName(dbCol, false), SaxDbDfn_Reference.GetColumnNameQual(dbCol, alias), dataType, align);
|
||||
if (dataType == DataValue.DataType.String && dbCol != SaxDbDfn_Reference.ColumnIdx.Unknown)
|
||||
col.MaxLength = (int)SaxDbDfn_Reference.GetColTextLen(dbCol);
|
||||
}
|
||||
public override ColumnDfn GetUsgaCourseColumnDfn(SaxGolfUsgaCourse.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
switch (columnId)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
case SaxGolfUsgaCourse.Column.Pos:
|
||||
SetUsgaCourseColDfn(columnDfn, "Pos", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Right);
|
||||
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
|
||||
columnDfn.ReadOnly = true;
|
||||
columnDfn.Resizable = false;
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.Id:
|
||||
SetUsgaCourseColDfn(columnDfn, "Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Id, ColumnAlignment.Right, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-------------------------------------------------------
|
||||
case SaxGolfUsgaCourse.Column.FacilityId:
|
||||
SetUsgaCourseColDfn(columnDfn, "Facility #", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FacilityId, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.Facility_Name:
|
||||
SetUsgaCourseColDfn(columnDfn, "Facility", 120, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName, ColumnAlignment.Center, DataValue.DataType.String, aliasUsgaCourse_Facility, prefixUsgaCourse_Facility);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-------------------------------------------------------
|
||||
case SaxGolfUsgaCourse.Column.CourseId:
|
||||
SetUsgaCourseColDfn(columnDfn, "Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CourseId, 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.CourseName:
|
||||
SetUsgaCourseColDfn(columnDfn, "Name", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CourseName, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.FullName:
|
||||
SetUsgaCourseColDfn(columnDfn, "Full Name", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FullName, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.Address1:
|
||||
SetUsgaCourseColDfn(columnDfn, "Address 1", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address1, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.Address2:
|
||||
SetUsgaCourseColDfn(columnDfn, "Address 2", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address2, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.City:
|
||||
SetUsgaCourseColDfn(columnDfn, "City", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_City, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.Email:
|
||||
SetUsgaCourseColDfn(columnDfn, "Email", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Email, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.Telephone:
|
||||
SetUsgaCourseColDfn(columnDfn, "Telephone", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Telephone, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Derived properties.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Common properties.
|
||||
case SaxGolfUsgaCourse.Column.Notes:
|
||||
SetUsgaCourseColDfn(columnDfn, "Notes", 240, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Notes);
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.Flags:
|
||||
SetUsgaCourseColDfn(columnDfn, "Flags", 60, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.Status:
|
||||
SetUsgaCourseColDfn(columnDfn, "Status", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Status, ColumnAlignment.Center);
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.Status_Desc:
|
||||
SetUsgaCourseColDfn(columnDfn, "Status", 90, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Status, ColumnAlignment.Center);
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.Status_Ind:
|
||||
SetUsgaCourseColDfn(columnDfn, "Status", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
|
||||
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.CreateOn_Date:
|
||||
SetUsgaCourseColDfn(columnDfn, "Created", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaCourse.Column.UpdateOn_Date:
|
||||
SetUsgaCourseColDfn(columnDfn, "Updated", 80, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item query filter.
|
||||
public override List<string> GetUsgaCourseQueryFilter(SaxGolfUsgaCourse.Params prm)
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// Item Ids.
|
||||
String idsIncluded = prm.IdsIncluded.Concat(",");
|
||||
if (!idsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Id, aliasUsgaCourse) + " IN (" + idsIncluded + ")");
|
||||
String idsExcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsExcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Id, aliasUsgaCourse) + " NOT IN (" + idsExcluded + ")");
|
||||
|
||||
// Provinces.
|
||||
String provinceIdsIncluded = prm.ProvinceIdsIncluded.Concat(",");
|
||||
if (!provinceIdsIncluded.IsEmpty())
|
||||
{
|
||||
if (StringUtil.IsBlank(prm.Alias_Province))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FacilityId, aliasUsgaCourse) + " IN (SELECT Id FROM " + SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility) + " WHERE ProvinceId IN (" + provinceIdsIncluded + "))");
|
||||
else
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, prm.Alias_Province) + " IN (" + provinceIdsIncluded + ")");
|
||||
}
|
||||
|
||||
// Facilities.
|
||||
String facilityIdsIncluded = prm.FacilityIdsIncluded.Concat(",");
|
||||
if (!facilityIdsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FacilityId, aliasUsgaCourse) + " IN (" + facilityIdsIncluded + ")");
|
||||
|
||||
if (!StringUtil.IsBlank(prm.CourseFilter))
|
||||
{
|
||||
// Split filter into words.
|
||||
List<String> filterWords = prm.CourseFilter.Split((char[])null).ToList();
|
||||
filterWords.RemoveDuplicatesCI();
|
||||
filterWords.RemoveBlanks();
|
||||
foreach (String filterWord in filterWords)
|
||||
{
|
||||
List<String> articleFilter = new List<String>();
|
||||
articleFilter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CourseName, aliasUsgaCourse) + " 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 ", "(", ")"));
|
||||
}
|
||||
}
|
||||
|
||||
// Name.
|
||||
if (!StringUtil.IsEmpty(prm.CourseNameFull))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CourseName, aliasUsgaCourse) + "='" + DbQuery.FormatForCondition(prm.CourseNameFull) + "'");
|
||||
if (!StringUtil.IsEmpty(prm.CourseNamePartial))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CourseName, aliasUsgaCourse) + " LIKE '%" + DbQuery.FormatForLike(prm.CourseNamePartial) + "%'");
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Notes, aliasUsgaCourse) + " LIKE '%" + DbQuery.FormatForLike(prm.NotesPartial) + "%'");
|
||||
|
||||
// Status.
|
||||
if (prm.StatusCat != SaxGolfUsgaCourse.StatusCat.Any)
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Status, aliasUsgaCourse) + GetUsgaCourseStatusCatFilterCondition(prm.StatusCat));
|
||||
|
||||
if (filter.Count < 1) filter.Add("1=1");
|
||||
return filter;
|
||||
}
|
||||
internal static String GetUsgaCourseStatusCatFilterCondition(SaxGolfUsgaCourse.StatusCat statusCat)
|
||||
{
|
||||
if (statusCat == SaxGolfUsgaCourse.StatusCat.ActiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'";
|
||||
if (statusCat == SaxGolfUsgaCourse.StatusCat.InactiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Inactive) + "'";
|
||||
if (statusCat == SaxGolfUsgaCourse.StatusCat.NotDeleted)
|
||||
return "!='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
||||
if (statusCat == SaxGolfUsgaCourse.StatusCat.DeletedOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
||||
return "";
|
||||
}
|
||||
// Item sort columns.
|
||||
public List<String> GetUsgaCourseSortColumns(SaxGolfUsgaCourse.Params prm)
|
||||
{
|
||||
// Sort sequence:
|
||||
List<String> sortColumnNames = new List<String>();
|
||||
foreach (var columnDfn in prm.SortColumns)
|
||||
{
|
||||
// Need to ensure correct alias used for UsgaCourse columns in case of conflict.
|
||||
String sortCol = String.Empty;
|
||||
if (SaxDbDfn_Reference.GetTableForColumn((SaxDbDfn_Reference.ColumnIdx)columnDfn.DbColumn) == SaxDbDfn_Reference.TableIdx.UsgaCourse)
|
||||
{
|
||||
sortCol = SaxDbDfn_Reference.GetColumnNameQual((SaxDbDfn_Reference.ColumnIdx)columnDfn.DbColumn, aliasUsgaCourse);
|
||||
}
|
||||
else
|
||||
{
|
||||
sortCol = columnDfn.DataName;
|
||||
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
|
||||
sortCol = columnDfn.SortDataName;
|
||||
}
|
||||
if (!sortCol.IsEmpty())
|
||||
{
|
||||
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
|
||||
sortColumnNames.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
|
||||
}
|
||||
}
|
||||
sortColumnNames.RemoveBlanks();
|
||||
if (sortColumnNames.IsEmpty())
|
||||
{
|
||||
// Default sort columns.
|
||||
sortColumnNames.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Id, aliasUsgaCourse) + " ASC");
|
||||
}
|
||||
return sortColumnNames;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item count.
|
||||
private long GetUsgaCourseCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return ReferenceDatabase.GetRowCount(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCourse) + " As " + aliasUsgaCourse, filter);
|
||||
}
|
||||
public override long GetUsgaCourseCount(SaxGolfUsgaCourse.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetUsgaCourseCount(GetUsgaCourseQueryFilter(prm).Concat(" AND ", "(", ")"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item list.
|
||||
public override List<SaxGolfUsgaCourse> GetUsgaCourseList(SaxGolfUsgaCourse.Params prm)
|
||||
{
|
||||
List<SaxGolfUsgaCourse> userRoles = new List<SaxGolfUsgaCourse>();
|
||||
DbQuery qry = new DbQuery(ReferenceDatabase.DbmsType);
|
||||
qry.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCourse), aliasUsgaCourse);
|
||||
Golf_UsgaCourse_Db dbUsgaCourse = new Golf_UsgaCourse_Db(ReferenceDbInfo);
|
||||
qry.Columns.AddRange(dbUsgaCourse.ExistingColumnNames);
|
||||
qry.Filters.AddRange(GetUsgaCourseQueryFilter(prm));
|
||||
qry.OrderBy.AddRange(GetUsgaCourseSortColumns(prm));
|
||||
// Query data.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
|
||||
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
|
||||
{
|
||||
while (dbDataReader.Read())
|
||||
{
|
||||
dbUsgaCourse = new Golf_UsgaCourse_Db(ReferenceDbInfo);
|
||||
dbUsgaCourse.PopulateFrom(dbDataReader);
|
||||
userRoles.Add(CreateUsgaCourse(dbUsgaCourse));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SaLogger.Warn(GetType().Name + ".GetUsgaCourseList\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc));
|
||||
}
|
||||
}
|
||||
return userRoles;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item query execution.
|
||||
public override DbResultSet ExecuteUsgaCourseQuery(List<ColumnDfn> columns, SaxGolfUsgaCourse.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Construct query.
|
||||
DbQuery query = new DbQuery(ReferenceDatabase.DbmsType);
|
||||
query.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCourse), aliasUsgaCourse);
|
||||
|
||||
// Add columns as defined in query list.
|
||||
if (columns.HasId(SaxGolfUsgaCourse.Column.Id))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Id, aliasUsgaCourse));
|
||||
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.LegacyCrpCourseId))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_LegacyCrpCourseId, 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))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FullName, aliasUsgaCourse));
|
||||
if (columns.HasId(SaxGolfUsgaCourse.Column.Address1))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address1, aliasUsgaCourse));
|
||||
if (columns.HasId(SaxGolfUsgaCourse.Column.Address2))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address2, aliasUsgaCourse));
|
||||
if (columns.HasId(SaxGolfUsgaCourse.Column.City))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_City, aliasUsgaCourse));
|
||||
if (columns.HasId(SaxGolfUsgaCourse.Column.Email))
|
||||
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));
|
||||
// Common properties.
|
||||
if (columns.HasId(SaxGolfUsgaCourse.Column.Notes))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Notes, aliasUsgaCourse));
|
||||
if (columns.HasId(SaxGolfUsgaCourse.Column.Flags))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Flags, aliasUsgaCourse));
|
||||
if (columns.HasId(SaxGolfUsgaCourse.Column.Status) || columns.HasId(SaxGolfUsgaCourse.Column.Status_Desc) || columns.HasId(SaxGolfUsgaCourse.Column.Status_Ind))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Status, aliasUsgaCourse));
|
||||
if (columns.HasId(SaxGolfUsgaCourse.Column.CreateOn_Date))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CreateOn, aliasUsgaCourse));
|
||||
if (columns.HasId(SaxGolfUsgaCourse.Column.UpdateOn_Date))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_UpdateOn, aliasUsgaCourse));
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Facility.
|
||||
if (hasFacilityCols)
|
||||
{
|
||||
DbQueryJoin joinFacility = new DbQueryJoin(DbJoinType.LeftOuter);
|
||||
joinFacility.Table = new StringPair(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasUsgaCourse_Facility);
|
||||
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_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;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetUsgaCourseQueryFilter(prm));
|
||||
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetUsgaCourseSortColumns(prm))
|
||||
query.OrderBy.Add(sortColumn);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
//return new DbResultSet_DataTableReader(db, query.BuildQuery(prm.ResultsPaging));
|
||||
return DbResultSet_DataReader.ExecuteQuery(ReferenceDatabase, query.BuildQuery(prm.ResultsPaging));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,625 @@
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Sarand.Net.Standard.Dbas.Data;
|
||||
using Saxonite.Base.App;
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Bus;
|
||||
using Saxonite.Net.Standard.Base.Bus.Reference;
|
||||
using Saxonite.Net.Standard.Dbas.Bus.Reference;
|
||||
using Saxonite.Net.Standard.Dbas.Internal.Reference;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SaxReferenceGolfMgr_Dbas
|
||||
{
|
||||
//*******************************************************************
|
||||
// Support Mgr - User Report
|
||||
//*******************************************************************
|
||||
// Utilities.
|
||||
private List<StringPair> GetLogProperties(SaxGolfUsgaFacility usgaFacility)
|
||||
{
|
||||
return new List<StringPair>()
|
||||
{
|
||||
new StringPair("Id",SysId.ToString(usgaFacility.Id)),
|
||||
new StringPair("ProvinceId",SysId.ToString(usgaFacility.ProvinceId)),
|
||||
new StringPair("FacilityId",SysId.ToString(usgaFacility.FacilityId)),
|
||||
new StringPair("FacilityName",usgaFacility.FacilityName),
|
||||
new StringPair("Status",usgaFacility.StatusCode)
|
||||
};
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create item.
|
||||
public override SaxGolfUsgaFacility CreateUsgaFacility(SysId usgaProvinceId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SaxGolfUsgaFacility_Dbas(ReferenceDatabase, null, usgaProvinceId, 0);
|
||||
}
|
||||
private SaxGolfUsgaFacility_Dbas CreateUsgaFacility(Golf_UsgaFacility_Db dbUsgaFacility)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaxGolfUsgaFacility_Dbas usgaFacility = new SaxGolfUsgaFacility_Dbas(ReferenceDatabase, new SysId(dbUsgaFacility._Id), new SysId(dbUsgaFacility._ProvinceId), (ushort)dbUsgaFacility._Flags);
|
||||
PopulateFrom(dbUsgaFacility, usgaFacility);
|
||||
return usgaFacility;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get item.
|
||||
public override SaxGolfUsgaFacility GetUsgaFacility(SaxGolfUsgaFacility.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetUsgaFacility(GetUsgaFacilityQueryFilter(prm).Concat(" And ", "(", ")"));
|
||||
}
|
||||
private SaxGolfUsgaFacility GetUsgaFacility(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
long count = GetUsgaFacilityCount(filter);
|
||||
if (count == 0) return null;
|
||||
if (count != 1)
|
||||
{
|
||||
SetErrorState("Multiple items found");
|
||||
return null;
|
||||
}
|
||||
SaxGolfUsgaFacility usgaFacility = null;
|
||||
// Query data.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
Golf_UsgaFacility_Db dbUsgaFacility = new Golf_UsgaFacility_Db(ReferenceDbInfo);
|
||||
dbUsgaFacility.PopulateFrom(dbCommand, aliasUsgaFacility, filter);
|
||||
usgaFacility = CreateUsgaFacility(dbUsgaFacility);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SetErrorState("Database query exception");
|
||||
SaLogger.Warn(GetType().Name + ".GetUsgaFacility\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc));
|
||||
}
|
||||
}
|
||||
return usgaFacility;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate item.
|
||||
public override bool IsValidUsgaFacilityData(SaxGolfUsgaFacility.Data data, SaxGolfUsgaFacility.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidUsgaFacilityData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert item.
|
||||
public override bool InsertUsgaFacility(SaxGolfUsgaFacility usgaFacility, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".InsertUsgaFacility";
|
||||
ClearErrorState();
|
||||
if (!IsValidUsgaFacility(usgaFacility)) return false;
|
||||
if (SysId.IsValid(usgaFacility.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
Golf_UsgaFacility_Db dbUsgaFacility = new Golf_UsgaFacility_Db(ReferenceDbInfo);
|
||||
PopulateTo(dbUsgaFacility, usgaFacility, dbUpdateInfo);
|
||||
if (Golf_UsgaFacility_Db.FieldsNonId.Contains("Id"))
|
||||
{
|
||||
// Generate next Id.
|
||||
dbUsgaFacility._Id = ReferenceDatabase.GetNextIdFromTable("UsgaFacility");
|
||||
}
|
||||
dbUsgaFacility.ExecuteInsertCommand(dbCommand);
|
||||
usgaFacility.Id = new SysId(dbUsgaFacility._Id);
|
||||
usgaFacility.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(usgaFacility).Concat(": ").Concat("", "\n\t"));
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update item.
|
||||
public override bool UpdateUsgaFacility(SaxGolfUsgaFacility usgaFacility, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".UpdateUsgaFacility";
|
||||
ClearErrorState();
|
||||
if (!IsValidUsgaFacility(usgaFacility)) return false;
|
||||
if (!SysId.IsValid(usgaFacility.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
if (!usgaFacility.Changed)
|
||||
{
|
||||
if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(usgaFacility).Concat(": ").Concat("", "\n\t"));
|
||||
return true;
|
||||
}
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
// Retrieve item.
|
||||
dbConnection.Open();
|
||||
Golf_UsgaFacility_Db dbUsgaFacility = new Golf_UsgaFacility_Db(ReferenceDbInfo);
|
||||
dbUsgaFacility.PopulateFrom(dbCommand, aliasUsgaFacility, "Id=" + SysId.ToString(usgaFacility.Id));
|
||||
// ToDo SaxUpdateLogItemMonitor_UsgaFacility updateLogMonitor = new SaxUpdateLogItemMonitor_UsgaFacility(SessionContext, CreateUsgaFacility(dbUsgaFacility), dbUpdateInfo);
|
||||
// Update item.
|
||||
PopulateTo(dbUsgaFacility, usgaFacility, dbUpdateInfo);
|
||||
dbUsgaFacility.ExecuteUpdateCommand(dbCommand);
|
||||
usgaFacility.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Updated. " + GetLogProperties(usgaFacility).Concat(": ").Concat("", "\n\t"));
|
||||
// Record updates.
|
||||
// ToDo updateLogMonitor.RecordUpdatedValues(usgaFacility);
|
||||
// ToDo updateLogMonitor.LogUpdates();
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete item.
|
||||
public override bool UsgaFacilityCanBeDeleted(SaxGolfUsgaFacility usgaFacility)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.UsgaFacilityCanBeDeleted(usgaFacility)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteUsgaFacility(SaxGolfUsgaFacility usgaFacility, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".DeleteUsgaFacility";
|
||||
ClearErrorState();
|
||||
if (!UsgaFacilityCanBeDeleted(usgaFacility)) return false;
|
||||
|
||||
// User Roles are logically deleted by changing the status.
|
||||
usgaFacility.Status = SaStatus.Deleted;
|
||||
return UpdateUsgaFacility(usgaFacility, dbUpdateInfo);
|
||||
|
||||
/*
|
||||
* Physical deletion.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
// Retrieve item.
|
||||
dbConnection.Open();
|
||||
Golf_UsgaFacility_Db dbUsgaFacility = new Golf_UsgaFacility_Db(ReferenceDbInfo);
|
||||
dbUsgaFacility.PopulateFrom(dbCommand, aliasUsgaFacility, "Id=" + usgaFacility.Id.ToString());
|
||||
// Delete item.
|
||||
dbCommand.CommandType = System.Data.CommandType.Text;
|
||||
dbCommand.CommandText = "DELETE FROM " + SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility) + " WHERE Id=" + SysId.ToString(usgaFacility.Id) + ";";
|
||||
dbCommand.ExecuteNonQuery();
|
||||
usgaFacility.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Deleted. " + GetLogProperties(usgaFacility).Concat(": ").Concat("", "\n\t"));
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
*/
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo(Golf_UsgaFacility_Db dbUsgaFacility, SaxGolfUsgaFacility usgaFacility, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
dbUsgaFacility._Id = SysId.ToLong(usgaFacility.Id);
|
||||
dbUsgaFacility._ProvinceId = SysId.ToInt(usgaFacility.ProvinceId);
|
||||
dbUsgaFacility._FacilityId = SysId.ToLong(usgaFacility.FacilityId);
|
||||
dbUsgaFacility._FacilityName = usgaFacility.FacilityName;
|
||||
// Common.
|
||||
dbUsgaFacility._Notes = usgaFacility.Notes;
|
||||
dbUsgaFacility._Status = SacsSystem.GetStatusCode(usgaFacility.Status);
|
||||
dbUsgaFacility._Flags = (short)usgaFacility.Flags;
|
||||
if (!SysId.IsValid(usgaFacility.Id))
|
||||
{
|
||||
dbUsgaFacility._CreateOn = DateTime.Now;
|
||||
dbUsgaFacility._CreateBy = dbUpdateInfo.UserId.ToInt();
|
||||
dbUsgaFacility._CreateHost = dbUpdateInfo.Host;
|
||||
}
|
||||
dbUsgaFacility._UpdateOn = DateTime.Now;
|
||||
dbUsgaFacility._UpdateBy = dbUpdateInfo.UserId.ToInt();
|
||||
dbUsgaFacility._UpdateHost = dbUpdateInfo.Host;
|
||||
}
|
||||
private void PopulateFrom(Golf_UsgaFacility_Db dbUsgaFacility, SaxGolfUsgaFacility usgaFacility)
|
||||
{
|
||||
//usgaFacility.Id = new SysId(dbUsgaFacility._Id);
|
||||
usgaFacility.ProvinceId = new SysId(dbUsgaFacility._ProvinceId);
|
||||
usgaFacility.FacilityId = new SysId(dbUsgaFacility._FacilityId);
|
||||
usgaFacility.FacilityName = dbUsgaFacility._FacilityName;
|
||||
// Common.
|
||||
usgaFacility.Notes = dbUsgaFacility._Notes;
|
||||
usgaFacility.Status = SacsSystem.GetStatusForCode(dbUsgaFacility._Status);
|
||||
usgaFacility.SetCreateStamp(dbUsgaFacility._CreateOn, new SysId(dbUsgaFacility._CreateBy), dbUsgaFacility._CreateHost);
|
||||
usgaFacility.SetUpdateStamp(dbUsgaFacility._UpdateOn, new SysId(dbUsgaFacility._UpdateBy), dbUsgaFacility._UpdateHost);
|
||||
usgaFacility.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Bulk updates.
|
||||
/// <summary>
|
||||
/// Bulk update USGA Facilities.
|
||||
/// <para>- Province code must be supplied to identify parent.</para>
|
||||
/// <para>- Facility Id must be supplied to act as identifier.</para>
|
||||
/// <para>- Other properties are validated as per facility rules - check error state.</para>
|
||||
/// <para>- Other properties are left as is if null.</para>
|
||||
/// </summary>
|
||||
public override bool BulkUpdateUsgaFacilities(List<UsgaFacilityData> facilities, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<UsgaFacilityData> facilitiesToUpdate = new List<UsgaFacilityData>();
|
||||
|
||||
// Validate supplied data.
|
||||
foreach (UsgaFacilityData facility in facilities)
|
||||
{
|
||||
// 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 (facility.FacilityName != null && !IsValidValue(facility.FacilityName, "name", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName))) return false;
|
||||
facilitiesToUpdate.Add(facility);
|
||||
}
|
||||
int MaxBulkUpdateBatchSize = 64;
|
||||
int batchSize = facilitiesToUpdate.Any() ? (int)Math.Ceiling(facilitiesToUpdate.Count() / Math.Ceiling((double)facilitiesToUpdate.Count() / MaxBulkUpdateBatchSize)) : MaxBulkUpdateBatchSize;
|
||||
while (facilitiesToUpdate.Any())
|
||||
{
|
||||
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 @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");
|
||||
query.Add("From");
|
||||
query.Add("(");
|
||||
query.Add("Select '' ProvinceCode, '' FacilityId, '' FacilityName");
|
||||
foreach (UsgaFacilityData facility in facilitiesToUpdate.ExtractRange(0, batchSize))
|
||||
query.Add($"Union Select '{DbQuery.FormatForCondition(facility.ProvinceCode)}', {SysId.ToString(facility.FacilityId)}, " + (facility.FacilityName != null ? $"'{DbQuery.FormatForCondition(facility.FacilityName)}'" : "Null"));
|
||||
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("When Matched And ((dFty.FacilityName Is Not Null And uFty.FacilityName!=dFty.FacilityName) Or uFty.Status!=@statusActive)");
|
||||
query.Add("Then Update Set");
|
||||
query.Add(" FacilityName=Coalesce(dFty.FacilityName,uFty.FacilityName),");
|
||||
query.Add(" Status=@statusActive,");
|
||||
query.Add(" UpdateOn=@updateOn,");
|
||||
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,Notes,Flags,Status,CreateOn,CreateBy,CreateHost,UpdateOn,UpdateBy,UpdateHost)");
|
||||
query.Add($"Values (dFty.ProvinceId,dFty.FacilityId,dFty.FacilityName,'',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")}");
|
||||
|
||||
try
|
||||
{
|
||||
int result = ReferenceDatabase.ExecuteNonQuery(query.Concat("\n"));
|
||||
if (ReferenceDatabase.HasErrorState())
|
||||
SaLogger.Warn($"{SysUtil.Fn} Error executing bulk USGA Facility update - {ReferenceDatabase.ErrorStateMessage}");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SaLogger.Warn(SysUtil.Fn + " " + ExceptionUtil.GetLogMessage(exc, " executing bulk USGA Facility update"));
|
||||
}
|
||||
}
|
||||
return HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item column definitions.
|
||||
private static readonly String aliasUsgaFacility = "UsgFty";
|
||||
private static readonly String aliasUsgaFacility_Province = "UsgFty_Prv";
|
||||
private static readonly String prefixUsgaFacility_Province = aliasUsgaFacility_Province + "_";
|
||||
private void SetUsgaFacilityColDfn
|
||||
(ColumnDfn col, String caption, int width, SaxDbDfn_Reference.ColumnIdx dbCol,
|
||||
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
|
||||
String alias = "", String prefix = "")
|
||||
{
|
||||
if (String.IsNullOrEmpty(alias) && SaxDbDfn_Reference.GetTableForColumn(dbCol) == SaxDbDfn_Reference.TableIdx.UsgaFacility)
|
||||
alias = aliasUsgaFacility;
|
||||
col.Set(caption, width, (int)dbCol, prefix + SaxDbDfn_Reference.GetColumnName(dbCol, false), SaxDbDfn_Reference.GetColumnNameQual(dbCol, alias), dataType, align);
|
||||
if (dataType == DataValue.DataType.String && dbCol != SaxDbDfn_Reference.ColumnIdx.Unknown)
|
||||
col.MaxLength = (int)SaxDbDfn_Reference.GetColTextLen(dbCol);
|
||||
}
|
||||
public override ColumnDfn GetUsgaFacilityColumnDfn(SaxGolfUsgaFacility.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
switch (columnId)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
case SaxGolfUsgaFacility.Column.Pos:
|
||||
SetUsgaFacilityColDfn(columnDfn, "Pos", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Right);
|
||||
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
|
||||
columnDfn.ReadOnly = true;
|
||||
columnDfn.Resizable = false;
|
||||
break;
|
||||
case SaxGolfUsgaFacility.Column.Id:
|
||||
SetUsgaFacilityColDfn(columnDfn, "Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Id, ColumnAlignment.Right, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-------------------------------------------------------
|
||||
case SaxGolfUsgaFacility.Column.ProvinceId:
|
||||
SetUsgaFacilityColDfn(columnDfn, "Province #", 80, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaFacility.Column.Province_Name:
|
||||
SetUsgaFacilityColDfn(columnDfn, "Province", 120, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceName, ColumnAlignment.Center, DataValue.DataType.String, aliasUsgaFacility_Province, prefixUsgaFacility_Province);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-------------------------------------------------------
|
||||
case SaxGolfUsgaFacility.Column.FacilityId:
|
||||
SetUsgaFacilityColDfn(columnDfn, "Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityId, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaFacility.Column.FacilityName:
|
||||
SetUsgaFacilityColDfn(columnDfn, "Name", 120, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Derived properties.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Common properties.
|
||||
case SaxGolfUsgaFacility.Column.Notes:
|
||||
SetUsgaFacilityColDfn(columnDfn, "Notes", 240, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Notes);
|
||||
break;
|
||||
case SaxGolfUsgaFacility.Column.Flags:
|
||||
SetUsgaFacilityColDfn(columnDfn, "Flags", 60, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
break;
|
||||
case SaxGolfUsgaFacility.Column.Status:
|
||||
SetUsgaFacilityColDfn(columnDfn, "Status", 80, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Status, ColumnAlignment.Center);
|
||||
break;
|
||||
case SaxGolfUsgaFacility.Column.Status_Desc:
|
||||
SetUsgaFacilityColDfn(columnDfn, "Status", 90, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Status, ColumnAlignment.Center);
|
||||
break;
|
||||
case SaxGolfUsgaFacility.Column.Status_Ind:
|
||||
SetUsgaFacilityColDfn(columnDfn, "Status", 80, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
|
||||
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
|
||||
break;
|
||||
case SaxGolfUsgaFacility.Column.CreateOn_Date:
|
||||
SetUsgaFacilityColDfn(columnDfn, "Created", 80, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaFacility.Column.UpdateOn_Date:
|
||||
SetUsgaFacilityColDfn(columnDfn, "Updated", 80, SaxDbDfn_Reference.ColumnIdx.UsgaFacility_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item query filter.
|
||||
public override List<string> GetUsgaFacilityQueryFilter(SaxGolfUsgaFacility.Params prm)
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// Item Ids.
|
||||
String idsIncluded = prm.IdsIncluded.Concat(",");
|
||||
if (!idsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Id, aliasUsgaFacility) + " IN (" + idsIncluded + ")");
|
||||
String idsExcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsExcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Id, aliasUsgaFacility) + " NOT IN (" + idsExcluded + ")");
|
||||
|
||||
// Countries.
|
||||
String provinceIdsIncluded = prm.ProvinceIdsIncluded.Concat(",");
|
||||
if (!provinceIdsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasUsgaFacility) + " IN (" + provinceIdsIncluded + ")");
|
||||
|
||||
if (!StringUtil.IsBlank(prm.FacilityFilter))
|
||||
{
|
||||
// Split filter into words.
|
||||
List<String> filterWords = prm.FacilityFilter.Split((char[])null).ToList();
|
||||
filterWords.RemoveDuplicatesCI();
|
||||
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 ", "(", ")"));
|
||||
}
|
||||
}
|
||||
|
||||
// Name.
|
||||
if (!StringUtil.IsEmpty(prm.FacilityNameFull))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName, aliasUsgaFacility) + "='" + DbQuery.FormatForCondition(prm.FacilityNameFull) + "'");
|
||||
if (!StringUtil.IsEmpty(prm.FacilityNamePartial))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName, aliasUsgaFacility) + " LIKE '%" + DbQuery.FormatForLike(prm.FacilityNamePartial) + "%'");
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Notes, aliasUsgaFacility) + " LIKE '%" + DbQuery.FormatForLike(prm.NotesPartial) + "%'");
|
||||
|
||||
// Status.
|
||||
if (prm.StatusCat != SaxGolfUsgaFacility.StatusCat.Any)
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Status, aliasUsgaFacility) + GetUsgaFacilityStatusCatFilterCondition(prm.StatusCat));
|
||||
|
||||
if (filter.Count < 1) filter.Add("1=1");
|
||||
return filter;
|
||||
}
|
||||
internal static String GetUsgaFacilityStatusCatFilterCondition(SaxGolfUsgaFacility.StatusCat statusCat)
|
||||
{
|
||||
if (statusCat == SaxGolfUsgaFacility.StatusCat.ActiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'";
|
||||
if (statusCat == SaxGolfUsgaFacility.StatusCat.InactiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Inactive) + "'";
|
||||
if (statusCat == SaxGolfUsgaFacility.StatusCat.NotDeleted)
|
||||
return "!='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
||||
if (statusCat == SaxGolfUsgaFacility.StatusCat.DeletedOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
||||
return "";
|
||||
}
|
||||
// Item sort columns.
|
||||
public List<String> GetUsgaFacilitySortColumns(SaxGolfUsgaFacility.Params prm)
|
||||
{
|
||||
// Sort sequence:
|
||||
List<String> sortColumnNames = new List<String>();
|
||||
foreach (var columnDfn in prm.SortColumns)
|
||||
{
|
||||
// Need to ensure correct alias used for UsgaFacility columns in case of conflict.
|
||||
String sortCol = String.Empty;
|
||||
if (SaxDbDfn_Reference.GetTableForColumn((SaxDbDfn_Reference.ColumnIdx)columnDfn.DbColumn) == SaxDbDfn_Reference.TableIdx.UsgaFacility)
|
||||
{
|
||||
sortCol = SaxDbDfn_Reference.GetColumnNameQual((SaxDbDfn_Reference.ColumnIdx)columnDfn.DbColumn, aliasUsgaFacility);
|
||||
}
|
||||
else
|
||||
{
|
||||
sortCol = columnDfn.DataName;
|
||||
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
|
||||
sortCol = columnDfn.SortDataName;
|
||||
}
|
||||
if (!sortCol.IsEmpty())
|
||||
{
|
||||
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
|
||||
sortColumnNames.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
|
||||
}
|
||||
}
|
||||
sortColumnNames.RemoveBlanks();
|
||||
if (sortColumnNames.IsEmpty())
|
||||
{
|
||||
// Default sort columns.
|
||||
sortColumnNames.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Id, aliasUsgaFacility) + " ASC");
|
||||
}
|
||||
return sortColumnNames;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item count.
|
||||
private long GetUsgaFacilityCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return ReferenceDatabase.GetRowCount(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility) + " As " + aliasUsgaFacility, filter);
|
||||
}
|
||||
public override long GetUsgaFacilityCount(SaxGolfUsgaFacility.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetUsgaFacilityCount(GetUsgaFacilityQueryFilter(prm).Concat(" AND ", "(", ")"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item list.
|
||||
public override List<SaxGolfUsgaFacility> GetUsgaFacilityList(SaxGolfUsgaFacility.Params prm)
|
||||
{
|
||||
List<SaxGolfUsgaFacility> userRoles = new List<SaxGolfUsgaFacility>();
|
||||
DbQuery qry = new DbQuery(ReferenceDatabase.DbmsType);
|
||||
qry.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasUsgaFacility);
|
||||
Golf_UsgaFacility_Db dbUsgaFacility = new Golf_UsgaFacility_Db(ReferenceDbInfo);
|
||||
qry.Columns.AddRange(dbUsgaFacility.ExistingColumnNames);
|
||||
qry.Filters.AddRange(GetUsgaFacilityQueryFilter(prm));
|
||||
qry.OrderBy.AddRange(GetUsgaFacilitySortColumns(prm));
|
||||
// Query data.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
|
||||
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
|
||||
{
|
||||
while (dbDataReader.Read())
|
||||
{
|
||||
dbUsgaFacility = new Golf_UsgaFacility_Db(ReferenceDbInfo);
|
||||
dbUsgaFacility.PopulateFrom(dbDataReader);
|
||||
userRoles.Add(CreateUsgaFacility(dbUsgaFacility));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SaLogger.Warn(GetType().Name + ".GetUsgaFacilityList\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc));
|
||||
}
|
||||
}
|
||||
return userRoles;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item query execution.
|
||||
public override DbResultSet ExecuteUsgaFacilityQuery(List<ColumnDfn> columns, SaxGolfUsgaFacility.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Construct query.
|
||||
DbQuery query = new DbQuery(ReferenceDatabase.DbmsType);
|
||||
query.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasUsgaFacility);
|
||||
|
||||
// Add columns as defined in query list.
|
||||
if (columns.HasId(SaxGolfUsgaFacility.Column.Id))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Id, aliasUsgaFacility));
|
||||
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.FacilityName))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName, aliasUsgaFacility));
|
||||
// Common properties.
|
||||
if (columns.HasId(SaxGolfUsgaFacility.Column.Notes))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Notes, aliasUsgaFacility));
|
||||
if (columns.HasId(SaxGolfUsgaFacility.Column.Flags))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Flags, aliasUsgaFacility));
|
||||
if (columns.HasId(SaxGolfUsgaFacility.Column.Status) || columns.HasId(SaxGolfUsgaFacility.Column.Status_Desc) || columns.HasId(SaxGolfUsgaFacility.Column.Status_Ind))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Status, aliasUsgaFacility));
|
||||
if (columns.HasId(SaxGolfUsgaFacility.Column.CreateOn_Date))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_CreateOn, aliasUsgaFacility));
|
||||
if (columns.HasId(SaxGolfUsgaFacility.Column.UpdateOn_Date))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_UpdateOn, aliasUsgaFacility));
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Province.
|
||||
if (hasProvinceCols)
|
||||
{
|
||||
DbQueryJoin joinProvince = new DbQueryJoin(DbJoinType.LeftOuter);
|
||||
joinProvince.Table = new StringPair(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince), aliasUsgaFacility_Province);
|
||||
joinProvince.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaFacility_Province) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasUsgaFacility));
|
||||
query.Joins.Add(joinProvince);
|
||||
List<SaxDbDfn_Reference.ColumnIdx> cols = new List<SaxDbDfn_Reference.ColumnIdx>();
|
||||
cols.Add(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceName);
|
||||
foreach (var col in cols)
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(col, aliasUsgaFacility_Province), prefixUsgaFacility_Province + SaxDbDfn_Reference.GetColumnName(col, false));
|
||||
prm.Alias_Province = aliasUsgaFacility_Province;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetUsgaFacilityQueryFilter(prm));
|
||||
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetUsgaFacilitySortColumns(prm))
|
||||
query.OrderBy.Add(sortColumn);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
//return new DbResultSet_DataTableReader(db, query.BuildQuery(prm.ResultsPaging));
|
||||
return DbResultSet_DataReader.ExecuteQuery(ReferenceDatabase, query.BuildQuery(prm.ResultsPaging));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,719 @@
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Sarand.Net.Standard.Dbas.Data;
|
||||
using Saxonite.Base.App;
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Bus;
|
||||
using Saxonite.Net.Standard.Base.Bus.Reference;
|
||||
using Saxonite.Net.Standard.Dbas.Bus.Reference;
|
||||
using Saxonite.Net.Standard.Dbas.Internal.Reference;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SaxReferenceGolfMgr_Dbas
|
||||
{
|
||||
//*******************************************************************
|
||||
// Support Mgr - User Report
|
||||
//*******************************************************************
|
||||
// Utilities.
|
||||
private List<StringPair> GetLogProperties(SaxGolfUsgaMarker usgaMarker)
|
||||
{
|
||||
return new List<StringPair>()
|
||||
{
|
||||
new StringPair("Id",SysId.ToString(usgaMarker.Id)),
|
||||
new StringPair("CourseId",SysId.ToString(usgaMarker.CourseId)),
|
||||
new StringPair("MarkerId",SysId.ToString(usgaMarker.MarkerId)),
|
||||
new StringPair("Caption",usgaMarker.Caption),
|
||||
new StringPair("Status",usgaMarker.StatusCode)
|
||||
};
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create item.
|
||||
public override SaxGolfUsgaMarker CreateUsgaMarker(SysId courseId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SaxGolfUsgaMarker_Dbas(ReferenceDatabase, null, courseId, 0);
|
||||
}
|
||||
private SaxGolfUsgaMarker_Dbas CreateUsgaMarker(Golf_UsgaMarker_Db dbUsgaMarker)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaxGolfUsgaMarker_Dbas usgaMarker = new SaxGolfUsgaMarker_Dbas(ReferenceDatabase, new SysId(dbUsgaMarker._Id), new SysId(dbUsgaMarker._CourseId), (ushort)dbUsgaMarker._Flags);
|
||||
PopulateFrom(dbUsgaMarker, usgaMarker);
|
||||
return usgaMarker;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get item.
|
||||
public override SaxGolfUsgaMarker GetUsgaMarker(SaxGolfUsgaMarker.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetUsgaMarker(GetUsgaMarkerQueryFilter(prm).Concat(" And ", "(", ")"));
|
||||
}
|
||||
private SaxGolfUsgaMarker GetUsgaMarker(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
long count = GetUsgaMarkerCount(filter);
|
||||
if (count == 0) return null;
|
||||
if (count != 1)
|
||||
{
|
||||
SetErrorState("Multiple items found");
|
||||
return null;
|
||||
}
|
||||
SaxGolfUsgaMarker usgaMarker = null;
|
||||
// Query data.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
Golf_UsgaMarker_Db dbUsgaMarker = new Golf_UsgaMarker_Db(ReferenceDbInfo);
|
||||
dbUsgaMarker.PopulateFrom(dbCommand, aliasUsgaMarker, filter);
|
||||
usgaMarker = CreateUsgaMarker(dbUsgaMarker);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SetErrorState("Database query exception");
|
||||
SaLogger.Warn(GetType().Name + ".GetUsgaMarker\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc));
|
||||
}
|
||||
}
|
||||
return usgaMarker;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate item.
|
||||
public override bool IsValidUsgaMarkerData(SaxGolfUsgaMarker.Data data, SaxGolfUsgaMarker.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidUsgaMarkerData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert item.
|
||||
public override bool InsertUsgaMarker(SaxGolfUsgaMarker usgaMarker, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".InsertUsgaMarker";
|
||||
ClearErrorState();
|
||||
if (!IsValidUsgaMarker(usgaMarker)) return false;
|
||||
if (SysId.IsValid(usgaMarker.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
Golf_UsgaMarker_Db dbUsgaMarker = new Golf_UsgaMarker_Db(ReferenceDbInfo);
|
||||
PopulateTo(dbUsgaMarker, usgaMarker, dbUpdateInfo);
|
||||
if (Golf_UsgaMarker_Db.FieldsNonId.Contains("Id"))
|
||||
{
|
||||
// Generate next Id.
|
||||
dbUsgaMarker._Id = ReferenceDatabase.GetNextIdFromTable("UsgaMarker");
|
||||
}
|
||||
dbUsgaMarker.ExecuteInsertCommand(dbCommand);
|
||||
usgaMarker.Id = new SysId(dbUsgaMarker._Id);
|
||||
usgaMarker.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(usgaMarker).Concat(": ").Concat("", "\n\t"));
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update item.
|
||||
public override bool UpdateUsgaMarker(SaxGolfUsgaMarker usgaMarker, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".UpdateUsgaMarker";
|
||||
ClearErrorState();
|
||||
if (!IsValidUsgaMarker(usgaMarker)) return false;
|
||||
if (!SysId.IsValid(usgaMarker.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
if (!usgaMarker.Changed)
|
||||
{
|
||||
if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(usgaMarker).Concat(": ").Concat("", "\n\t"));
|
||||
return true;
|
||||
}
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
// Retrieve item.
|
||||
dbConnection.Open();
|
||||
Golf_UsgaMarker_Db dbUsgaMarker = new Golf_UsgaMarker_Db(ReferenceDbInfo);
|
||||
dbUsgaMarker.PopulateFrom(dbCommand, aliasUsgaMarker, "Id=" + SysId.ToString(usgaMarker.Id));
|
||||
// ToDo SaxUpdateLogItemMonitor_UsgaMarker updateLogMonitor = new SaxUpdateLogItemMonitor_UsgaMarker(SessionContext, CreateUsgaMarker(dbUsgaMarker), dbUpdateInfo);
|
||||
// Update item.
|
||||
PopulateTo(dbUsgaMarker, usgaMarker, dbUpdateInfo);
|
||||
dbUsgaMarker.ExecuteUpdateCommand(dbCommand);
|
||||
usgaMarker.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Updated. " + GetLogProperties(usgaMarker).Concat(": ").Concat("", "\n\t"));
|
||||
// Record updates.
|
||||
// ToDo updateLogMonitor.RecordUpdatedValues(usgaMarker);
|
||||
// ToDo updateLogMonitor.LogUpdates();
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete item.
|
||||
public override bool UsgaMarkerCanBeDeleted(SaxGolfUsgaMarker usgaMarker)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.UsgaMarkerCanBeDeleted(usgaMarker)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteUsgaMarker(SaxGolfUsgaMarker usgaMarker, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".DeleteUsgaMarker";
|
||||
ClearErrorState();
|
||||
if (!UsgaMarkerCanBeDeleted(usgaMarker)) return false;
|
||||
|
||||
// User Roles are logically deleted by changing the status.
|
||||
usgaMarker.Status = SaStatus.Deleted;
|
||||
return UpdateUsgaMarker(usgaMarker, dbUpdateInfo);
|
||||
|
||||
/*
|
||||
* Physical deletion.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
// Retrieve item.
|
||||
dbConnection.Open();
|
||||
Golf_UsgaMarker_Db dbUsgaMarker = new Golf_UsgaMarker_Db(ReferenceDbInfo);
|
||||
dbUsgaMarker.PopulateFrom(dbCommand, aliasUsgaMarker, "Id=" + usgaMarker.Id.ToString());
|
||||
// Delete item.
|
||||
dbCommand.CommandType = System.Data.CommandType.Text;
|
||||
dbCommand.CommandText = "DELETE FROM " + SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaMarker) + " WHERE Id=" + SysId.ToString(usgaMarker.Id) + ";";
|
||||
dbCommand.ExecuteNonQuery();
|
||||
usgaMarker.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Deleted. " + GetLogProperties(usgaMarker).Concat(": ").Concat("", "\n\t"));
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
*/
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo(Golf_UsgaMarker_Db dbUsgaMarker, SaxGolfUsgaMarker usgaMarker, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
dbUsgaMarker._Id = SysId.ToLong(usgaMarker.Id);
|
||||
dbUsgaMarker._CourseId = SysId.ToInt(usgaMarker.CourseId);
|
||||
dbUsgaMarker._MarkerId = SysId.ToInt(usgaMarker.MarkerId);
|
||||
dbUsgaMarker._Caption = usgaMarker.Caption;
|
||||
dbUsgaMarker._Holes = usgaMarker.Holes;
|
||||
dbUsgaMarker._HolesCaption = usgaMarker.HolesCaption;
|
||||
dbUsgaMarker._Tee = usgaMarker.Tee;
|
||||
dbUsgaMarker._Gender = usgaMarker.Gender;
|
||||
dbUsgaMarker._SlopeRating = usgaMarker.SlopeRating;
|
||||
dbUsgaMarker._Par = usgaMarker.Par;
|
||||
dbUsgaMarker._CourseRating = usgaMarker.CourseRating;
|
||||
dbUsgaMarker._BogeyRating = usgaMarker.BogeyRating;
|
||||
dbUsgaMarker._Length = usgaMarker.Length;
|
||||
// Common.
|
||||
dbUsgaMarker._Notes = usgaMarker.Notes;
|
||||
dbUsgaMarker._Status = SacsSystem.GetStatusCode(usgaMarker.Status);
|
||||
dbUsgaMarker._Flags = (short)usgaMarker.Flags;
|
||||
if (!SysId.IsValid(usgaMarker.Id))
|
||||
{
|
||||
dbUsgaMarker._CreateOn = DateTime.Now;
|
||||
dbUsgaMarker._CreateBy = dbUpdateInfo.UserId.ToInt();
|
||||
dbUsgaMarker._CreateHost = dbUpdateInfo.Host;
|
||||
}
|
||||
dbUsgaMarker._UpdateOn = DateTime.Now;
|
||||
dbUsgaMarker._UpdateBy = dbUpdateInfo.UserId.ToInt();
|
||||
dbUsgaMarker._UpdateHost = dbUpdateInfo.Host;
|
||||
}
|
||||
private void PopulateFrom(Golf_UsgaMarker_Db dbUsgaMarker, SaxGolfUsgaMarker usgaMarker)
|
||||
{
|
||||
//usgaMarker.Id = new SysId(dbUsgaMarker._Id);
|
||||
usgaMarker.CourseId = new SysId(dbUsgaMarker._CourseId);
|
||||
usgaMarker.MarkerId = new SysId(dbUsgaMarker._MarkerId);
|
||||
usgaMarker.Caption = dbUsgaMarker._Caption;
|
||||
usgaMarker.Holes = dbUsgaMarker._Holes;
|
||||
usgaMarker.HolesCaption = dbUsgaMarker._HolesCaption;
|
||||
usgaMarker.Tee = dbUsgaMarker._Tee;
|
||||
usgaMarker.Gender = dbUsgaMarker._Gender;
|
||||
usgaMarker.SlopeRating = dbUsgaMarker._SlopeRating;
|
||||
usgaMarker.Par = dbUsgaMarker._Par;
|
||||
usgaMarker.CourseRating = dbUsgaMarker._CourseRating;
|
||||
usgaMarker.BogeyRating = dbUsgaMarker._BogeyRating;
|
||||
usgaMarker.Length = dbUsgaMarker._Length;
|
||||
// Common.
|
||||
usgaMarker.Notes = dbUsgaMarker._Notes;
|
||||
usgaMarker.Status = SacsSystem.GetStatusForCode(dbUsgaMarker._Status);
|
||||
usgaMarker.SetCreateStamp(dbUsgaMarker._CreateOn, new SysId(dbUsgaMarker._CreateBy), dbUsgaMarker._CreateHost);
|
||||
usgaMarker.SetUpdateStamp(dbUsgaMarker._UpdateOn, new SysId(dbUsgaMarker._UpdateBy), dbUsgaMarker._UpdateHost);
|
||||
usgaMarker.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Bulk updates.
|
||||
/// <summary>
|
||||
/// Bulk update USGA Markers.
|
||||
/// <para>- Course Id must be supplied to identify parent.</para>
|
||||
/// <para>- Marker Id must be supplied to act as identifier.</para>
|
||||
/// <para>- Other properties are validated as per marker rules - check error state.</para>
|
||||
/// <para>- Other properties are left as is if null.</para>
|
||||
/// </summary>
|
||||
public override bool BulkUpdateUsgaMarkers(List<UsgaMarkerData> markers, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<UsgaMarkerData> markersToUpdate = new List<UsgaMarkerData>();
|
||||
|
||||
// Validate supplied data.
|
||||
foreach (UsgaMarkerData marker in markers)
|
||||
{
|
||||
// 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");
|
||||
if (!SysId.IsValid(marker.MarkerId)) return SetErrorState("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.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");
|
||||
if (marker.CourseRating < 1) return SetErrorState("Course rating must be supplied");
|
||||
markersToUpdate.Add(marker);
|
||||
}
|
||||
int MaxBulkUpdateBatchSize = 64;
|
||||
int batchSize = markersToUpdate.Any() ? (int)Math.Ceiling(markersToUpdate.Count() / Math.Ceiling((double)markersToUpdate.Count() / MaxBulkUpdateBatchSize)) : MaxBulkUpdateBatchSize;
|
||||
while (markersToUpdate.Any())
|
||||
{
|
||||
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 @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("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");
|
||||
foreach (UsgaMarkerData marker in markersToUpdate.ExtractRange(0, batchSize))
|
||||
query.Add($"Union Select {marker.CourseId},{marker.MarkerId}," +
|
||||
(marker.Caption != null ? $"'{DbQuery.FormatForCondition(marker.Caption)}'" : "Null") + "," +
|
||||
$"{marker.Holes}," +
|
||||
(marker.HolesCaption != null ? $"'{DbQuery.FormatForCondition(marker.HolesCaption)}'" : "Null") + "," +
|
||||
(marker.Tee != null ? $"'{DbQuery.FormatForCondition(marker.Tee)}'" : "Null") + "," +
|
||||
(marker.Gender != null ? $"'{DbQuery.FormatForCondition(marker.Gender)}'" : "Null") + "," +
|
||||
$"{marker.SlopeRating}," +
|
||||
$"{marker.Par}," +
|
||||
$"{marker.CourseRating}," +
|
||||
(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(") dMkr");
|
||||
query.Add("On uMkr.CourseId=dMkr.CourseId And uMkr.MarkerId=dMkr.MarkerId");
|
||||
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),");
|
||||
query.Add(" Holes=Coalesce(dMkr.Holes,uMkr.Holes),");
|
||||
query.Add(" HolesCaption=Coalesce(dMkr.HolesCaption,uMkr.HolesCaption),");
|
||||
query.Add(" Tee=Coalesce(dMkr.Tee,uMkr.Tee),");
|
||||
query.Add(" Gender=Coalesce(dMkr.Gender,uMkr.Gender),");
|
||||
query.Add(" SlopeRating=Coalesce(dMkr.SlopeRating,uMkr.SlopeRating),");
|
||||
query.Add(" Par=Coalesce(dMkr.Par,uMkr.Par),");
|
||||
query.Add(" CourseRating=Coalesce(dMkr.CourseRating,uMkr.CourseRating),");
|
||||
query.Add(" BogeyRating=Coalesce(dMkr.BogeyRating,uMkr.BogeyRating),");
|
||||
query.Add(" Length=Coalesce(dMkr.Length,uMkr.Length),");
|
||||
query.Add(" Status=@statusActive,");
|
||||
query.Add(" UpdateOn=@updateOn,");
|
||||
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(";");
|
||||
//SaLogger.Info($"{SysUtil.Fn} Bulk USGA Marker update query:\n\t{query.Concat("\n\t")}");
|
||||
|
||||
try
|
||||
{
|
||||
int result = ReferenceDatabase.ExecuteNonQuery(query.Concat("\n"));
|
||||
if (ReferenceDatabase.HasErrorState())
|
||||
SaLogger.Warn($"{SysUtil.Fn} Error executing bulk USGA Marker update - {ReferenceDatabase.ErrorStateMessage}");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SaLogger.Warn(SysUtil.Fn + " " + ExceptionUtil.GetLogMessage(exc, " executing bulk USGA Marker update"));
|
||||
}
|
||||
}
|
||||
return HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item column definitions.
|
||||
private static readonly String aliasUsgaMarker = "UsgMkr";
|
||||
private static readonly String aliasUsgaMarker_Course = "UsgMkr_Cty";
|
||||
private static readonly String prefixUsgaMarker_Course = aliasUsgaMarker_Course + "_";
|
||||
private void SetUsgaMarkerColDfn
|
||||
(ColumnDfn col, String caption, int width, SaxDbDfn_Reference.ColumnIdx dbCol,
|
||||
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
|
||||
String alias = "", String prefix = "")
|
||||
{
|
||||
if (String.IsNullOrEmpty(alias) && SaxDbDfn_Reference.GetTableForColumn(dbCol) == SaxDbDfn_Reference.TableIdx.UsgaMarker)
|
||||
alias = aliasUsgaMarker;
|
||||
col.Set(caption, width, (int)dbCol, prefix + SaxDbDfn_Reference.GetColumnName(dbCol, false), SaxDbDfn_Reference.GetColumnNameQual(dbCol, alias), dataType, align);
|
||||
if (dataType == DataValue.DataType.String && dbCol != SaxDbDfn_Reference.ColumnIdx.Unknown)
|
||||
col.MaxLength = (int)SaxDbDfn_Reference.GetColTextLen(dbCol);
|
||||
}
|
||||
public override ColumnDfn GetUsgaMarkerColumnDfn(SaxGolfUsgaMarker.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
switch (columnId)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
case SaxGolfUsgaMarker.Column.Pos:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Pos", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Right);
|
||||
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
|
||||
columnDfn.ReadOnly = true;
|
||||
columnDfn.Resizable = false;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.Id:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Id, ColumnAlignment.Right, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-------------------------------------------------------
|
||||
case SaxGolfUsgaMarker.Column.CourseId:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Course #", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_CourseId, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.Course_Name:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Course", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CourseName, ColumnAlignment.Center, DataValue.DataType.String, aliasUsgaMarker_Course, prefixUsgaMarker_Course);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-------------------------------------------------------
|
||||
case SaxGolfUsgaMarker.Column.MarkerId:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_MarkerId, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.Caption:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Caption", 160, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Caption);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.Holes:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Holes", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Holes, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.HolesCaption:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Holes", 100, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_HolesCaption, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.Tee:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Tee", 100, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Tee, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.Gender:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Gender", 100, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Gender, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.SlopeRating:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Slope Rating", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_SlopeRating, ColumnAlignment.Center, DataValue.DataType.Decimal);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.Par:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Par", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Par, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.CourseRating:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Course Rating", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_CourseRating, ColumnAlignment.Center, DataValue.DataType.Decimal);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.BogeyRating:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Bogey Rating", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_BogeyRating, ColumnAlignment.Center, DataValue.DataType.Decimal);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.Length:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Length", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Length, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Derived properties.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Common properties.
|
||||
case SaxGolfUsgaMarker.Column.Notes:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Notes", 240, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Notes);
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.Flags:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Flags", 60, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.Status:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Status", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Status, ColumnAlignment.Center);
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.Status_Desc:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Status", 90, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Status, ColumnAlignment.Center);
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.Status_Ind:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Status", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
|
||||
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.CreateOn_Date:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Created", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaMarker.Column.UpdateOn_Date:
|
||||
SetUsgaMarkerColDfn(columnDfn, "Updated", 80, SaxDbDfn_Reference.ColumnIdx.UsgaMarker_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item query filter.
|
||||
public override List<string> GetUsgaMarkerQueryFilter(SaxGolfUsgaMarker.Params prm)
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// Item Ids.
|
||||
String idsIncluded = prm.IdsIncluded.Concat(",");
|
||||
if (!idsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Id, aliasUsgaMarker) + " IN (" + idsIncluded + ")");
|
||||
String idsExcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsExcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Id, aliasUsgaMarker) + " NOT IN (" + idsExcluded + ")");
|
||||
|
||||
// Countries.
|
||||
String courseIdsIncluded = prm.CourseIdsIncluded.Concat(",");
|
||||
if (!courseIdsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_CourseId, aliasUsgaMarker) + " IN (" + courseIdsIncluded + ")");
|
||||
|
||||
if (!StringUtil.IsBlank(prm.MarkerFilter))
|
||||
{
|
||||
// Split filter into words.
|
||||
List<String> filterWords = prm.MarkerFilter.Split((char[])null).ToList();
|
||||
filterWords.RemoveDuplicatesCI();
|
||||
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 ", "(", ")"));
|
||||
}
|
||||
}
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Notes, aliasUsgaMarker) + " LIKE '%" + DbQuery.FormatForLike(prm.NotesPartial) + "%'");
|
||||
|
||||
// Status.
|
||||
if (prm.StatusCat != SaxGolfUsgaMarker.StatusCat.Any)
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Status, aliasUsgaMarker) + GetUsgaMarkerStatusCatFilterCondition(prm.StatusCat));
|
||||
|
||||
if (filter.Count < 1) filter.Add("1=1");
|
||||
return filter;
|
||||
}
|
||||
internal static String GetUsgaMarkerStatusCatFilterCondition(SaxGolfUsgaMarker.StatusCat statusCat)
|
||||
{
|
||||
if (statusCat == SaxGolfUsgaMarker.StatusCat.ActiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'";
|
||||
if (statusCat == SaxGolfUsgaMarker.StatusCat.InactiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Inactive) + "'";
|
||||
if (statusCat == SaxGolfUsgaMarker.StatusCat.NotDeleted)
|
||||
return "!='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
||||
if (statusCat == SaxGolfUsgaMarker.StatusCat.DeletedOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
||||
return "";
|
||||
}
|
||||
// Item sort columns.
|
||||
public List<String> GetUsgaMarkerSortColumns(SaxGolfUsgaMarker.Params prm)
|
||||
{
|
||||
// Sort sequence:
|
||||
List<String> sortColumnNames = new List<String>();
|
||||
foreach (var columnDfn in prm.SortColumns)
|
||||
{
|
||||
// Need to ensure correct alias used for UsgaMarker columns in case of conflict.
|
||||
String sortCol = String.Empty;
|
||||
if (SaxDbDfn_Reference.GetTableForColumn((SaxDbDfn_Reference.ColumnIdx)columnDfn.DbColumn) == SaxDbDfn_Reference.TableIdx.UsgaMarker)
|
||||
{
|
||||
sortCol = SaxDbDfn_Reference.GetColumnNameQual((SaxDbDfn_Reference.ColumnIdx)columnDfn.DbColumn, aliasUsgaMarker);
|
||||
}
|
||||
else
|
||||
{
|
||||
sortCol = columnDfn.DataName;
|
||||
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
|
||||
sortCol = columnDfn.SortDataName;
|
||||
}
|
||||
if (!sortCol.IsEmpty())
|
||||
{
|
||||
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
|
||||
sortColumnNames.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
|
||||
}
|
||||
}
|
||||
sortColumnNames.RemoveBlanks();
|
||||
if (sortColumnNames.IsEmpty())
|
||||
{
|
||||
// Default sort columns.
|
||||
sortColumnNames.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Id, aliasUsgaMarker) + " ASC");
|
||||
}
|
||||
return sortColumnNames;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item count.
|
||||
private long GetUsgaMarkerCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return ReferenceDatabase.GetRowCount(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaMarker) + " As " + aliasUsgaMarker, filter);
|
||||
}
|
||||
public override long GetUsgaMarkerCount(SaxGolfUsgaMarker.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetUsgaMarkerCount(GetUsgaMarkerQueryFilter(prm).Concat(" AND ", "(", ")"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item list.
|
||||
public override List<SaxGolfUsgaMarker> GetUsgaMarkerList(SaxGolfUsgaMarker.Params prm)
|
||||
{
|
||||
List<SaxGolfUsgaMarker> userRoles = new List<SaxGolfUsgaMarker>();
|
||||
DbQuery qry = new DbQuery(ReferenceDatabase.DbmsType);
|
||||
qry.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaMarker), aliasUsgaMarker);
|
||||
Golf_UsgaMarker_Db dbUsgaMarker = new Golf_UsgaMarker_Db(ReferenceDbInfo);
|
||||
qry.Columns.AddRange(dbUsgaMarker.ExistingColumnNames);
|
||||
qry.Filters.AddRange(GetUsgaMarkerQueryFilter(prm));
|
||||
qry.OrderBy.AddRange(GetUsgaMarkerSortColumns(prm));
|
||||
// Query data.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
|
||||
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
|
||||
{
|
||||
while (dbDataReader.Read())
|
||||
{
|
||||
dbUsgaMarker = new Golf_UsgaMarker_Db(ReferenceDbInfo);
|
||||
dbUsgaMarker.PopulateFrom(dbDataReader);
|
||||
userRoles.Add(CreateUsgaMarker(dbUsgaMarker));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SaLogger.Warn(GetType().Name + ".GetUsgaMarkerList\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc));
|
||||
}
|
||||
}
|
||||
return userRoles;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item query execution.
|
||||
public override DbResultSet ExecuteUsgaMarkerQuery(List<ColumnDfn> columns, SaxGolfUsgaMarker.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Construct query.
|
||||
DbQuery query = new DbQuery(ReferenceDatabase.DbmsType);
|
||||
query.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaMarker), aliasUsgaMarker);
|
||||
|
||||
// Add columns as defined in query list.
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.Id))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Id, aliasUsgaMarker));
|
||||
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.Caption))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Caption, aliasUsgaMarker));
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.Holes))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Holes, aliasUsgaMarker));
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.HolesCaption))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_HolesCaption, aliasUsgaMarker));
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.Tee))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Tee, aliasUsgaMarker));
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.Gender))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Gender, aliasUsgaMarker));
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.SlopeRating))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_SlopeRating, aliasUsgaMarker));
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.Par))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Par, aliasUsgaMarker));
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.CourseRating))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_CourseRating, aliasUsgaMarker));
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.BogeyRating))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_BogeyRating, aliasUsgaMarker));
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.Length))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Length, aliasUsgaMarker));
|
||||
// Common properties.
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.Notes))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Notes, aliasUsgaMarker));
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.Flags))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Flags, aliasUsgaMarker));
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.Status) || columns.HasId(SaxGolfUsgaMarker.Column.Status_Desc) || columns.HasId(SaxGolfUsgaMarker.Column.Status_Ind))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Status, aliasUsgaMarker));
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.CreateOn_Date))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_CreateOn, aliasUsgaMarker));
|
||||
if (columns.HasId(SaxGolfUsgaMarker.Column.UpdateOn_Date))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_UpdateOn, aliasUsgaMarker));
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Course.
|
||||
if (hasCourseCols)
|
||||
{
|
||||
DbQueryJoin joinCourse = new DbQueryJoin(DbJoinType.LeftOuter);
|
||||
joinCourse.Table = new StringPair(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCourse), aliasUsgaMarker_Course);
|
||||
joinCourse.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Id, aliasUsgaMarker_Course) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_CourseId, aliasUsgaMarker));
|
||||
query.Joins.Add(joinCourse);
|
||||
List<SaxDbDfn_Reference.ColumnIdx> cols = new List<SaxDbDfn_Reference.ColumnIdx>();
|
||||
cols.Add(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_CourseName);
|
||||
foreach (var col in cols)
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(col, aliasUsgaMarker_Course), prefixUsgaMarker_Course + SaxDbDfn_Reference.GetColumnName(col, false));
|
||||
prm.Alias_Course = aliasUsgaMarker_Course;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetUsgaMarkerQueryFilter(prm));
|
||||
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetUsgaMarkerSortColumns(prm))
|
||||
query.OrderBy.Add(sortColumn);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
//return new DbResultSet_DataTableReader(db, query.BuildQuery(prm.ResultsPaging));
|
||||
return DbResultSet_DataReader.ExecuteQuery(ReferenceDatabase, query.BuildQuery(prm.ResultsPaging));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,630 @@
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Sarand.Net.Standard.Dbas.Data;
|
||||
using Saxonite.Base.App;
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Bus;
|
||||
using Saxonite.Net.Standard.Base.Bus.Reference;
|
||||
using Saxonite.Net.Standard.Dbas.Bus.Reference;
|
||||
using Saxonite.Net.Standard.Dbas.Internal.Reference;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SaxReferenceGolfMgr_Dbas
|
||||
{
|
||||
//*******************************************************************
|
||||
// Support Mgr - User Report
|
||||
//*******************************************************************
|
||||
// Utilities.
|
||||
private List<StringPair> GetLogProperties(SaxGolfUsgaProvince usgaProvince)
|
||||
{
|
||||
return new List<StringPair>()
|
||||
{
|
||||
new StringPair("Id",SysId.ToString(usgaProvince.Id)),
|
||||
new StringPair("CountryId",SysId.ToString(usgaProvince.CountryId)),
|
||||
new StringPair("ProvinceCode",usgaProvince.ProvinceCode),
|
||||
new StringPair("ProvinceName",usgaProvince.ProvinceName),
|
||||
new StringPair("Status",usgaProvince.StatusCode)
|
||||
};
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create item.
|
||||
public override SaxGolfUsgaProvince CreateUsgaProvince(SysId countryId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SaxGolfUsgaProvince_Dbas(ReferenceDatabase, null, countryId, 0);
|
||||
}
|
||||
private SaxGolfUsgaProvince_Dbas CreateUsgaProvince(Golf_UsgaProvince_Db dbUsgaProvince)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaxGolfUsgaProvince_Dbas usgaProvince = new SaxGolfUsgaProvince_Dbas(ReferenceDatabase, new SysId(dbUsgaProvince._Id), new SysId(dbUsgaProvince._CountryId), (ushort)dbUsgaProvince._Flags);
|
||||
PopulateFrom(dbUsgaProvince, usgaProvince);
|
||||
return usgaProvince;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get item.
|
||||
public override SaxGolfUsgaProvince GetUsgaProvince(SaxGolfUsgaProvince.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetUsgaProvince(GetUsgaProvinceQueryFilter(prm).Concat(" And ", "(", ")"));
|
||||
}
|
||||
private SaxGolfUsgaProvince GetUsgaProvince(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
long count = GetUsgaProvinceCount(filter);
|
||||
if (count == 0) return null;
|
||||
if (count != 1)
|
||||
{
|
||||
SetErrorState("Multiple items found");
|
||||
return null;
|
||||
}
|
||||
SaxGolfUsgaProvince usgaProvince = null;
|
||||
// Query data.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
Golf_UsgaProvince_Db dbUsgaProvince = new Golf_UsgaProvince_Db(ReferenceDbInfo);
|
||||
dbUsgaProvince.PopulateFrom(dbCommand, aliasUsgaProvince, filter);
|
||||
usgaProvince = CreateUsgaProvince(dbUsgaProvince);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SetErrorState("Database query exception");
|
||||
SaLogger.Warn(GetType().Name + ".GetUsgaProvince\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc));
|
||||
}
|
||||
}
|
||||
return usgaProvince;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate item.
|
||||
public override bool IsValidUsgaProvinceData(SaxGolfUsgaProvince.Data data, SaxGolfUsgaProvince.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidUsgaProvinceData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert item.
|
||||
public override bool InsertUsgaProvince(SaxGolfUsgaProvince usgaProvince, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".InsertUsgaProvince";
|
||||
ClearErrorState();
|
||||
if (!IsValidUsgaProvince(usgaProvince)) return false;
|
||||
if (SysId.IsValid(usgaProvince.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
Golf_UsgaProvince_Db dbUsgaProvince = new Golf_UsgaProvince_Db(ReferenceDbInfo);
|
||||
PopulateTo(dbUsgaProvince, usgaProvince, dbUpdateInfo);
|
||||
if (Golf_UsgaProvince_Db.FieldsNonId.Contains("Id"))
|
||||
{
|
||||
// Generate next Id.
|
||||
dbUsgaProvince._Id = ReferenceDatabase.GetNextIdFromTable("UsgaProvince");
|
||||
}
|
||||
dbUsgaProvince.ExecuteInsertCommand(dbCommand);
|
||||
usgaProvince.Id = new SysId(dbUsgaProvince._Id);
|
||||
usgaProvince.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Inserted. " + GetLogProperties(usgaProvince).Concat(": ").Concat("", "\n\t"));
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update item.
|
||||
public override bool UpdateUsgaProvince(SaxGolfUsgaProvince usgaProvince, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".UpdateUsgaProvince";
|
||||
ClearErrorState();
|
||||
if (!IsValidUsgaProvince(usgaProvince)) return false;
|
||||
if (!SysId.IsValid(usgaProvince.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
if (!usgaProvince.Changed)
|
||||
{
|
||||
if (DebugMode) SaLogger.Debug(fn + " Data not changed. " + GetLogProperties(usgaProvince).Concat(": ").Concat("", "\n\t"));
|
||||
return true;
|
||||
}
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
// Retrieve item.
|
||||
dbConnection.Open();
|
||||
Golf_UsgaProvince_Db dbUsgaProvince = new Golf_UsgaProvince_Db(ReferenceDbInfo);
|
||||
dbUsgaProvince.PopulateFrom(dbCommand, aliasUsgaProvince, "Id=" + SysId.ToString(usgaProvince.Id));
|
||||
// ToDo SaxUpdateLogItemMonitor_UsgaProvince updateLogMonitor = new SaxUpdateLogItemMonitor_UsgaProvince(SessionContext, CreateUsgaProvince(dbUsgaProvince), dbUpdateInfo);
|
||||
// Update item.
|
||||
PopulateTo(dbUsgaProvince, usgaProvince, dbUpdateInfo);
|
||||
dbUsgaProvince.ExecuteUpdateCommand(dbCommand);
|
||||
usgaProvince.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Updated. " + GetLogProperties(usgaProvince).Concat(": ").Concat("", "\n\t"));
|
||||
// Record updates.
|
||||
// ToDo updateLogMonitor.RecordUpdatedValues(usgaProvince);
|
||||
// ToDo updateLogMonitor.LogUpdates();
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete item.
|
||||
public override bool UsgaProvinceCanBeDeleted(SaxGolfUsgaProvince usgaProvince)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.UsgaProvinceCanBeDeleted(usgaProvince)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteUsgaProvince(SaxGolfUsgaProvince usgaProvince, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
String fn = GetType().Name + ".DeleteUsgaProvince";
|
||||
ClearErrorState();
|
||||
if (!UsgaProvinceCanBeDeleted(usgaProvince)) return false;
|
||||
|
||||
// User Roles are logically deleted by changing the status.
|
||||
usgaProvince.Status = SaStatus.Deleted;
|
||||
return UpdateUsgaProvince(usgaProvince, dbUpdateInfo);
|
||||
|
||||
/*
|
||||
* Physical deletion.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
// Retrieve item.
|
||||
dbConnection.Open();
|
||||
Golf_UsgaProvince_Db dbUsgaProvince = new Golf_UsgaProvince_Db(ReferenceDbInfo);
|
||||
dbUsgaProvince.PopulateFrom(dbCommand, aliasUsgaProvince, "Id=" + usgaProvince.Id.ToString());
|
||||
// Delete item.
|
||||
dbCommand.CommandType = System.Data.CommandType.Text;
|
||||
dbCommand.CommandText = "DELETE FROM " + SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince) + " WHERE Id=" + SysId.ToString(usgaProvince.Id) + ";";
|
||||
dbCommand.ExecuteNonQuery();
|
||||
usgaProvince.Changed = false;
|
||||
if (DebugMode) SaLogger.Debug(fn + " Deleted. " + GetLogProperties(usgaProvince).Concat(": ").Concat("", "\n\t"));
|
||||
}
|
||||
catch (Exception exc) { SetErrorState(exc.Message); }
|
||||
}
|
||||
return !HasErrorState();
|
||||
*/
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo(Golf_UsgaProvince_Db dbUsgaProvince, SaxGolfUsgaProvince usgaProvince, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
dbUsgaProvince._Id = SysId.ToLong(usgaProvince.Id);
|
||||
dbUsgaProvince._CountryId = SysId.ToInt(usgaProvince.CountryId);
|
||||
dbUsgaProvince._ProvinceCode = usgaProvince.ProvinceCode;
|
||||
dbUsgaProvince._EntProvinceCode = usgaProvince.EntProvinceCode;
|
||||
dbUsgaProvince._ProvinceName = usgaProvince.ProvinceName;
|
||||
// Common.
|
||||
dbUsgaProvince._Notes = usgaProvince.Notes;
|
||||
dbUsgaProvince._Status = SacsSystem.GetStatusCode(usgaProvince.Status);
|
||||
dbUsgaProvince._Flags = (short)usgaProvince.Flags;
|
||||
if (!SysId.IsValid(usgaProvince.Id))
|
||||
{
|
||||
dbUsgaProvince._CreateOn = DateTime.Now;
|
||||
dbUsgaProvince._CreateBy = dbUpdateInfo.UserId.ToInt();
|
||||
dbUsgaProvince._CreateHost = dbUpdateInfo.Host;
|
||||
}
|
||||
dbUsgaProvince._UpdateOn = DateTime.Now;
|
||||
dbUsgaProvince._UpdateBy = dbUpdateInfo.UserId.ToInt();
|
||||
dbUsgaProvince._UpdateHost = dbUpdateInfo.Host;
|
||||
}
|
||||
private void PopulateFrom(Golf_UsgaProvince_Db dbUsgaProvince, SaxGolfUsgaProvince usgaProvince)
|
||||
{
|
||||
//usgaProvince.Id = new SysId(dbUsgaProvince._Id);
|
||||
usgaProvince.CountryId = new SysId(dbUsgaProvince._CountryId);
|
||||
usgaProvince.ProvinceCode = dbUsgaProvince._ProvinceCode;
|
||||
usgaProvince.EntProvinceCode = dbUsgaProvince._EntProvinceCode;
|
||||
usgaProvince.ProvinceName = dbUsgaProvince._ProvinceName;
|
||||
// Common.
|
||||
usgaProvince.Notes = dbUsgaProvince._Notes;
|
||||
usgaProvince.Status = SacsSystem.GetStatusForCode(dbUsgaProvince._Status);
|
||||
usgaProvince.SetCreateStamp(dbUsgaProvince._CreateOn, new SysId(dbUsgaProvince._CreateBy), dbUsgaProvince._CreateHost);
|
||||
usgaProvince.SetUpdateStamp(dbUsgaProvince._UpdateOn, new SysId(dbUsgaProvince._UpdateBy), dbUsgaProvince._UpdateHost);
|
||||
usgaProvince.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Bulk updates.
|
||||
/// <summary>
|
||||
/// Bulk update USGA Provinces.
|
||||
/// <para>- Country code must be supplied to identify parent.</para>
|
||||
/// <para>- Province code must be supplied to act as identifier.</para>
|
||||
/// <para>- Other properties are validated as per province rules - check error state.</para>
|
||||
/// <para>- Other properties are left as is if null.</para>
|
||||
/// </summary>
|
||||
public override bool BulkUpdateUsgaProvinces(List<UsgaProvinceData> provinces, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<UsgaProvinceData> provincesToUpdate = new List<UsgaProvinceData>();
|
||||
|
||||
// Validate supplied data.
|
||||
foreach (UsgaProvinceData province in provinces)
|
||||
{
|
||||
// Validate province properties.
|
||||
// Country and Province Codes are mandatory, other values only validated if non-null.
|
||||
if (!IsValidValue(province.CountryCode, "country", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryCode), true)) return false;
|
||||
if (!IsValidValue(province.ProvinceCode, "code", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceCode), true)) return false;
|
||||
if (!IsValidValue(province.EntProvinceCode, "ENT code", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_EntProvinceCode))) return false;
|
||||
if (province.ProvinceName != null && !IsValidValue(province.ProvinceName, "name", (long)SaxDbDfn_Reference.GetColTextLen(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceName))) return false;
|
||||
provincesToUpdate.Add(province);
|
||||
}
|
||||
int MaxBulkUpdateBatchSize = 64;
|
||||
int batchSize = provincesToUpdate.Any() ? (int)Math.Ceiling(provincesToUpdate.Count() / Math.Ceiling((double)provincesToUpdate.Count() / MaxBulkUpdateBatchSize)) : MaxBulkUpdateBatchSize;
|
||||
while (provincesToUpdate.Any())
|
||||
{
|
||||
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 @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.UsgaProvince)} uPrv");
|
||||
query.Add("Using");
|
||||
query.Add("(");
|
||||
query.Add("Select dCty.Id CountryId, dPrv.CountryCode, dPrv.ProvinceCode, dPrv.EntProvinceCode, dPrv.ProvinceName");
|
||||
query.Add("From");
|
||||
query.Add("(");
|
||||
query.Add("Select '' CountryCode, '' ProvinceCode, '' EntProvinceCode, '' ProvinceName");
|
||||
foreach (UsgaProvinceData province in provincesToUpdate.ExtractRange(0, batchSize))
|
||||
query.Add($"Union Select '{DbQuery.FormatForCondition(province.CountryCode)}', '{DbQuery.FormatForCondition(province.ProvinceCode)}', " + (province.EntProvinceCode != null ? $"'{DbQuery.FormatForCondition(province.EntProvinceCode)}'" : "Null") + "," + (province.ProvinceName != null ? $"'{DbQuery.FormatForCondition(province.ProvinceName)}'" : "Null"));
|
||||
query.Add(") dPrv");
|
||||
query.Add($"Inner Join {SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCountry)} dCty On dCty.CountryCode=dPrv.CountryCode");
|
||||
query.Add(") dPrv");
|
||||
query.Add("On uPrv.CountryId=dPrv.CountryId And uPrv.ProvinceCode=dPrv.ProvinceCode");
|
||||
query.Add("When Matched And ((dPrv.EntProvinceCode Is Not Null And uPrv.EntProvinceCode!=dPrv.EntProvinceCode) Or (dPrv.ProvinceName Is Not Null And uPrv.ProvinceName!=dPrv.ProvinceName) Or uPrv.Status!=@statusActive)");
|
||||
query.Add("Then Update Set");
|
||||
query.Add(" EntProvinceCode=Coalesce(dPrv.EntProvinceCode,uPrv.EntProvinceCode),");
|
||||
query.Add(" ProvinceName=Coalesce(dPrv.ProvinceName,uPrv.ProvinceName),");
|
||||
query.Add(" Status=@statusActive,");
|
||||
query.Add(" UpdateOn=@updateOn,");
|
||||
query.Add(" UpdateBy=@updateBy,");
|
||||
query.Add(" UpdateHost=@updateHost");
|
||||
query.Add("When Not Matched And Len(IsNull(dPrv.ProvinceName,''))>0");
|
||||
query.Add("Then Insert (CountryId,ProvinceCode,EntProvinceCode,ProvinceName,Notes,Flags,Status,CreateOn,CreateBy,CreateHost,UpdateOn,UpdateBy,UpdateHost)");
|
||||
query.Add($"Values (dPrv.CountryId,dPrv.ProvinceCode,Coalesce(dPrv.EntProvinceCode,''),dPrv.ProvinceName,'',0,@statusActive,@updateOn,@updateBy,@updateHost,@updateOn,@updateBy,@updateHost)");
|
||||
query.Add(";");
|
||||
//SaLogger.Info($"{SysUtil.Fn} Bulk USGA Province update query:\n\t{query.Concat("\n\t")}");
|
||||
|
||||
try
|
||||
{
|
||||
int result = ReferenceDatabase.ExecuteNonQuery(query.Concat("\n"));
|
||||
if (ReferenceDatabase.HasErrorState())
|
||||
SaLogger.Warn($"{SysUtil.Fn} Error executing bulk USGA Province update - {ReferenceDatabase.ErrorStateMessage}");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SaLogger.Warn(SysUtil.Fn + " " + ExceptionUtil.GetLogMessage(exc, " executing bulk USGA Province update"));
|
||||
}
|
||||
}
|
||||
return HasErrorState();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item column definitions.
|
||||
private static readonly String aliasUsgaProvince = "UsgPrv";
|
||||
private static readonly String aliasUsgaProvince_Country = "UsgPrv_Cty";
|
||||
private static readonly String prefixUsgaProvince_Country = aliasUsgaProvince_Country + "_";
|
||||
private void SetUsgaProvinceColDfn
|
||||
(ColumnDfn col, String caption, int width, SaxDbDfn_Reference.ColumnIdx dbCol,
|
||||
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
|
||||
String alias = "", String prefix = "")
|
||||
{
|
||||
if (String.IsNullOrEmpty(alias) && SaxDbDfn_Reference.GetTableForColumn(dbCol) == SaxDbDfn_Reference.TableIdx.UsgaProvince)
|
||||
alias = aliasUsgaProvince;
|
||||
col.Set(caption, width, (int)dbCol, prefix + SaxDbDfn_Reference.GetColumnName(dbCol, false), SaxDbDfn_Reference.GetColumnNameQual(dbCol, alias), dataType, align);
|
||||
if (dataType == DataValue.DataType.String && dbCol != SaxDbDfn_Reference.ColumnIdx.Unknown)
|
||||
col.MaxLength = (int)SaxDbDfn_Reference.GetColTextLen(dbCol);
|
||||
}
|
||||
public override ColumnDfn GetUsgaProvinceColumnDfn(SaxGolfUsgaProvince.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
switch (columnId)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
case SaxGolfUsgaProvince.Column.Pos:
|
||||
SetUsgaProvinceColDfn(columnDfn, "Pos", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Right);
|
||||
columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off;
|
||||
columnDfn.ReadOnly = true;
|
||||
columnDfn.Resizable = false;
|
||||
break;
|
||||
case SaxGolfUsgaProvince.Column.Id:
|
||||
SetUsgaProvinceColDfn(columnDfn, "Id", 80, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, ColumnAlignment.Right, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-------------------------------------------------------
|
||||
case SaxGolfUsgaProvince.Column.CountryId:
|
||||
SetUsgaProvinceColDfn(columnDfn, "Country #", 80, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CountryId, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaProvince.Column.Country_Name:
|
||||
SetUsgaProvinceColDfn(columnDfn, "Country", 120, SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryName, ColumnAlignment.Center, DataValue.DataType.String, aliasUsgaProvince_Country, prefixUsgaProvince_Country);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-------------------------------------------------------
|
||||
case SaxGolfUsgaProvince.Column.ProvinceCode:
|
||||
SetUsgaProvinceColDfn(columnDfn, "Code", 80, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceCode, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaProvince.Column.ProvinceName:
|
||||
SetUsgaProvinceColDfn(columnDfn, "Name", 120, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceName, ColumnAlignment.Center);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Derived properties.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Common properties.
|
||||
case SaxGolfUsgaProvince.Column.Notes:
|
||||
SetUsgaProvinceColDfn(columnDfn, "Notes", 240, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Notes);
|
||||
break;
|
||||
case SaxGolfUsgaProvince.Column.Flags:
|
||||
SetUsgaProvinceColDfn(columnDfn, "Flags", 60, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Flags, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
break;
|
||||
case SaxGolfUsgaProvince.Column.Status:
|
||||
SetUsgaProvinceColDfn(columnDfn, "Status", 80, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Status, ColumnAlignment.Center);
|
||||
break;
|
||||
case SaxGolfUsgaProvince.Column.Status_Desc:
|
||||
SetUsgaProvinceColDfn(columnDfn, "Status", 90, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Status, ColumnAlignment.Center);
|
||||
break;
|
||||
case SaxGolfUsgaProvince.Column.Status_Ind:
|
||||
SetUsgaProvinceColDfn(columnDfn, "Status", 80, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Status, ColumnAlignment.Center, DataValue.DataType.TriState);
|
||||
columnDfn.TriStateFormat = ColumnTriStateFormat.Lights;
|
||||
break;
|
||||
case SaxGolfUsgaProvince.Column.CreateOn_Date:
|
||||
SetUsgaProvinceColDfn(columnDfn, "Created", 80, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
case SaxGolfUsgaProvince.Column.UpdateOn_Date:
|
||||
SetUsgaProvinceColDfn(columnDfn, "Updated", 80, SaxDbDfn_Reference.ColumnIdx.UsgaProvince_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item query filter.
|
||||
public override List<string> GetUsgaProvinceQueryFilter(SaxGolfUsgaProvince.Params prm)
|
||||
{
|
||||
List<String> filter = new List<String>();
|
||||
|
||||
// Item Ids.
|
||||
String idsIncluded = prm.IdsIncluded.Concat(",");
|
||||
if (!idsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaProvince) + " IN (" + idsIncluded + ")");
|
||||
String idsExcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsExcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaProvince) + " NOT IN (" + idsExcluded + ")");
|
||||
|
||||
// Countries.
|
||||
String countryIdsIncluded = prm.CountryIdsIncluded.Concat(",");
|
||||
if (!countryIdsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CountryId, aliasUsgaProvince) + " IN (" + countryIdsIncluded + ")");
|
||||
|
||||
if (!StringUtil.IsBlank(prm.ProvinceFilter))
|
||||
{
|
||||
// Split filter into words.
|
||||
List<String> filterWords = prm.ProvinceFilter.Split((char[])null).ToList();
|
||||
filterWords.RemoveDuplicatesCI();
|
||||
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 ", "(", ")"));
|
||||
}
|
||||
}
|
||||
|
||||
// Name.
|
||||
if (!StringUtil.IsEmpty(prm.ProvinceNameFull))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceName, aliasUsgaProvince) + "='" + DbQuery.FormatForCondition(prm.ProvinceNameFull) + "'");
|
||||
if (!StringUtil.IsEmpty(prm.ProvinceNamePartial))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceName, aliasUsgaProvince) + " LIKE '%" + DbQuery.FormatForLike(prm.ProvinceNamePartial) + "%'");
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial))
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Notes, aliasUsgaProvince) + " LIKE '%" + DbQuery.FormatForLike(prm.NotesPartial) + "%'");
|
||||
|
||||
// Status.
|
||||
if (prm.StatusCat != SaxGolfUsgaProvince.StatusCat.Any)
|
||||
filter.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Status, aliasUsgaProvince) + GetUsgaProvinceStatusCatFilterCondition(prm.StatusCat));
|
||||
|
||||
if (filter.Count < 1) filter.Add("1=1");
|
||||
return filter;
|
||||
}
|
||||
internal static String GetUsgaProvinceStatusCatFilterCondition(SaxGolfUsgaProvince.StatusCat statusCat)
|
||||
{
|
||||
if (statusCat == SaxGolfUsgaProvince.StatusCat.ActiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'";
|
||||
if (statusCat == SaxGolfUsgaProvince.StatusCat.InactiveOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Inactive) + "'";
|
||||
if (statusCat == SaxGolfUsgaProvince.StatusCat.NotDeleted)
|
||||
return "!='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
||||
if (statusCat == SaxGolfUsgaProvince.StatusCat.DeletedOnly)
|
||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
||||
return "";
|
||||
}
|
||||
// Item sort columns.
|
||||
public List<String> GetUsgaProvinceSortColumns(SaxGolfUsgaProvince.Params prm)
|
||||
{
|
||||
// Sort sequence:
|
||||
List<String> sortColumnNames = new List<String>();
|
||||
foreach (var columnDfn in prm.SortColumns)
|
||||
{
|
||||
// Need to ensure correct alias used for UsgaProvince columns in case of conflict.
|
||||
String sortCol = String.Empty;
|
||||
if (SaxDbDfn_Reference.GetTableForColumn((SaxDbDfn_Reference.ColumnIdx)columnDfn.DbColumn) == SaxDbDfn_Reference.TableIdx.UsgaProvince)
|
||||
{
|
||||
sortCol = SaxDbDfn_Reference.GetColumnNameQual((SaxDbDfn_Reference.ColumnIdx)columnDfn.DbColumn, aliasUsgaProvince);
|
||||
}
|
||||
else
|
||||
{
|
||||
sortCol = columnDfn.DataName;
|
||||
if (!StringUtil.IsEmpty(columnDfn.SortDataName))
|
||||
sortCol = columnDfn.SortDataName;
|
||||
}
|
||||
if (!sortCol.IsEmpty())
|
||||
{
|
||||
DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls
|
||||
sortColumnNames.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", "));
|
||||
}
|
||||
}
|
||||
sortColumnNames.RemoveBlanks();
|
||||
if (sortColumnNames.IsEmpty())
|
||||
{
|
||||
// Default sort columns.
|
||||
sortColumnNames.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaProvince) + " ASC");
|
||||
}
|
||||
return sortColumnNames;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item count.
|
||||
private long GetUsgaProvinceCount(String filter)
|
||||
{
|
||||
ClearErrorState();
|
||||
return ReferenceDatabase.GetRowCount(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince) + " As " + aliasUsgaProvince, filter);
|
||||
}
|
||||
public override long GetUsgaProvinceCount(SaxGolfUsgaProvince.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
return GetUsgaProvinceCount(GetUsgaProvinceQueryFilter(prm).Concat(" AND ", "(", ")"));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item list.
|
||||
public override List<SaxGolfUsgaProvince> GetUsgaProvinceList(SaxGolfUsgaProvince.Params prm)
|
||||
{
|
||||
List<SaxGolfUsgaProvince> userRoles = new List<SaxGolfUsgaProvince>();
|
||||
DbQuery qry = new DbQuery(ReferenceDatabase.DbmsType);
|
||||
qry.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince), aliasUsgaProvince);
|
||||
Golf_UsgaProvince_Db dbUsgaProvince = new Golf_UsgaProvince_Db(ReferenceDbInfo);
|
||||
qry.Columns.AddRange(dbUsgaProvince.ExistingColumnNames);
|
||||
qry.Filters.AddRange(GetUsgaProvinceQueryFilter(prm));
|
||||
qry.OrderBy.AddRange(GetUsgaProvinceSortColumns(prm));
|
||||
// Query data.
|
||||
using (var dbConnection = ReferenceDatabase.CreateConnection())
|
||||
using (var dbCommand = dbConnection.CreateCommand())
|
||||
{
|
||||
try
|
||||
{
|
||||
dbConnection.Open();
|
||||
dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging);
|
||||
using (DbDataReader dbDataReader = dbCommand.ExecuteReader())
|
||||
{
|
||||
while (dbDataReader.Read())
|
||||
{
|
||||
dbUsgaProvince = new Golf_UsgaProvince_Db(ReferenceDbInfo);
|
||||
dbUsgaProvince.PopulateFrom(dbDataReader);
|
||||
userRoles.Add(CreateUsgaProvince(dbUsgaProvince));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SaLogger.Warn(GetType().Name + ".GetUsgaProvinceList\n\tQuery: " + dbCommand.CommandText + "\n\t" + ExceptionUtil.GetLogMessage(exc));
|
||||
}
|
||||
}
|
||||
return userRoles;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item query execution.
|
||||
public override DbResultSet ExecuteUsgaProvinceQuery(List<ColumnDfn> columns, SaxGolfUsgaProvince.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Construct query.
|
||||
DbQuery query = new DbQuery(ReferenceDatabase.DbmsType);
|
||||
query.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince), aliasUsgaProvince);
|
||||
|
||||
// Add columns as defined in query list.
|
||||
if (columns.HasId(SaxGolfUsgaProvince.Column.Id))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaProvince));
|
||||
bool hasCountryCols = (columns.HasId(SaxGolfUsgaProvince.Column.Country_Name));
|
||||
if (columns.HasId(SaxGolfUsgaProvince.Column.CountryId) || hasCountryCols)
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CountryId, aliasUsgaProvince));
|
||||
if (columns.HasId(SaxGolfUsgaProvince.Column.ProvinceCode))
|
||||
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));
|
||||
// Common properties.
|
||||
if (columns.HasId(SaxGolfUsgaProvince.Column.Notes))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Notes, aliasUsgaProvince));
|
||||
if (columns.HasId(SaxGolfUsgaProvince.Column.Flags))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Flags, aliasUsgaProvince));
|
||||
if (columns.HasId(SaxGolfUsgaProvince.Column.Status) || columns.HasId(SaxGolfUsgaProvince.Column.Status_Desc) || columns.HasId(SaxGolfUsgaProvince.Column.Status_Ind))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Status, aliasUsgaProvince));
|
||||
if (columns.HasId(SaxGolfUsgaProvince.Column.CreateOn_Date))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CreateOn, aliasUsgaProvince));
|
||||
if (columns.HasId(SaxGolfUsgaProvince.Column.UpdateOn_Date))
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_UpdateOn, aliasUsgaProvince));
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Country.
|
||||
if (hasCountryCols)
|
||||
{
|
||||
DbQueryJoin joinCountry = new DbQueryJoin(DbJoinType.LeftOuter);
|
||||
joinCountry.Table = new StringPair(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCountry), aliasUsgaProvince_Country);
|
||||
joinCountry.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaProvince_Country) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CountryId, aliasUsgaProvince));
|
||||
query.Joins.Add(joinCountry);
|
||||
List<SaxDbDfn_Reference.ColumnIdx> cols = new List<SaxDbDfn_Reference.ColumnIdx>();
|
||||
cols.Add(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryName);
|
||||
foreach (var col in cols)
|
||||
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(col, aliasUsgaProvince_Country), prefixUsgaProvince_Country + SaxDbDfn_Reference.GetColumnName(col, false));
|
||||
prm.Alias_Country = aliasUsgaProvince_Country;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Populate filter.
|
||||
query.Filters.AddRange(GetUsgaProvinceQueryFilter(prm));
|
||||
|
||||
if (prm.IdsIncluded.Count != 1)
|
||||
{
|
||||
// Configure sort sequence.
|
||||
foreach (String sortColumn in GetUsgaProvinceSortColumns(prm))
|
||||
query.OrderBy.Add(sortColumn);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
//return new DbResultSet_DataTableReader(db, query.BuildQuery(prm.ResultsPaging));
|
||||
return DbResultSet_DataReader.ExecuteQuery(ReferenceDatabase, query.BuildQuery(prm.ResultsPaging));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Mgr.Reference;
|
||||
|
||||
namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
{
|
||||
//=======================================================================
|
||||
public partial class SaxReferenceGolfMgr_Dbas : SaxReferenceGolfMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SaxReferenceGolfMgr_Dbas(SaxSessionContext sessionContext, SaxInternals internals) :
|
||||
base(sessionContext, internals)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -404,9 +404,9 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
String idsIncluded = prm.IdsIncluded.Concat(",");
|
||||
if (!idsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserEligibility_Id, aliasUserEligibility) + " IN (" + idsIncluded + ")");
|
||||
String idsxcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsxcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserEligibility_Id, aliasUserEligibility) + " NOT IN (" + idsxcluded + ")");
|
||||
String idsExcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsExcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserEligibility_Id, aliasUserEligibility) + " NOT IN (" + idsExcluded + ")");
|
||||
|
||||
// User accounts.
|
||||
String userAccountIdsIncluded = prm.UserAccountIdsIncluded.Concat(",");
|
||||
|
||||
@@ -447,9 +447,9 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
String idsIncluded = prm.IdsIncluded.Concat(",");
|
||||
if (!idsIncluded.IsEmpty())
|
||||
filter.Add(colUserOrganisation_Id + " IN (" + idsIncluded + ")");
|
||||
String idsxcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsxcluded.IsEmpty())
|
||||
filter.Add(colUserOrganisation_Id + " NOT IN (" + idsxcluded + ")");
|
||||
String idsExcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsExcluded.IsEmpty())
|
||||
filter.Add(colUserOrganisation_Id + " NOT IN (" + idsExcluded + ")");
|
||||
|
||||
// User accounts.
|
||||
String userAccountIdsIncluded = prm.UserAccountIdsIncluded.Concat(",");
|
||||
|
||||
@@ -385,9 +385,9 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
String idsIncluded = prm.IdsIncluded.Concat(",");
|
||||
if (!idsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_Id, aliasUserRole) + " IN (" + idsIncluded + ")");
|
||||
String idsxcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsxcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_Id, aliasUserRole) + " NOT IN (" + idsxcluded + ")");
|
||||
String idsExcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsExcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_Id, aliasUserRole) + " NOT IN (" + idsExcluded + ")");
|
||||
|
||||
// User accounts.
|
||||
String userAccountIdsIncluded = prm.UserAccountIdsIncluded.Concat(",");
|
||||
|
||||
@@ -408,9 +408,9 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
String idsIncluded = prm.IdsIncluded.Concat(",");
|
||||
if (!idsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserSport_Id, aliasUserSport) + " IN (" + idsIncluded + ")");
|
||||
String idsxcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsxcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserSport_Id, aliasUserSport) + " NOT IN (" + idsxcluded + ")");
|
||||
String idsExcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsExcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserSport_Id, aliasUserSport) + " NOT IN (" + idsExcluded + ")");
|
||||
|
||||
// User accounts.
|
||||
String userAccountIdsIncluded = prm.UserAccountIdsIncluded.Concat(",");
|
||||
|
||||
@@ -427,9 +427,9 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
String idsIncluded = prm.IdsIncluded.Concat(",");
|
||||
if (!idsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Id, aliasUserSportExperience) + " IN (" + idsIncluded + ")");
|
||||
String idsxcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsxcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Id, aliasUserSportExperience) + " NOT IN (" + idsxcluded + ")");
|
||||
String idsExcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsExcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Id, aliasUserSportExperience) + " NOT IN (" + idsExcluded + ")");
|
||||
|
||||
// User sports.
|
||||
String userSportIdsIncluded = prm.UserSportIdsIncluded.Concat(",");
|
||||
|
||||
@@ -442,9 +442,9 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
String idsIncluded = prm.IdsIncluded.Concat(",");
|
||||
if (!idsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserSport_Id, aliasUserActivity) + " IN (" + idsIncluded + ")");
|
||||
String idsxcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsxcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserSport_Id, aliasUserActivity) + " NOT IN (" + idsxcluded + ")");
|
||||
String idsExcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsExcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserSport_Id, aliasUserActivity) + " NOT IN (" + idsExcluded + ")");
|
||||
|
||||
// User accounts.
|
||||
String userAccountIdsIncluded = prm.UserAccountIdsIncluded.Concat(",");
|
||||
|
||||
@@ -355,9 +355,9 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Support
|
||||
String idsIncluded = prm.IdsIncluded.Concat(",");
|
||||
if (!idsIncluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Support.GetColumnNameQual(SaxDbDfn_Support.ColumnIdx.UserReport_Id, aliasUserReport) + " IN (" + idsIncluded + ")");
|
||||
String idsxcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsxcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Support.GetColumnNameQual(SaxDbDfn_Support.ColumnIdx.UserReport_Id, aliasUserReport) + " NOT IN (" + idsxcluded + ")");
|
||||
String idsExcluded = prm.IdsExcluded.Concat(",");
|
||||
if (!idsExcluded.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Support.GetColumnNameQual(SaxDbDfn_Support.ColumnIdx.UserReport_Id, aliasUserReport) + " NOT IN (" + idsExcluded + ")");
|
||||
|
||||
// User accounts.
|
||||
String userAccountIdsIncluded = prm.UserAccountIdsIncluded.Concat(",");
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<DbDfnDatabase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<Tables>
|
||||
<DbDfnTable>
|
||||
@@ -1881,7 +1881,7 @@
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>1</Pages>
|
||||
<UniqueValues>2</UniqueValues>
|
||||
<UniqueValues>10</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
@@ -2373,8 +2373,8 @@
|
||||
<Primary>false</Primary>
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>4</Pages>
|
||||
<UniqueValues>40</UniqueValues>
|
||||
<Pages>6</Pages>
|
||||
<UniqueValues>52</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
@@ -3122,8 +3122,8 @@
|
||||
<Primary>false</Primary>
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>2</Pages>
|
||||
<UniqueValues>16</UniqueValues>
|
||||
<Pages>4</Pages>
|
||||
<UniqueValues>23</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
@@ -7106,7 +7106,7 @@
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>1</Pages>
|
||||
<UniqueValues>7</UniqueValues>
|
||||
<UniqueValues>8</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<DbDfnDatabase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<Tables>
|
||||
<DbDfnTable>
|
||||
@@ -290,7 +290,7 @@
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>1</Pages>
|
||||
<UniqueValues>4</UniqueValues>
|
||||
<UniqueValues>5</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Dbas\Internal\Core\" />
|
||||
<Folder Include="Dbas\Internal\Reference\" />
|
||||
<Folder Include="Dbas\Internal\Support\" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user