1.2.11.12 Online Events

This commit is contained in:
2024-08-20 17:51:32 +01:00
parent 780e6778e5
commit 41db4e63d4
158 changed files with 6945 additions and 666 deletions
@@ -1,14 +1,20 @@
using Sacs.Web.Components;
using Microsoft.AspNetCore.Mvc;
using Sacs.Web.Components;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Email;
using Sarand.Net.Standard.Base.Utils;
using Saxonite.Net.Core.Web.Base.App;
using Saxonite.Net.Standard.Base.App;
using Saxonite.Net.Standard.Base.Bus;
using Saxonite.Net.Standard.Base.Consoles;
using Saxonite.Net.Standard.Base.Mgr;
using Saxonite.Net.Standard.Base.Mgr.Reference;
using Saxonite.Net.Standard.Base.Mgr.Support;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Saxonite.Net.Core.Web.Base.Controllers
{
@@ -65,6 +71,7 @@ namespace Saxonite.Net.Core.Web.Base.Controllers
public SaxSupportMgr SupportMgr { get { return Internals.SupportMgr; } }
// System codes.
public List<TypeCodeDesc> DataItemTypeCodes { get { return Internals.DataItemTypeCodes; } }
public List<TypeCodeDesc> SportGroupingCodes { get { return Internals.SportGroupingCodes; } }
public List<TypeCodeDesc> SportSpecialityLabelCodes { get { return Internals.SportSpecialityLabelCodes; } }
public List<TypeCodeDesc> SportContactTypeCodes { get { return Internals.SportContactTypeCodes; } }
public List<TypeCodeDesc> SportParticipatingCodes { get { return Internals.SportParticipatingCodes; } }
@@ -88,6 +95,52 @@ namespace Saxonite.Net.Core.Web.Base.Controllers
public SaEmailConfig EmailConfig { get { return App.EmailConfig; } }
public SaxEmailConsole EmailConsole { get { return Internals.EmailConsole; } }
//-------------------------------------------------------------------
[NonAction]
/// <summary>
/// Retrieve sport by matching the name and include groups as required.
/// </summary>
/// <param name="sportName"></param>
/// <param name="includeGroups"></param>
/// <returns>List of matching sports.</returns>
public List<SaxSport.Data> GetSportsByName(String sportName, bool includeGroups = false)
{
List<SaxSport.Data> sportsData = new List<SaxSport.Data>();
if (DataCacheConsole != null)
{
List<SaxSport.Data> allSports = DataCacheConsole.GetActiveSports();
foreach (SaxSport.Data sport in allSports.Where(item => item.Name.EqualsCI(sportName)))
{
sportsData.Add(sport);
if (!includeGroups) continue;
foreach (SaxSport.Data sportParent in allSports.Where(item => item.Id.Equals(sport.SportIdParent)))
sportsData.Add(sportParent);
}
}
else
{
// Data cache is not available.
// Query direct from the database (Admin).
Dictionary<SysId, SaxSport> sports = new Dictionary<SysId, SaxSport>();
// Sport by name.
SaxSport.Params prmSport = new SaxSport.Params();
prmSport.NameFull = sportName;
sports.AddRange(ReferenceMgr.GetSportList(prmSport).ToDictionary(item => item.Id));
if (includeGroups)
{
// Parent sports.
prmSport = new SaxSport.Params();
prmSport.IdsIncluded.AddIds(sports.Values.Where(item => SysId.IsValid(item.SportIdParent)).Select(item => item.SportIdParent));
if (prmSport.IdsIncluded.Any())
sports.AddRange(ReferenceMgr.GetSportList(prmSport).ToDictionary(item => item.Id));
}
sportsData = sports.Values.Select(item => item.GetData()).ToList();
}
return sportsData;
}
//-------------------------------------------------------------------
}
//=======================================================================