using Sarand.Net.Standard.Base.App; using Saxonite.Net.Core.Web.Base.Consoles; using Saxonite.Net.Standard.Base.App; using Saxonite.Net.Standard.Base.Consoles; using System; using System.Collections.Generic; using System.Text; namespace Saxonite.Net.Core.Web.Online.Consoles { //======================================================================= public class SaxDataCacheConsole_Online : SaxDataCacheConsole_Web { //------------------------------------------------------------------- private System.Timers.Timer refreshTimer; //------------------------------------------------------------------- // Construction. public SaxDataCacheConsole_Online(SaxSessionContext sessionContext) : base(sessionContext) { String fn = GetType().Name + ".CTR"; RegionsSupported = true; SportsSupported = true; // Initialise refresh timer. refreshTimer = new System.Timers.Timer(Math.Max(2, Sax.Config.Online.DataCache.RefreshIntervalSecs.Initial) * 1000); refreshTimer.Elapsed += RefreshTimer_Elapsed; refreshTimer.Start(); SaLogger.Info(fn + " Refresh timer initialised. Interval: " + refreshTimer.Interval, true); } //------------------------------------------------------------------- // Utilities. protected override void ForceRefresh() { String fn = GetType().Name + ".ForceRefresh"; SaLogger.Warn(fn + " Refresh timer initialised", true); RefreshData(); } //------------------------------------------------------------------- // Refresh data cache. private void RefreshTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { refreshTimer.Stop(); RefreshData(); } private void RefreshData() { refreshTimer.Stop(); if (RegionsSupported) RefreshRegions(); if (SportsSupported) RefreshSports(); refreshTimer.Interval = Math.Max(10, Sax.Config.Online.DataCache.RefreshIntervalSecs.Periodic) * 1000; refreshTimer.Start(); } //------------------------------------------------------------------- } //======================================================================= }