87 lines
3.0 KiB
C#
87 lines
3.0 KiB
C#
using Sarand.Net.Standard.Base.Core;
|
|
using Sarand.Net.Standard.Base.Utils;
|
|
using Saxonite.Net.Core.Web.Base.Consoles;
|
|
using Saxonite.Net.Standard.Base.App;
|
|
using Saxonite.Net.Standard.Base.Consoles;
|
|
using Saxonite.Web.Api.App;
|
|
|
|
namespace Saxonite.Web.Api.Consoles
|
|
{
|
|
//=======================================================================
|
|
public class SaxConsoleHelper_Api : SaxConsoleHelper_Web
|
|
{
|
|
//-------------------------------------------------------------------
|
|
// Data members:
|
|
private readonly SaxApplication_Api app;
|
|
|
|
//-------------------------------------------------------------------
|
|
// Construction.
|
|
public SaxConsoleHelper_Api(SaxApplication_Api app)
|
|
{
|
|
this.app = app;
|
|
}
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
if (disposing)
|
|
{
|
|
// Clear process consoles.
|
|
foreach (SaxProcessConsole_Api? processConsole in processConsoles.Values)
|
|
{
|
|
if (processConsole != null)
|
|
processConsole.Dispose();
|
|
}
|
|
processConsoles.Clear();
|
|
}
|
|
base.Dispose(disposing);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Data cache console.
|
|
public override SaxDataCacheConsole? GetDataCacheConsole(SaxSessionContext sessionContext)
|
|
{
|
|
//throw new NotSupportedException(fn + " Data Cache Console not supported in API 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_Api?> processConsoles { get; } = new Dictionary<ushort, SaxProcessConsole_Api?>();
|
|
public SaxProcessConsole GetProcessConsole(SaxSessionContext sessionContext)
|
|
{
|
|
if (sessionContext == null) throw new NotSupportedException($"{SysUtil.Fn} Session Context must be specified.");
|
|
SaxProcessConsole_Api? processConsole = processConsoles.GetValueOrDefault(sessionContext.Index, null);
|
|
if (processConsole == null)
|
|
{
|
|
processConsole = processConsoles[sessionContext.Index] = new SaxProcessConsole_Api(sessionContext);
|
|
}
|
|
return processConsole;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Activity console.
|
|
public override SaxActivityConsole CreateActivityConsole(SaxSessionContext sessionContext)
|
|
{
|
|
return new SaxActivityConsole_Api(sessionContext);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Email console.
|
|
public override SaxEmailConsole CreateEmailConsole(SaxSessionContext sessionContext)
|
|
{
|
|
SaxEmailConsole emailConsole = new SaxEmailConsole_Web(app.EmailConfig);
|
|
return emailConsole;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|