1.2.11.14 Db query random order.
This commit is contained in:
@@ -9,10 +9,10 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<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="MSTest.TestAdapter" Version="3.4.3" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.4.3" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.5.2" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.5.2" />
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.2">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<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="MSTest.TestAdapter" Version="3.4.3" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.4.3" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.5.2" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.5.2" />
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.2">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<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.HasProvinces = SacsHierarchyItem.Params.BoolState.False;
|
||||
prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly;
|
||||
prmCountry.ResultsPaging.Set(1, 4);
|
||||
prmCountry.RandomOrder = true;
|
||||
List<SaxGolfUsgaCountry> countriesNoProvinces = internals.ReferenceGolfMgr.GetUsgaCountryList(prmCountry).Randomise();
|
||||
disposableItems.AddRange(countriesNoProvinces);
|
||||
if (countriesNoProvinces.Any())
|
||||
@@ -100,6 +102,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
||||
prmCountry.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True;
|
||||
prmCountry.HasProvinces = SacsHierarchyItem.Params.BoolState.True;
|
||||
prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly;
|
||||
prmCountry.ResultsPaging.Set(1, 4);
|
||||
prmCountry.RandomOrder = true;
|
||||
List<SaxGolfUsgaCountry> countriesWithProvinces = internals.ReferenceGolfMgr.GetUsgaCountryList(prmCountry).Randomise();
|
||||
disposableItems.AddRange(countriesWithProvinces);
|
||||
if (countriesWithProvinces.Any())
|
||||
@@ -125,6 +129,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
||||
prmProvince.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True;
|
||||
prmProvince.HasFacilities = SacsHierarchyItem.Params.BoolState.False;
|
||||
prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly;
|
||||
prmProvince.ResultsPaging.Set(1, 4);
|
||||
prmProvince.RandomOrder = true;
|
||||
List<SaxGolfUsgaProvince> provincesNoFacilities = internals.ReferenceGolfMgr.GetUsgaProvinceList(prmProvince).Randomise();
|
||||
disposableItems.AddRange(provincesNoFacilities);
|
||||
if (provincesNoFacilities.Any())
|
||||
@@ -146,6 +152,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
||||
prmProvince.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True;
|
||||
prmProvince.HasFacilities = SacsHierarchyItem.Params.BoolState.True;
|
||||
prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly;
|
||||
prmProvince.ResultsPaging.Set(1, 4);
|
||||
prmProvince.RandomOrder = true;
|
||||
List<SaxGolfUsgaProvince> provincesWithFacilities = internals.ReferenceGolfMgr.GetUsgaProvinceList(prmProvince).Randomise();
|
||||
disposableItems.AddRange(provincesWithFacilities);
|
||||
if (provincesWithFacilities.Any())
|
||||
@@ -169,6 +177,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
||||
prmCourse.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True;
|
||||
prmCourse.HasMarkers = SacsHierarchyItem.Params.BoolState.False;
|
||||
prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly;
|
||||
prmCourse.ResultsPaging.Set(1, 4);
|
||||
prmCourse.RandomOrder = true;
|
||||
List<SaxGolfUsgaCourse> coursesNoMarkers = internals.ReferenceGolfMgr.GetUsgaCourseList(prmCourse).Randomise();
|
||||
disposableItems.AddRange(coursesNoMarkers);
|
||||
if (coursesNoMarkers.Any())
|
||||
@@ -190,6 +200,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
||||
prmCourse.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True;
|
||||
prmCourse.HasMarkers = SacsHierarchyItem.Params.BoolState.True;
|
||||
prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly;
|
||||
prmCourse.ResultsPaging.Set(1, 4);
|
||||
prmCourse.RandomOrder = true;
|
||||
List<SaxGolfUsgaCourse> coursesWithMarkers = internals.ReferenceGolfMgr.GetUsgaCourseList(prmCourse).Randomise();
|
||||
disposableItems.AddRange(coursesWithMarkers);
|
||||
if (coursesWithMarkers.Any())
|
||||
@@ -213,6 +225,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
||||
SaxGolfUsgaCountry.Params prmCountry = new SaxGolfUsgaCountry.Params();
|
||||
prmCountry.HasProvinces = SacsHierarchyItem.Params.BoolState.False;
|
||||
prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly;
|
||||
prmCountry.ResultsPaging.Set(1,4);
|
||||
prmCountry.RandomOrder = true;
|
||||
List<SaxGolfUsgaCountry> countriesNoProvinces = internals.ReferenceGolfMgr.GetUsgaCountryList(prmCountry).Randomise();
|
||||
disposableItems.AddRange(countriesNoProvinces);
|
||||
if (countriesNoProvinces.Any())
|
||||
@@ -234,6 +248,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
||||
SaxGolfUsgaProvince.Params prmProvince = new SaxGolfUsgaProvince.Params();
|
||||
prmProvince.HasFacilities = SacsHierarchyItem.Params.BoolState.False;
|
||||
prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly;
|
||||
prmProvince.ResultsPaging.Set(1, 4);
|
||||
prmProvince.RandomOrder = true;
|
||||
List<SaxGolfUsgaProvince> provincesNoFacilities = internals.ReferenceGolfMgr.GetUsgaProvinceList(prmProvince).Randomise();
|
||||
disposableItems.AddRange(provincesNoFacilities);
|
||||
if (provincesNoFacilities.Any())
|
||||
@@ -254,6 +270,8 @@ namespace Saxonite.Net.Core.Web.Base.Procs
|
||||
SaxGolfUsgaCourse.Params prmCourse = new SaxGolfUsgaCourse.Params();
|
||||
prmCourse.HasMarkers = SacsHierarchyItem.Params.BoolState.False;
|
||||
prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly;
|
||||
prmCourse.ResultsPaging.Set(1, 4);
|
||||
prmCourse.RandomOrder = true;
|
||||
List<SaxGolfUsgaCourse> coursesNoMarkers = internals.ReferenceGolfMgr.GetUsgaCourseList(prmCourse).Randomise();
|
||||
disposableItems.AddRange(coursesNoMarkers);
|
||||
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;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------
|
||||
}
|
||||
//======================================================================
|
||||
}
|
||||
@@ -23,7 +23,7 @@
|
||||
</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" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<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="System.Collections.Specialized" Version="4.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
@@ -55,8 +55,8 @@
|
||||
<input type="hidden" name="LogsFilter.Filename" class="FilterLogFilename" />
|
||||
<div class="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-8 col-md-9 sax-value mb-1">@(Model.LoggingRootFolder)</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 bold">@(Model.LoggingRootFolder)</div>
|
||||
</div>
|
||||
<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>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
.sax-panel-info, .sax-panel-form
|
||||
{
|
||||
max-width: 720px;
|
||||
max-width: 800px;
|
||||
margin: 16px auto;
|
||||
padding: 0;
|
||||
background-color: #fff;
|
||||
|
||||
@@ -196,8 +196,8 @@
|
||||
{
|
||||
$dlg.dialog(
|
||||
{
|
||||
minWidth: null, maxWidth: null, width: Math.min(width || 400, $(win).width() * .95),
|
||||
minHeight: null, maxHeight: null, height: Math.min(height || 320, $(win).innerHeight() * .95)
|
||||
minWidth: null, maxWidth: null, width: Math.min(width || 400, $(win).width() * .98),
|
||||
minHeight: null, maxHeight: null, height: Math.min(height || 320, $(win).innerHeight() * .98)
|
||||
}).dialog('open');
|
||||
return $dlg;
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
if (!sl.data.awaitingGetFileResponse)
|
||||
{
|
||||
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.doAjaxRequest(sax.ajax.getFile, delay || 50);
|
||||
@@ -199,6 +199,10 @@
|
||||
sl.setFileTitle(filename || response.popupTitle);
|
||||
$('.LogFilename', $dlg.file).val(filename);
|
||||
sl.setFileData(response.file.html);
|
||||
sl.openFileDlg();
|
||||
}
|
||||
sl.openFileDlg = function ()
|
||||
{
|
||||
sax.openDialog($dlg.file, $(win).width(), $(win).height());
|
||||
}
|
||||
sl.setFileTitle = function (filename)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<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="Moment.js" Version="2.30.1" />
|
||||
<PackageReference Include="System.Collections.Specialized" Version="4.3.0" />
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
.sax-panel-info, .sax-panel-form
|
||||
{
|
||||
max-width: 720px;
|
||||
max-width: 800px;
|
||||
margin: 16px auto;
|
||||
padding: 0;
|
||||
background-color: #f8f8f8;
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
public static class Version
|
||||
{
|
||||
private static String version { get; } = "1.2.11.13";
|
||||
private static String version { get; } = "1.2.11.14";
|
||||
// Retrieve version.
|
||||
public static String GetFullVersion () { return version; }
|
||||
public static String GetAppVersion ()
|
||||
|
||||
@@ -6,7 +6,7 @@ using System.Collections.Generic;
|
||||
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
|
||||
{
|
||||
|
||||
@@ -65,17 +65,16 @@ namespace Saxonite.Net.Standard.Dbas.App
|
||||
config.Schema.InsertOnlyColumns.Add(".*", "CreateOn,CreateBy,CreateHost");
|
||||
config.Schema.InsertOnlyColumns.Add("SomeOldTable", "Code");
|
||||
// Database definition class.
|
||||
config.DefinitionClass.Usings.Clear();
|
||||
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.Utils");
|
||||
config.DefinitionClass.Namespace = "Saxonite.Base.App";
|
||||
config.DefinitionClass.Classname = "SaxDbDfn_" + dbInstance.ToString();
|
||||
// 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.Utils");
|
||||
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 = "Saxonite.Net.Standard.Dbas.Internal." + dbInstance.ToString();
|
||||
config.TableClass.BaseClass = "SaxDbDataItem";
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
@@ -9,7 +10,7 @@ using System.Data.Common;
|
||||
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
|
||||
{
|
||||
@@ -107,6 +108,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
// Existing columns - confirmed on database if table exists.
|
||||
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
|
||||
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.
|
||||
@@ -187,12 +189,17 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// 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.
|
||||
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();
|
||||
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.
|
||||
String query = "UPDATE " + TableNameFmt + " SET ";
|
||||
if (dbCommand is SqlCommand)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
@@ -9,7 +10,7 @@ using System.Data.Common;
|
||||
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
|
||||
{
|
||||
@@ -144,6 +145,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
// Existing columns - confirmed on database if table exists.
|
||||
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
|
||||
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.
|
||||
@@ -248,12 +250,17 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// 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.
|
||||
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();
|
||||
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.
|
||||
String query = "UPDATE " + TableNameFmt + " SET ";
|
||||
if (dbCommand is SqlCommand)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
@@ -9,7 +10,7 @@ using System.Data.Common;
|
||||
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
|
||||
{
|
||||
@@ -128,6 +129,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
// Existing columns - confirmed on database if table exists.
|
||||
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
|
||||
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.
|
||||
@@ -222,12 +224,17 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// 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.
|
||||
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();
|
||||
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.
|
||||
String query = "UPDATE " + TableNameFmt + " SET ";
|
||||
if (dbCommand is SqlCommand)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
@@ -9,7 +10,7 @@ using System.Data.Common;
|
||||
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
|
||||
{
|
||||
@@ -129,6 +130,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
// Existing columns - confirmed on database if table exists.
|
||||
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
|
||||
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.
|
||||
@@ -225,12 +227,17 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// 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.
|
||||
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();
|
||||
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.
|
||||
String query = "UPDATE " + TableNameFmt + " SET ";
|
||||
if (dbCommand is SqlCommand)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
@@ -9,7 +10,7 @@ using System.Data.Common;
|
||||
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
|
||||
{
|
||||
@@ -109,6 +110,7 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
// Existing columns - confirmed on database if table exists.
|
||||
public List<String> ExistingColumnNames { get { return GetExistingColumnNames(Fields); } }
|
||||
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.
|
||||
@@ -191,12 +193,17 @@ namespace Saxonite.Net.Standard.Dbas.Internal.Reference
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// 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.
|
||||
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();
|
||||
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.
|
||||
String query = "UPDATE " + TableNameFmt + " SET ";
|
||||
if (dbCommand is SqlCommand)
|
||||
|
||||
@@ -525,6 +525,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
}
|
||||
}
|
||||
sortColumnNames.RemoveBlanks();
|
||||
AddRandomSortColumn(prm, sortColumnNames);
|
||||
if (sortColumnNames.IsEmpty())
|
||||
{
|
||||
// Default sort columns.
|
||||
|
||||
@@ -611,10 +611,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
return "";
|
||||
}
|
||||
// Item sort columns.
|
||||
public List<String> GetUsgaCourseSortColumns(SaxGolfUsgaCourse.Params prm)
|
||||
public HashSet<String> GetUsgaCourseSortColumns(SaxGolfUsgaCourse.Params prm)
|
||||
{
|
||||
// Sort sequence:
|
||||
List<String> sortColumnNames = new List<String>();
|
||||
HashSet<String> sortColumnNames = new HashSet<String>();
|
||||
foreach (var columnDfn in prm.SortColumns)
|
||||
{
|
||||
// Need to ensure correct alias used for UsgaCourse columns in case of conflict.
|
||||
@@ -636,6 +636,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
}
|
||||
}
|
||||
sortColumnNames.RemoveBlanks();
|
||||
AddRandomSortColumn(prm, sortColumnNames);
|
||||
if (sortColumnNames.IsEmpty())
|
||||
{
|
||||
// Default sort columns.
|
||||
|
||||
@@ -511,10 +511,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
return "";
|
||||
}
|
||||
// Item sort columns.
|
||||
public List<String> GetUsgaFacilitySortColumns(SaxGolfUsgaFacility.Params prm)
|
||||
public HashSet<String> GetUsgaFacilitySortColumns(SaxGolfUsgaFacility.Params prm)
|
||||
{
|
||||
// Sort sequence:
|
||||
List<String> sortColumnNames = new List<String>();
|
||||
HashSet<String> sortColumnNames = new HashSet<String>();
|
||||
foreach (var columnDfn in prm.SortColumns)
|
||||
{
|
||||
// Need to ensure correct alias used for UsgaFacility columns in case of conflict.
|
||||
@@ -536,6 +536,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
}
|
||||
}
|
||||
sortColumnNames.RemoveBlanks();
|
||||
AddRandomSortColumn(prm, sortColumnNames);
|
||||
if (sortColumnNames.IsEmpty())
|
||||
{
|
||||
// Default sort columns.
|
||||
|
||||
@@ -556,10 +556,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
return "";
|
||||
}
|
||||
// Item sort columns.
|
||||
public List<String> GetUsgaMarkerSortColumns(SaxGolfUsgaMarker.Params prm)
|
||||
public HashSet<String> GetUsgaMarkerSortColumns(SaxGolfUsgaMarker.Params prm)
|
||||
{
|
||||
// Sort sequence:
|
||||
List<String> sortColumnNames = new List<String>();
|
||||
HashSet<String> sortColumnNames = new HashSet<String>();
|
||||
foreach (var columnDfn in prm.SortColumns)
|
||||
{
|
||||
// Need to ensure correct alias used for UsgaMarker columns in case of conflict.
|
||||
@@ -581,6 +581,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
}
|
||||
}
|
||||
sortColumnNames.RemoveBlanks();
|
||||
AddRandomSortColumn(prm, sortColumnNames);
|
||||
if (sortColumnNames.IsEmpty())
|
||||
{
|
||||
// Default sort columns.
|
||||
|
||||
@@ -522,10 +522,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
return "";
|
||||
}
|
||||
// Item sort columns.
|
||||
public List<String> GetUsgaProvinceSortColumns(SaxGolfUsgaProvince.Params prm)
|
||||
public HashSet<String> GetUsgaProvinceSortColumns(SaxGolfUsgaProvince.Params prm)
|
||||
{
|
||||
// Sort sequence:
|
||||
List<String> sortColumnNames = new List<String>();
|
||||
HashSet<String> sortColumnNames = new HashSet<String>();
|
||||
foreach (var columnDfn in prm.SortColumns)
|
||||
{
|
||||
// Need to ensure correct alias used for UsgaProvince columns in case of conflict.
|
||||
@@ -547,6 +547,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
|
||||
}
|
||||
}
|
||||
sortColumnNames.RemoveBlanks();
|
||||
AddRandomSortColumn(prm, sortColumnNames);
|
||||
if (sortColumnNames.IsEmpty())
|
||||
{
|
||||
// Default sort columns.
|
||||
|
||||
@@ -746,8 +746,8 @@
|
||||
<Primary>false</Primary>
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>69</Pages>
|
||||
<UniqueValues>687</UniqueValues>
|
||||
<Pages>74</Pages>
|
||||
<UniqueValues>851</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
@@ -1172,8 +1172,8 @@
|
||||
<Primary>false</Primary>
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>14</Pages>
|
||||
<UniqueValues>603</UniqueValues>
|
||||
<Pages>16</Pages>
|
||||
<UniqueValues>748</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
@@ -1615,8 +1615,8 @@
|
||||
<Primary>false</Primary>
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>19</Pages>
|
||||
<UniqueValues>924</UniqueValues>
|
||||
<Pages>21</Pages>
|
||||
<UniqueValues>1014</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
|
||||
@@ -210,7 +210,7 @@ namespace Saxonite.Web.Api.App
|
||||
// USGA Courses.
|
||||
SaxGolfUsgaDataLookup.Config courseLookupConfig = new SaxGolfUsgaDataLookup.Config(SessionContext, dbUpdateInfo);
|
||||
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}");
|
||||
if (courseLookup.HasErrorMessage())
|
||||
SaLogger.Warn($"{SysUtil.Fn} Course lookup error: {courseLookup.GetErrorMessage()}");
|
||||
@@ -219,12 +219,12 @@ namespace Saxonite.Web.Api.App
|
||||
}
|
||||
}
|
||||
|
||||
if (true)
|
||||
if (false)
|
||||
{
|
||||
// USGA Markers.
|
||||
SaxGolfUsgaDataLookup.Config courseLookupConfig = new SaxGolfUsgaDataLookup.Config(SessionContext, dbUpdateInfo);
|
||||
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}");
|
||||
if (courseLookup.HasErrorMessage())
|
||||
SaLogger.Warn($"{SysUtil.Fn} Marker lookup error: {courseLookup.GetErrorMessage()}");
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.7.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user