1.2.11.14 Db query random order.

This commit is contained in:
2024-08-27 19:49:02 +01:00
parent 98af01131e
commit 93c86fed6e
28 changed files with 294 additions and 55 deletions
@@ -9,10 +9,10 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.0" />
<PackageReference Include="Moq" Version="4.20.70" /> <PackageReference Include="Moq" Version="4.20.70" />
<PackageReference Include="MSTest.TestAdapter" Version="3.4.3" /> <PackageReference Include="MSTest.TestAdapter" Version="3.5.2" />
<PackageReference Include="MSTest.TestFramework" Version="3.4.3" /> <PackageReference Include="MSTest.TestFramework" Version="3.5.2" />
<PackageReference Include="coverlet.collector" Version="6.0.2"> <PackageReference Include="coverlet.collector" Version="6.0.2">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
@@ -9,10 +9,10 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.0" />
<PackageReference Include="Moq" Version="4.20.70" /> <PackageReference Include="Moq" Version="4.20.70" />
<PackageReference Include="MSTest.TestAdapter" Version="3.4.3" /> <PackageReference Include="MSTest.TestAdapter" Version="3.5.2" />
<PackageReference Include="MSTest.TestFramework" Version="3.4.3" /> <PackageReference Include="MSTest.TestFramework" Version="3.5.2" />
<PackageReference Include="coverlet.collector" Version="6.0.2"> <PackageReference Include="coverlet.collector" Version="6.0.2">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
@@ -79,6 +79,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
prmCountry.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True; prmCountry.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True;
prmCountry.HasProvinces = SacsHierarchyItem.Params.BoolState.False; prmCountry.HasProvinces = SacsHierarchyItem.Params.BoolState.False;
prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly; prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly;
prmCountry.ResultsPaging.Set(1, 4);
prmCountry.RandomOrder = true;
List<SaxGolfUsgaCountry> countriesNoProvinces = internals.ReferenceGolfMgr.GetUsgaCountryList(prmCountry).Randomise(); List<SaxGolfUsgaCountry> countriesNoProvinces = internals.ReferenceGolfMgr.GetUsgaCountryList(prmCountry).Randomise();
disposableItems.AddRange(countriesNoProvinces); disposableItems.AddRange(countriesNoProvinces);
if (countriesNoProvinces.Any()) if (countriesNoProvinces.Any())
@@ -100,6 +102,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
prmCountry.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True; prmCountry.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True;
prmCountry.HasProvinces = SacsHierarchyItem.Params.BoolState.True; prmCountry.HasProvinces = SacsHierarchyItem.Params.BoolState.True;
prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly; prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly;
prmCountry.ResultsPaging.Set(1, 4);
prmCountry.RandomOrder = true;
List<SaxGolfUsgaCountry> countriesWithProvinces = internals.ReferenceGolfMgr.GetUsgaCountryList(prmCountry).Randomise(); List<SaxGolfUsgaCountry> countriesWithProvinces = internals.ReferenceGolfMgr.GetUsgaCountryList(prmCountry).Randomise();
disposableItems.AddRange(countriesWithProvinces); disposableItems.AddRange(countriesWithProvinces);
if (countriesWithProvinces.Any()) if (countriesWithProvinces.Any())
@@ -125,6 +129,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
prmProvince.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True; prmProvince.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True;
prmProvince.HasFacilities = SacsHierarchyItem.Params.BoolState.False; prmProvince.HasFacilities = SacsHierarchyItem.Params.BoolState.False;
prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly; prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly;
prmProvince.ResultsPaging.Set(1, 4);
prmProvince.RandomOrder = true;
List<SaxGolfUsgaProvince> provincesNoFacilities = internals.ReferenceGolfMgr.GetUsgaProvinceList(prmProvince).Randomise(); List<SaxGolfUsgaProvince> provincesNoFacilities = internals.ReferenceGolfMgr.GetUsgaProvinceList(prmProvince).Randomise();
disposableItems.AddRange(provincesNoFacilities); disposableItems.AddRange(provincesNoFacilities);
if (provincesNoFacilities.Any()) if (provincesNoFacilities.Any())
@@ -146,6 +152,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
prmProvince.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True; prmProvince.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True;
prmProvince.HasFacilities = SacsHierarchyItem.Params.BoolState.True; prmProvince.HasFacilities = SacsHierarchyItem.Params.BoolState.True;
prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly; prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly;
prmProvince.ResultsPaging.Set(1, 4);
prmProvince.RandomOrder = true;
List<SaxGolfUsgaProvince> provincesWithFacilities = internals.ReferenceGolfMgr.GetUsgaProvinceList(prmProvince).Randomise(); List<SaxGolfUsgaProvince> provincesWithFacilities = internals.ReferenceGolfMgr.GetUsgaProvinceList(prmProvince).Randomise();
disposableItems.AddRange(provincesWithFacilities); disposableItems.AddRange(provincesWithFacilities);
if (provincesWithFacilities.Any()) if (provincesWithFacilities.Any())
@@ -169,6 +177,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
prmCourse.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True; prmCourse.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True;
prmCourse.HasMarkers = SacsHierarchyItem.Params.BoolState.False; prmCourse.HasMarkers = SacsHierarchyItem.Params.BoolState.False;
prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly; prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly;
prmCourse.ResultsPaging.Set(1, 4);
prmCourse.RandomOrder = true;
List<SaxGolfUsgaCourse> coursesNoMarkers = internals.ReferenceGolfMgr.GetUsgaCourseList(prmCourse).Randomise(); List<SaxGolfUsgaCourse> coursesNoMarkers = internals.ReferenceGolfMgr.GetUsgaCourseList(prmCourse).Randomise();
disposableItems.AddRange(coursesNoMarkers); disposableItems.AddRange(coursesNoMarkers);
if (coursesNoMarkers.Any()) if (coursesNoMarkers.Any())
@@ -190,6 +200,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
prmCourse.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True; prmCourse.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True;
prmCourse.HasMarkers = SacsHierarchyItem.Params.BoolState.True; prmCourse.HasMarkers = SacsHierarchyItem.Params.BoolState.True;
prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly; prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly;
prmCourse.ResultsPaging.Set(1, 4);
prmCourse.RandomOrder = true;
List<SaxGolfUsgaCourse> coursesWithMarkers = internals.ReferenceGolfMgr.GetUsgaCourseList(prmCourse).Randomise(); List<SaxGolfUsgaCourse> coursesWithMarkers = internals.ReferenceGolfMgr.GetUsgaCourseList(prmCourse).Randomise();
disposableItems.AddRange(coursesWithMarkers); disposableItems.AddRange(coursesWithMarkers);
if (coursesWithMarkers.Any()) if (coursesWithMarkers.Any())
@@ -213,6 +225,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
SaxGolfUsgaCountry.Params prmCountry = new SaxGolfUsgaCountry.Params(); SaxGolfUsgaCountry.Params prmCountry = new SaxGolfUsgaCountry.Params();
prmCountry.HasProvinces = SacsHierarchyItem.Params.BoolState.False; prmCountry.HasProvinces = SacsHierarchyItem.Params.BoolState.False;
prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly; prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly;
prmCountry.ResultsPaging.Set(1,4);
prmCountry.RandomOrder = true;
List<SaxGolfUsgaCountry> countriesNoProvinces = internals.ReferenceGolfMgr.GetUsgaCountryList(prmCountry).Randomise(); List<SaxGolfUsgaCountry> countriesNoProvinces = internals.ReferenceGolfMgr.GetUsgaCountryList(prmCountry).Randomise();
disposableItems.AddRange(countriesNoProvinces); disposableItems.AddRange(countriesNoProvinces);
if (countriesNoProvinces.Any()) if (countriesNoProvinces.Any())
@@ -234,6 +248,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
SaxGolfUsgaProvince.Params prmProvince = new SaxGolfUsgaProvince.Params(); SaxGolfUsgaProvince.Params prmProvince = new SaxGolfUsgaProvince.Params();
prmProvince.HasFacilities = SacsHierarchyItem.Params.BoolState.False; prmProvince.HasFacilities = SacsHierarchyItem.Params.BoolState.False;
prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly; prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly;
prmProvince.ResultsPaging.Set(1, 4);
prmProvince.RandomOrder = true;
List<SaxGolfUsgaProvince> provincesNoFacilities = internals.ReferenceGolfMgr.GetUsgaProvinceList(prmProvince).Randomise(); List<SaxGolfUsgaProvince> provincesNoFacilities = internals.ReferenceGolfMgr.GetUsgaProvinceList(prmProvince).Randomise();
disposableItems.AddRange(provincesNoFacilities); disposableItems.AddRange(provincesNoFacilities);
if (provincesNoFacilities.Any()) if (provincesNoFacilities.Any())
@@ -254,6 +270,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
SaxGolfUsgaCourse.Params prmCourse = new SaxGolfUsgaCourse.Params(); SaxGolfUsgaCourse.Params prmCourse = new SaxGolfUsgaCourse.Params();
prmCourse.HasMarkers = SacsHierarchyItem.Params.BoolState.False; prmCourse.HasMarkers = SacsHierarchyItem.Params.BoolState.False;
prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly; prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly;
prmCourse.ResultsPaging.Set(1, 4);
prmCourse.RandomOrder = true;
List<SaxGolfUsgaCourse> coursesNoMarkers = internals.ReferenceGolfMgr.GetUsgaCourseList(prmCourse).Randomise(); List<SaxGolfUsgaCourse> coursesNoMarkers = internals.ReferenceGolfMgr.GetUsgaCourseList(prmCourse).Randomise();
disposableItems.AddRange(coursesNoMarkers); disposableItems.AddRange(coursesNoMarkers);
if (coursesNoMarkers.Any()) if (coursesNoMarkers.Any())
@@ -0,0 +1,178 @@
using DocumentFormat.OpenXml.InkML;
using HtmlAgilityPack;
using MailKit;
using Microsoft.Net.Http.Headers;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
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.Helpers;
using Sarand.Net.Standard.Base.Net;
using Sarand.Net.Standard.Base.Utils;
using Saxonite.Net.Core.Web.Base.Controllers;
using Saxonite.Net.Standard.Base.App;
using Saxonite.Net.Standard.Base.Bus;
using Saxonite.Net.Standard.Base.Bus.Reference;
using Saxonite.Net.Standard.Base.Mgr.Reference;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading;
namespace Saxonite.Net.Core.Web.Base.Procs
{
//======================================================================
public partial class SaxOrganisationEventsLookup : SaxProcess_Web
{
//-------------------------------------------------------------------
// Definitions.
public enum Task
{
LookupEvents
}
public new class Config : SaxProcess_Web.Config
{
public Config(SaxSessionContext sessionContext, DbUpdateInfo dbUpdateInfo) : base(sessionContext, dbUpdateInfo)
{ }
/// <summary>Organisations.</summary>
public HashSet<SysId> OrganisationIdsIncluded { get; } = new HashSet<SysId>();
/// <summary>Tasks to be run under this instance of the USGA Data Lookup process.</summary>
public HashSet<Task> Tasks { get; } = new HashSet<Task>();
}
private class EventData
{
public DateTime EventAt { get; set; }
public String Caption { get; set; }
}
//-------------------------------------------------------------------
// Data members.
private Config config;
//-------------------------------------------------------------------
// Construction.
public SaxOrganisationEventsLookup(Config config) : base(config)
{
this.config = config;
}
//-------------------------------------------------------------------
// Properties.
public override string ProcessDescription => "Organisation Events Lookup";
//-------------------------------------------------------------------
// Run the process.
protected override bool Run()
{
// Execute selected tasks.
foreach (Task task in config.Tasks)
{
switch (task)
{
case Task.LookupEvents:
LookupEventsForOrganisations();
break;
}
if (!OK) break;
}
return OK;
}
//------------------------------------------------------------------
// Event lookup.
//------------------------------------------------------------------
/// <summary>
/// Organisation event lookup.
/// </summary>
private bool LookupEventsForOrganisations()
{
if (!OK) return false;
using (DisposableCollection<SacsDisposable> disposableItems = new DisposableCollection<SacsDisposable>())
{
foreach (SysId organisationId in config.OrganisationIdsIncluded)
{
SaxOrganisation organisation = AccountMgr.GetOrganisationById(organisationId);
if (organisation == null)
{
AddWarningMessage($"Organisation not found for Id: {organisationId}.");
continue;
}
LookupOrganisationEvents(organisation);
}
}
return OK;
}
/// <summary>
/// Organisation event lookup.
/// </summary>
private bool LookupOrganisationEvents(SaxOrganisation organisation)
{
List<EventData> eventsData = new List<EventData>();
try
{
// Query Countries on USGA website.
CancellationToken cancelToken = new CancellationToken();
SacsHttpRequestData request = new SacsHttpRequestData(cancelToken) { Url = "https://ncrdb.usga.org/" };
SacsHttpResponseData response = SacsHttpClient.DoRequest(request).Result;
String data = response.Data;
if (!StringUtil.IsBlank(response.Data))
{
// Parse HTML.
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(response.Data);
// Identify type of event schedule on page.
HtmlNode mobiscrollEventCalendarNode = htmlDoc.GetElementbyId("mobiscroll-event-calendar");
if (mobiscrollEventCalendarNode != null)
{
}
}
if (eventsData.Any())
{
}
}
catch (Exception exc)
{
SaLogger.Warn($"{SysUtil.Fn} {ExceptionUtil.GetLogMessage(exc, "querying organisation events", 8)}");
}
return OK;
}
/// <summary>
/// Organisation event lookup by MobiScroll calendar.
/// </summary>
private bool LookupOrganisationEvents_MobiScrollCalendar(SaxOrganisation organisation, List<EventData> eventsData, HtmlNode calendarNode)
{
HtmlNode headerNode = calendarNode.Descendants("div").First(node => node.HasClass("mbsc-calendar-header"));
if (headerNode != null)
{
}
return OK;
}
//------------------------------------------------------------------
}
//======================================================================
}
+1 -1
View File
@@ -23,7 +23,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="HtmlAgilityPack" Version="1.11.61" /> <PackageReference Include="HtmlAgilityPack" Version="1.11.64" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.31" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.31" />
</ItemGroup> </ItemGroup>
@@ -9,7 +9,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="jQuery.UI.Combined" Version="1.13.2" /> <PackageReference Include="jQuery.UI.Combined" Version="1.13.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.31" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.31" />
<PackageReference Include="System.Collections.Specialized" Version="4.3.0" /> <PackageReference Include="System.Collections.Specialized" Version="4.3.0" />
</ItemGroup> </ItemGroup>
@@ -55,8 +55,8 @@
<input type="hidden" name="LogsFilter.Filename" class="FilterLogFilename" /> <input type="hidden" name="LogsFilter.Filename" class="FilterLogFilename" />
<div class="row"> <div class="row">
<div class="col-sm-12 row"> <div class="col-sm-12 row">
<div class="col-sm-4 col-md-3 sax-label text-left text-sm-right">@Localiser["label.root.folder"]</div> <div class="col-sm-4 col-md-3 sax-label text-left text-sm-right" style="padding-top:2px;">@Localiser["label.root.folder"]</div>
<div class="col-sm-8 col-md-9 sax-value mb-1">@(Model.LoggingRootFolder)</div> <div class="col-sm-8 col-md-9 sax-value mb-1 bold">@(Model.LoggingRootFolder)</div>
</div> </div>
<div class="col-sm-12 col-md-4 row"> <div class="col-sm-12 col-md-4 row">
<div class="col-sm-4 col-md-5 sax-label text-left text-sm-right">@Localiser["label.folder"]</div> <div class="col-sm-4 col-md-5 sax-label text-left text-sm-right">@Localiser["label.folder"]</div>
@@ -6,7 +6,7 @@
.sax-panel-info, .sax-panel-form .sax-panel-info, .sax-panel-form
{ {
max-width: 720px; max-width: 800px;
margin: 16px auto; margin: 16px auto;
padding: 0; padding: 0;
background-color: #fff; background-color: #fff;
+2 -2
View File
@@ -196,8 +196,8 @@
{ {
$dlg.dialog( $dlg.dialog(
{ {
minWidth: null, maxWidth: null, width: Math.min(width || 400, $(win).width() * .95), minWidth: null, maxWidth: null, width: Math.min(width || 400, $(win).width() * .98),
minHeight: null, maxHeight: null, height: Math.min(height || 320, $(win).innerHeight() * .95) minHeight: null, maxHeight: null, height: Math.min(height || 320, $(win).innerHeight() * .98)
}).dialog('open'); }).dialog('open');
return $dlg; return $dlg;
} }
@@ -176,7 +176,7 @@
if (!sl.data.awaitingGetFileResponse) if (!sl.data.awaitingGetFileResponse)
{ {
sl.setFileData($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')); sl.setFileData($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>'));
sax.openDialog($dlg.file, $(win).width(), $(win).height()); sl.openFileDlg();
} }
sax.ajax.getFile = sax.ajax.getFile || { url: sax.url.base + 'System/Ajax/Logs/GetFile', formId: sl.$frm.filter.prop('id'), callbackFn: sl.onShowFile }; sax.ajax.getFile = sax.ajax.getFile || { url: sax.url.base + 'System/Ajax/Logs/GetFile', formId: sl.$frm.filter.prop('id'), callbackFn: sl.onShowFile };
sax.doAjaxRequest(sax.ajax.getFile, delay || 50); sax.doAjaxRequest(sax.ajax.getFile, delay || 50);
@@ -199,6 +199,10 @@
sl.setFileTitle(filename || response.popupTitle); sl.setFileTitle(filename || response.popupTitle);
$('.LogFilename', $dlg.file).val(filename); $('.LogFilename', $dlg.file).val(filename);
sl.setFileData(response.file.html); sl.setFileData(response.file.html);
sl.openFileDlg();
}
sl.openFileDlg = function ()
{
sax.openDialog($dlg.file, $(win).width(), $(win).height()); sax.openDialog($dlg.file, $(win).width(), $(win).height());
} }
sl.setFileTitle = function (filename) sl.setFileTitle = function (filename)
@@ -9,7 +9,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="jQuery.UI.Combined" Version="1.13.2" /> <PackageReference Include="jQuery.UI.Combined" Version="1.13.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.31" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.31" />
<PackageReference Include="Moment.js" Version="2.30.1" /> <PackageReference Include="Moment.js" Version="2.30.1" />
<PackageReference Include="System.Collections.Specialized" Version="4.3.0" /> <PackageReference Include="System.Collections.Specialized" Version="4.3.0" />
@@ -6,7 +6,7 @@
.sax-panel-info, .sax-panel-form .sax-panel-info, .sax-panel-form
{ {
max-width: 720px; max-width: 800px;
margin: 16px auto; margin: 16px auto;
padding: 0; padding: 0;
background-color: #f8f8f8; background-color: #f8f8f8;
+1 -1
View File
@@ -18,7 +18,7 @@ namespace Saxonite.Net.Standard.Base.App
//------------------------------------------------------------------- //-------------------------------------------------------------------
public static class Version public static class Version
{ {
private static String version { get; } = "1.2.11.13"; private static String version { get; } = "1.2.11.14";
// Retrieve version. // Retrieve version.
public static String GetFullVersion () { return version; } public static String GetFullVersion () { return version; }
public static String GetAppVersion () public static String GetAppVersion ()
@@ -6,7 +6,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 22-Aug-2024 18:00:17 // Code generated by Sarand Database Utilities Tue 27-Aug-2024 19:41:31
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
namespace Saxonite.Base.App namespace Saxonite.Base.App
{ {
@@ -65,17 +65,16 @@ namespace Saxonite.Net.Standard.Dbas.App
config.Schema.InsertOnlyColumns.Add(".*", "CreateOn,CreateBy,CreateHost"); config.Schema.InsertOnlyColumns.Add(".*", "CreateOn,CreateBy,CreateHost");
config.Schema.InsertOnlyColumns.Add("SomeOldTable", "Code"); config.Schema.InsertOnlyColumns.Add("SomeOldTable", "Code");
// Database definition class. // Database definition class.
config.DefinitionClass.Usings.Clear();
config.DefinitionClass.Usings.Add("Sarand.Net.Standard.Base.Core"); config.DefinitionClass.Usings.Add("Sarand.Net.Standard.Base.Core");
config.DefinitionClass.Usings.Add("Sarand.Net.Standard.Base.Utils");
config.DefinitionClass.Usings.Add("Sarand.Net.Standard.Base.Dbas"); config.DefinitionClass.Usings.Add("Sarand.Net.Standard.Base.Dbas");
config.DefinitionClass.Usings.Add("Sarand.Net.Standard.Base.Utils");
config.DefinitionClass.Namespace = "Saxonite.Base.App"; config.DefinitionClass.Namespace = "Saxonite.Base.App";
config.DefinitionClass.Classname = "SaxDbDfn_" + dbInstance.ToString(); config.DefinitionClass.Classname = "SaxDbDfn_" + dbInstance.ToString();
// Table class. // Table class.
config.TableClass.Usings.Clear(); config.TableClass.Usings.Add("Sarand.Net.Standard.Base.App");
config.TableClass.Usings.Add("Sarand.Net.Standard.Base.Core"); config.TableClass.Usings.Add("Sarand.Net.Standard.Base.Core");
config.TableClass.Usings.Add("Sarand.Net.Standard.Base.Utils");
config.TableClass.Usings.Add("Sarand.Net.Standard.Base.Dbas"); config.TableClass.Usings.Add("Sarand.Net.Standard.Base.Dbas");
config.TableClass.Usings.Add("Sarand.Net.Standard.Base.Utils");
config.TableClass.Namespace_BaseClass = "Saxonite.Net.Standard.Dbas.Data"; config.TableClass.Namespace_BaseClass = "Saxonite.Net.Standard.Dbas.Data";
config.TableClass.Namespace = "Saxonite.Net.Standard.Dbas.Internal." + dbInstance.ToString(); config.TableClass.Namespace = "Saxonite.Net.Standard.Dbas.Internal." + dbInstance.ToString();
config.TableClass.BaseClass = "SaxDbDataItem"; config.TableClass.BaseClass = "SaxDbDataItem";
@@ -1,4 +1,5 @@
using Microsoft.Data.SqlClient; using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas; using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils; using Sarand.Net.Standard.Base.Utils;
@@ -9,7 +10,7 @@ using System.Data.Common;
using System.Linq; using System.Linq;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 22-Aug-2024 18:00:17 // Code generated by Sarand Database Utilities Tue 27-Aug-2024 19:41:31
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Reference namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{ {
@@ -107,6 +108,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
// Existing columns - confirmed on database if table exists. // Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } } public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } } public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
public List<String> UpdatableColumns { get { return ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList(); } }
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Population. // Population.
@@ -187,12 +189,17 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Update command. // Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand) public override bool ExecuteUpdateCommand (DbCommand dbCommand, List<String> columnsToUpdate = null)
{ {
// Avoid update if Identity field isn't valid. // Avoid update if Identity field isn't valid.
if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id"); if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id");
// Columns to update. // Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList(); List<String> columnNames = (columnsToUpdate?.Any() ?? false ? columnsToUpdate : UpdatableColumns).Where(col => UpdatableColumns.ContainsCI(col)).ToList();
if (!columnNames.Any())
{
SaLogger.Warn($"{SysUtil.Fn} No columns to update. [{GetType().Name}]");
return false;
}
// Construct query. // Construct query.
String query = "UPDATE " + TableNameFmt + " SET "; String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand) if (dbCommand is SqlCommand)
@@ -1,4 +1,5 @@
using Microsoft.Data.SqlClient; using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas; using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils; using Sarand.Net.Standard.Base.Utils;
@@ -9,7 +10,7 @@ using System.Data.Common;
using System.Linq; using System.Linq;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 22-Aug-2024 18:00:17 // Code generated by Sarand Database Utilities Tue 27-Aug-2024 19:41:31
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Reference namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{ {
@@ -144,6 +145,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
// Existing columns - confirmed on database if table exists. // Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } } public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } } public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
public List<String> UpdatableColumns { get { return ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList(); } }
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Population. // Population.
@@ -248,12 +250,17 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Update command. // Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand) public override bool ExecuteUpdateCommand (DbCommand dbCommand, List<String> columnsToUpdate = null)
{ {
// Avoid update if Identity field isn't valid. // Avoid update if Identity field isn't valid.
if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id"); if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id");
// Columns to update. // Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList(); List<String> columnNames = (columnsToUpdate?.Any() ?? false ? columnsToUpdate : UpdatableColumns).Where(col => UpdatableColumns.ContainsCI(col)).ToList();
if (!columnNames.Any())
{
SaLogger.Warn($"{SysUtil.Fn} No columns to update. [{GetType().Name}]");
return false;
}
// Construct query. // Construct query.
String query = "UPDATE " + TableNameFmt + " SET "; String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand) if (dbCommand is SqlCommand)
@@ -1,4 +1,5 @@
using Microsoft.Data.SqlClient; using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas; using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils; using Sarand.Net.Standard.Base.Utils;
@@ -9,7 +10,7 @@ using System.Data.Common;
using System.Linq; using System.Linq;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 22-Aug-2024 18:00:17 // Code generated by Sarand Database Utilities Tue 27-Aug-2024 19:41:31
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Reference namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{ {
@@ -128,6 +129,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
// Existing columns - confirmed on database if table exists. // Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } } public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } } public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
public List<String> UpdatableColumns { get { return ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList(); } }
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Population. // Population.
@@ -222,12 +224,17 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Update command. // Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand) public override bool ExecuteUpdateCommand (DbCommand dbCommand, List<String> columnsToUpdate = null)
{ {
// Avoid update if Identity field isn't valid. // Avoid update if Identity field isn't valid.
if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id"); if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id");
// Columns to update. // Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList(); List<String> columnNames = (columnsToUpdate?.Any() ?? false ? columnsToUpdate : UpdatableColumns).Where(col => UpdatableColumns.ContainsCI(col)).ToList();
if (!columnNames.Any())
{
SaLogger.Warn($"{SysUtil.Fn} No columns to update. [{GetType().Name}]");
return false;
}
// Construct query. // Construct query.
String query = "UPDATE " + TableNameFmt + " SET "; String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand) if (dbCommand is SqlCommand)
@@ -1,4 +1,5 @@
using Microsoft.Data.SqlClient; using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas; using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils; using Sarand.Net.Standard.Base.Utils;
@@ -9,7 +10,7 @@ using System.Data.Common;
using System.Linq; using System.Linq;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 22-Aug-2024 18:00:17 // Code generated by Sarand Database Utilities Tue 27-Aug-2024 19:41:31
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Reference namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{ {
@@ -129,6 +130,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
// Existing columns - confirmed on database if table exists. // Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } } public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } } public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
public List<String> UpdatableColumns { get { return ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList(); } }
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Population. // Population.
@@ -225,12 +227,17 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Update command. // Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand) public override bool ExecuteUpdateCommand (DbCommand dbCommand, List<String> columnsToUpdate = null)
{ {
// Avoid update if Identity field isn't valid. // Avoid update if Identity field isn't valid.
if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id"); if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id");
// Columns to update. // Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList(); List<String> columnNames = (columnsToUpdate?.Any() ?? false ? columnsToUpdate : UpdatableColumns).Where(col => UpdatableColumns.ContainsCI(col)).ToList();
if (!columnNames.Any())
{
SaLogger.Warn($"{SysUtil.Fn} No columns to update. [{GetType().Name}]");
return false;
}
// Construct query. // Construct query.
String query = "UPDATE " + TableNameFmt + " SET "; String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand) if (dbCommand is SqlCommand)
@@ -1,4 +1,5 @@
using Microsoft.Data.SqlClient; using Microsoft.Data.SqlClient;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas; using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils; using Sarand.Net.Standard.Base.Utils;
@@ -9,7 +10,7 @@ using System.Data.Common;
using System.Linq; using System.Linq;
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Code generated by Sarand Database Utilities Thu 22-Aug-2024 18:00:17 // Code generated by Sarand Database Utilities Tue 27-Aug-2024 19:41:31
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
namespace Saxonite.Net.Standard.Dbas.Internal.Reference namespace Saxonite.Net.Standard.Dbas.Internal.Reference
{ {
@@ -109,6 +110,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
// Existing columns - confirmed on database if table exists. // Existing columns - confirmed on database if table exists.
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } } public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } } public List<String> ExistingColumnNamesNonId { get { return GetExistingColumnNames(FieldsNonId); } }
public List<String> UpdatableColumns { get { return ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList(); } }
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Population. // Population.
@@ -191,12 +193,17 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Update command. // Update command.
public override bool ExecuteUpdateCommand (DbCommand dbCommand) public override bool ExecuteUpdateCommand (DbCommand dbCommand, List<String> columnsToUpdate = null)
{ {
// Avoid update if Identity field isn't valid. // Avoid update if Identity field isn't valid.
if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id"); if (_Id == 0) throw new Exception("Invalid for Update - item has an invalid Id");
// Columns to update. // Columns to update.
List<String> columnNames = ExistingColumnNamesNonId.Where(item => !fieldsPrimary.ContainsCI(item) && !fieldsIgnoreOnUpdate.ContainsCI(item)).ToList(); List<String> columnNames = (columnsToUpdate?.Any() ?? false ? columnsToUpdate : UpdatableColumns).Where(col => UpdatableColumns.ContainsCI(col)).ToList();
if (!columnNames.Any())
{
SaLogger.Warn($"{SysUtil.Fn} No columns to update. [{GetType().Name}]");
return false;
}
// Construct query. // Construct query.
String query = "UPDATE " + TableNameFmt + " SET "; String query = "UPDATE " + TableNameFmt + " SET ";
if (dbCommand is SqlCommand) if (dbCommand is SqlCommand)
@@ -525,6 +525,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
} }
} }
sortColumnNames.RemoveBlanks(); sortColumnNames.RemoveBlanks();
AddRandomSortColumn(prm, sortColumnNames);
if (sortColumnNames.IsEmpty()) if (sortColumnNames.IsEmpty())
{ {
// Default sort columns. // Default sort columns.
@@ -611,10 +611,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
return ""; return "";
} }
// Item sort columns. // Item sort columns.
public List<String> GetUsgaCourseSortColumns(SaxGolfUsgaCourse.Params prm) public HashSet<String> GetUsgaCourseSortColumns(SaxGolfUsgaCourse.Params prm)
{ {
// Sort sequence: // Sort sequence:
List<String> sortColumnNames = new List<String>(); HashSet<String> sortColumnNames = new HashSet<String>();
foreach (var columnDfn in prm.SortColumns) foreach (var columnDfn in prm.SortColumns)
{ {
// Need to ensure correct alias used for UsgaCourse columns in case of conflict. // Need to ensure correct alias used for UsgaCourse columns in case of conflict.
@@ -636,6 +636,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
} }
} }
sortColumnNames.RemoveBlanks(); sortColumnNames.RemoveBlanks();
AddRandomSortColumn(prm, sortColumnNames);
if (sortColumnNames.IsEmpty()) if (sortColumnNames.IsEmpty())
{ {
// Default sort columns. // Default sort columns.
@@ -511,10 +511,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
return ""; return "";
} }
// Item sort columns. // Item sort columns.
public List<String> GetUsgaFacilitySortColumns(SaxGolfUsgaFacility.Params prm) public HashSet<String> GetUsgaFacilitySortColumns(SaxGolfUsgaFacility.Params prm)
{ {
// Sort sequence: // Sort sequence:
List<String> sortColumnNames = new List<String>(); HashSet<String> sortColumnNames = new HashSet<String>();
foreach (var columnDfn in prm.SortColumns) foreach (var columnDfn in prm.SortColumns)
{ {
// Need to ensure correct alias used for UsgaFacility columns in case of conflict. // Need to ensure correct alias used for UsgaFacility columns in case of conflict.
@@ -536,6 +536,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
} }
} }
sortColumnNames.RemoveBlanks(); sortColumnNames.RemoveBlanks();
AddRandomSortColumn(prm, sortColumnNames);
if (sortColumnNames.IsEmpty()) if (sortColumnNames.IsEmpty())
{ {
// Default sort columns. // Default sort columns.
@@ -556,10 +556,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
return ""; return "";
} }
// Item sort columns. // Item sort columns.
public List<String> GetUsgaMarkerSortColumns(SaxGolfUsgaMarker.Params prm) public HashSet<String> GetUsgaMarkerSortColumns(SaxGolfUsgaMarker.Params prm)
{ {
// Sort sequence: // Sort sequence:
List<String> sortColumnNames = new List<String>(); HashSet<String> sortColumnNames = new HashSet<String>();
foreach (var columnDfn in prm.SortColumns) foreach (var columnDfn in prm.SortColumns)
{ {
// Need to ensure correct alias used for UsgaMarker columns in case of conflict. // Need to ensure correct alias used for UsgaMarker columns in case of conflict.
@@ -581,6 +581,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
} }
} }
sortColumnNames.RemoveBlanks(); sortColumnNames.RemoveBlanks();
AddRandomSortColumn(prm, sortColumnNames);
if (sortColumnNames.IsEmpty()) if (sortColumnNames.IsEmpty())
{ {
// Default sort columns. // Default sort columns.
@@ -522,10 +522,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
return ""; return "";
} }
// Item sort columns. // Item sort columns.
public List<String> GetUsgaProvinceSortColumns(SaxGolfUsgaProvince.Params prm) public HashSet<String> GetUsgaProvinceSortColumns(SaxGolfUsgaProvince.Params prm)
{ {
// Sort sequence: // Sort sequence:
List<String> sortColumnNames = new List<String>(); HashSet<String> sortColumnNames = new HashSet<String>();
foreach (var columnDfn in prm.SortColumns) foreach (var columnDfn in prm.SortColumns)
{ {
// Need to ensure correct alias used for UsgaProvince columns in case of conflict. // Need to ensure correct alias used for UsgaProvince columns in case of conflict.
@@ -547,6 +547,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
} }
} }
sortColumnNames.RemoveBlanks(); sortColumnNames.RemoveBlanks();
AddRandomSortColumn(prm, sortColumnNames);
if (sortColumnNames.IsEmpty()) if (sortColumnNames.IsEmpty())
{ {
// Default sort columns. // Default sort columns.
@@ -746,8 +746,8 @@
<Primary>false</Primary> <Primary>false</Primary>
<Clustered>false</Clustered> <Clustered>false</Clustered>
<Nullable>false</Nullable> <Nullable>false</Nullable>
<Pages>69</Pages> <Pages>74</Pages>
<UniqueValues>687</UniqueValues> <UniqueValues>851</UniqueValues>
<HasColumns>false</HasColumns> <HasColumns>false</HasColumns>
<Columns> <Columns>
<DbDfnIndexColumn> <DbDfnIndexColumn>
@@ -1172,8 +1172,8 @@
<Primary>false</Primary> <Primary>false</Primary>
<Clustered>false</Clustered> <Clustered>false</Clustered>
<Nullable>false</Nullable> <Nullable>false</Nullable>
<Pages>14</Pages> <Pages>16</Pages>
<UniqueValues>603</UniqueValues> <UniqueValues>748</UniqueValues>
<HasColumns>false</HasColumns> <HasColumns>false</HasColumns>
<Columns> <Columns>
<DbDfnIndexColumn> <DbDfnIndexColumn>
@@ -1615,8 +1615,8 @@
<Primary>false</Primary> <Primary>false</Primary>
<Clustered>false</Clustered> <Clustered>false</Clustered>
<Nullable>false</Nullable> <Nullable>false</Nullable>
<Pages>19</Pages> <Pages>21</Pages>
<UniqueValues>924</UniqueValues> <UniqueValues>1014</UniqueValues>
<HasColumns>false</HasColumns> <HasColumns>false</HasColumns>
<Columns> <Columns>
<DbDfnIndexColumn> <DbDfnIndexColumn>
+3 -3
View File
@@ -210,7 +210,7 @@ namespace Saxonite.Web.Api.App
// USGA Courses. // USGA Courses.
SaxGolfUsgaDataLookup.Config courseLookupConfig = new SaxGolfUsgaDataLookup.Config(SessionContext, dbUpdateInfo); SaxGolfUsgaDataLookup.Config courseLookupConfig = new SaxGolfUsgaDataLookup.Config(SessionContext, dbUpdateInfo);
SaxGolfUsgaDataLookup courseLookup = new SaxGolfUsgaDataLookup(courseLookupConfig); SaxGolfUsgaDataLookup courseLookup = new SaxGolfUsgaDataLookup(courseLookupConfig);
List<SaxGolfUsgaDataLookup.CourseData> courses = courseLookup.LookupUsgaCoursesForCountryAndProvince("AUS", "AU-TAS"); List<SaxGolfUsgaDataLookup.CourseData> courses = courseLookup.LookupUsgaCoursesForCountryAndProvince("AUS", "AU-VIC");
SaLogger.Warn($"{SysUtil.Fn} Course lookup - found: {courses.Count}"); SaLogger.Warn($"{SysUtil.Fn} Course lookup - found: {courses.Count}");
if (courseLookup.HasErrorMessage()) if (courseLookup.HasErrorMessage())
SaLogger.Warn($"{SysUtil.Fn} Course lookup error: {courseLookup.GetErrorMessage()}"); SaLogger.Warn($"{SysUtil.Fn} Course lookup error: {courseLookup.GetErrorMessage()}");
@@ -219,12 +219,12 @@ namespace Saxonite.Web.Api.App
} }
} }
if (true) if (false)
{ {
// USGA Markers. // USGA Markers.
SaxGolfUsgaDataLookup.Config courseLookupConfig = new SaxGolfUsgaDataLookup.Config(SessionContext, dbUpdateInfo); SaxGolfUsgaDataLookup.Config courseLookupConfig = new SaxGolfUsgaDataLookup.Config(SessionContext, dbUpdateInfo);
SaxGolfUsgaDataLookup courseLookup = new SaxGolfUsgaDataLookup(courseLookupConfig); SaxGolfUsgaDataLookup courseLookup = new SaxGolfUsgaDataLookup(courseLookupConfig);
List<SaxGolfUsgaDataLookup.MarkerData> markers = courseLookup.LookupUsgaMarkersForCourse(new SysId(24579)); List<SaxGolfUsgaDataLookup.MarkerData> markers = courseLookup.LookupUsgaMarkersForCourse(new SysId(18226));
SaLogger.Warn($"{SysUtil.Fn} Marker lookup - found: {markers.Count}"); SaLogger.Warn($"{SysUtil.Fn} Marker lookup - found: {markers.Count}");
if (courseLookup.HasErrorMessage()) if (courseLookup.HasErrorMessage())
SaLogger.Warn($"{SysUtil.Fn} Marker lookup error: {courseLookup.GetErrorMessage()}"); SaLogger.Warn($"{SysUtil.Fn} Marker lookup error: {courseLookup.GetErrorMessage()}");
+1 -1
View File
@@ -9,7 +9,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="6.7.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>