using Saxonite.Net.Core.Web.Admin.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.Linq; using System.Threading.Tasks; namespace Saxonite.Net.Core.Web.Admin.Consoles { //======================================================================= public class SaxConsoleHelper_Admin : SaxConsoleHelper_Web { //------------------------------------------------------------------- // Data members: private readonly SaxApplication_Admin app; //------------------------------------------------------------------- // Construction. public SaxConsoleHelper_Admin(SaxApplication_Admin app) { this.app = app; } protected override void Dispose(bool disposing) { if (disposing) { // Clear process consoles. foreach (SaxProcessConsole_Admin processConsole in processConsoles.Values) { processConsole.Dispose(); } processConsoles.Clear(); } base.Dispose(disposing); } //------------------------------------------------------------------- // Data cache console. public override SaxDataCacheConsole GetDataCacheConsole(SaxSessionContext sessionContext) { String fn = GetType().Name + ".GetDataCacheConsole"; //throw new NotSupportedException(fn + " Data Cache Console not supported in Admin app."); return null; } //------------------------------------------------------------------- // Session data console. public override SaxSessionDataConsole GetSessionDataConsole(SaxSessionContext sessionContext) { // Method is called by Base Controller on ValidUserSession and must return null for Admin app. return null; } //------------------------------------------------------------------- // Process console. private Dictionary processConsoles { get; } = new Dictionary(); public SaxProcessConsole GetProcessConsole(SaxSessionContext sessionContext) { if (sessionContext == null) throw new NotSupportedException(GetType().Name + ".GetProcessConsole Session Context must be specified"); SaxProcessConsole_Admin processConsole = processConsoles.GetValueOrDefault(sessionContext.Index, null); if (processConsole == null) { processConsole = processConsoles[sessionContext.Index] = new SaxProcessConsole_Admin(sessionContext); } return processConsole; } //------------------------------------------------------------------- // Activity console. public override SaxActivityConsole CreateActivityConsole(SaxSessionContext sessionContext) { return new SaxActivityConsole_Admin(sessionContext); } //------------------------------------------------------------------- // Email console. public override SaxEmailConsole CreateEmailConsole(SaxSessionContext sessionContext) { SaxEmailConsole emailConsole = new SaxEmailConsole_Web(app.EmailConfig); return emailConsole; } //------------------------------------------------------------------- } //======================================================================= }