90 lines
3.1 KiB
C#
90 lines
3.1 KiB
C#
using Sarand.Net.Standard.Base.Utils;
|
|
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<ushort, SaxProcessConsole_Admin> processConsoles { get; } = new Dictionary<ushort, SaxProcessConsole_Admin>();
|
|
public SaxProcessConsole GetProcessConsole(SaxSessionContext sessionContext)
|
|
{
|
|
if (sessionContext == null) throw new NotSupportedException($"{SysUtil.Fn} 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;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|