1.2.11.14 Db query random order.
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
}
|
||||||
|
//======================================================================
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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()}");
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user