v1.2.3.1
This commit is contained in:
@@ -134,39 +134,46 @@ namespace Saxonite.Net.Core.Web.Base.Consoles
|
||||
{
|
||||
String fn = GetType().Name + ".RefreshRegions";
|
||||
if (!RegionsSupported) throw new NotSupportedException(fn + " Regions not supported.");
|
||||
SaLogger.Info(fn + " START.", false);
|
||||
DateTime startedAt = DateTime.Now;
|
||||
|
||||
// Refreshed lists will be populated in isolation and then used to instantaneously replace the cache lists.
|
||||
Dictionary<SysId, SaxRegion.Data> newRegionDataMap = new Dictionary<SysId, SaxRegion.Data>();
|
||||
List<SaxRegion.Data> newActiveRegionDataList = new List<SaxRegion.Data>();
|
||||
|
||||
// Query Regions to replace cache.
|
||||
SaxRegion.Params prmRegion = new SaxRegion.Params();
|
||||
prmRegion.StatusCat = SaxRegion.StatusCat.NotDeleted;
|
||||
foreach (SaxRegion region in data.internals.ReferenceMgr.GetRegionList(prmRegion))
|
||||
try
|
||||
{
|
||||
// Only interested in retaining the Data objects.
|
||||
newRegionDataMap[region.Id] = region.GetData();
|
||||
region.Dispose();
|
||||
}
|
||||
DateTime startedAt = DateTime.Now;
|
||||
|
||||
// Populate replacement list of active regions.
|
||||
foreach (SaxRegion.Data regionData in newRegionDataMap.GetValues())
|
||||
{
|
||||
if (IsRegionActive(newRegionDataMap, regionData))
|
||||
newActiveRegionDataList.Add(regionData.Clone());
|
||||
}
|
||||
// Refreshed lists will be populated in isolation and then used to instantaneously replace the cache lists.
|
||||
Dictionary<SysId, SaxRegion.Data> newRegionDataMap = new Dictionary<SysId, SaxRegion.Data>();
|
||||
List<SaxRegion.Data> newActiveRegionDataList = new List<SaxRegion.Data>();
|
||||
|
||||
// Replace the list of Regions.
|
||||
lock (regionsData)
|
||||
{
|
||||
// Assign the refreshed regions and active regions.
|
||||
// NB The old regions don't need to be disposed as they are SaxRegion.Data objects.
|
||||
regionsData.regionDataMap = newRegionDataMap;
|
||||
regionsData.activeRegionDataList = newActiveRegionDataList;
|
||||
// Query Regions to replace cache.
|
||||
SaxRegion.Params prmRegion = new SaxRegion.Params();
|
||||
prmRegion.StatusCat = SaxRegion.StatusCat.NotDeleted;
|
||||
foreach (SaxRegion region in data.internals.ReferenceMgr.GetRegionList(prmRegion))
|
||||
{
|
||||
// Only interested in retaining the Data objects.
|
||||
newRegionDataMap[region.Id] = region.GetData();
|
||||
region.Dispose();
|
||||
}
|
||||
|
||||
// Populate replacement list of active regions.
|
||||
foreach (SaxRegion.Data regionData in newRegionDataMap.GetValues())
|
||||
{
|
||||
if (IsRegionActive(newRegionDataMap, regionData))
|
||||
newActiveRegionDataList.Add(regionData.Clone());
|
||||
}
|
||||
|
||||
// Replace the list of Regions.
|
||||
lock (regionsData)
|
||||
{
|
||||
// Assign the refreshed regions and active regions.
|
||||
// NB The old regions don't need to be disposed as they are SaxRegion.Data objects.
|
||||
regionsData.regionDataMap = newRegionDataMap;
|
||||
regionsData.activeRegionDataList = newActiveRegionDataList;
|
||||
}
|
||||
SaLogger.Info(fn + " Regions found: " + regionsData.regionDataMap.Count + ". Elapsed: " + DateUtil.FormatNumberOfSeconds((DateTime.Now - startedAt).TotalSeconds));
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SaLogger.Error(fn + ExceptionUtil.GetLogMessage(exc, "refreshing Regions cache"));
|
||||
}
|
||||
SaLogger.Info(fn + " END. Regions found: " + regionsData.regionDataMap.Count + ". Elapsed: " + DateUtil.FormatNumberOfSeconds((DateTime.Now - startedAt).TotalSeconds));
|
||||
}
|
||||
private static bool IsRegionActive(Dictionary<SysId, SaxRegion.Data> regionDataMap, SaxRegion.Data regionData)
|
||||
{
|
||||
@@ -223,39 +230,46 @@ namespace Saxonite.Net.Core.Web.Base.Consoles
|
||||
{
|
||||
String fn = GetType().Name + ".RefreshSports";
|
||||
if (!SportsSupported) throw new NotSupportedException(fn + " Sports not supported.");
|
||||
SaLogger.Info(fn + " START.", false);
|
||||
DateTime startedAt = DateTime.Now;
|
||||
|
||||
// Refreshed lists will be populated in isolation and then used to instantaneously replace the cache lists.
|
||||
Dictionary<SysId, SaxSport.Data> newSportDataMap = new Dictionary<SysId, SaxSport.Data>();
|
||||
List<SaxSport.Data> newActiveSportDataList = new List<SaxSport.Data>();
|
||||
|
||||
// Query Sports to replace cache.
|
||||
SaxSport.Params prmSport = new SaxSport.Params();
|
||||
prmSport.StatusCat = SaxSport.StatusCat.NotDeleted;
|
||||
foreach (SaxSport sport in data.internals.ReferenceMgr.GetSportList(prmSport))
|
||||
try
|
||||
{
|
||||
// Only interested in retaining the Data objects.
|
||||
newSportDataMap[sport.Id] = sport.GetData();
|
||||
sport.Dispose();
|
||||
}
|
||||
DateTime startedAt = DateTime.Now;
|
||||
|
||||
// Populate replacement list of active sports.
|
||||
foreach (SaxSport.Data sportData in newSportDataMap.GetValues())
|
||||
{
|
||||
if (IsSportActive(newSportDataMap, sportData))
|
||||
newActiveSportDataList.Add(sportData.Clone());
|
||||
}
|
||||
// Refreshed lists will be populated in isolation and then used to instantaneously replace the cache lists.
|
||||
Dictionary<SysId, SaxSport.Data> newSportDataMap = new Dictionary<SysId, SaxSport.Data>();
|
||||
List<SaxSport.Data> newActiveSportDataList = new List<SaxSport.Data>();
|
||||
|
||||
// Replace the list of Sports.
|
||||
lock (sportsData)
|
||||
{
|
||||
// Assign the refreshed sports and active sports.
|
||||
// NB The old sports don't need to be disposed as they are SaxSport.Data objects.
|
||||
sportsData.sportDataMap = newSportDataMap;
|
||||
sportsData.activeSportDataList = newActiveSportDataList;
|
||||
// Query Sports to replace cache.
|
||||
SaxSport.Params prmSport = new SaxSport.Params();
|
||||
prmSport.StatusCat = SaxSport.StatusCat.NotDeleted;
|
||||
foreach (SaxSport sport in data.internals.ReferenceMgr.GetSportList(prmSport))
|
||||
{
|
||||
// Only interested in retaining the Data objects.
|
||||
newSportDataMap[sport.Id] = sport.GetData();
|
||||
sport.Dispose();
|
||||
}
|
||||
|
||||
// Populate replacement list of active sports.
|
||||
foreach (SaxSport.Data sportData in newSportDataMap.GetValues())
|
||||
{
|
||||
if (IsSportActive(newSportDataMap, sportData))
|
||||
newActiveSportDataList.Add(sportData.Clone());
|
||||
}
|
||||
|
||||
// Replace the list of Sports.
|
||||
lock (sportsData)
|
||||
{
|
||||
// Assign the refreshed sports and active sports.
|
||||
// NB The old sports don't need to be disposed as they are SaxSport.Data objects.
|
||||
sportsData.sportDataMap = newSportDataMap;
|
||||
sportsData.activeSportDataList = newActiveSportDataList;
|
||||
}
|
||||
SaLogger.Info(fn + " Sports found: " + sportsData.sportDataMap.Count + ". Elapsed: " + DateUtil.FormatNumberOfSeconds((DateTime.Now - startedAt).TotalSeconds));
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
SaLogger.Error(fn + ExceptionUtil.GetLogMessage(exc, "refreshing Sports cache"));
|
||||
}
|
||||
SaLogger.Info(fn + " END. Sports found: " + sportsData.sportDataMap.Count + ". Elapsed: " + DateUtil.FormatNumberOfSeconds((DateTime.Now - startedAt).TotalSeconds));
|
||||
}
|
||||
private static bool IsSportActive(Dictionary<SysId, SaxSport.Data> sportDataMap, SaxSport.Data sportData)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user