123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Collections.Generic;
- using System.Threading;
- using System.Reflection;
- using System.Runtime.InteropServices;
- using System.Net;
- using System.Net.Sockets;
- using System.Diagnostics;
- using Wayne.FDCPOSInterface.Configuration;
- using Wayne.FDCPOSLibrary;
- using Microsoft.Extensions.Logging;
- using Microsoft.Extensions.DependencyInjection;
- namespace Wayne.FDCPOSInterface
- {
- public abstract class FDCPOSManager
- {
- //[ComVisible(false)]
- //public static SINPFileTrace tracer = null;
- public Dictionary<string, FDCPOSClient> fdcClientList;
- [ComVisible(false)]
- public static long messageIdCounter = 1;
- [ComVisible(false)]
- public bool encryptedHeader;
- [ComVisible(false)]
- public string forecourtConfiguration;
- [ComVisible(false)]
- public bool useExtensions;
- [ComVisible(false)]
- public string certificate;
- public FDCPOSManager()
- {
- encryptedHeader = false;
- fdcClientList = new Dictionary<string, FDCPOSClient>();
- forecourtConfiguration = "";
- FDCGlobal.ProtocolVersion = FDCVersion.V0003;
- useExtensions = true;
- certificate = certificateType.NONE;
- }
- public abstract void DisconnectClient(FDCPOSClient fdcposClient);
- }
- public class FDCPOSInterfaceServerManager : FDCPOSManager
- {
- //protected static NLog.Logger fdcSocketLogger = NLog.LogManager.LoadConfiguration("nlog.config").GetLogger("FdcServerSocket");
- protected ILogger fdcSocketLogger;
- //= ServiceBuilder.Provider
- //.GetRequiredService<ILoggerFactory>().CreateLogger("FdcServerSocket");
- public static string FDCPOSServerApplication = "FDCPOSServer@@@";
- public static FDCPOSManager fdcPosManager;
- public FDCPOSInterfaceServer fdcPosInterface;
- private TcpListener _socketChannelA = null;
- [ComVisible(false)]
- public TcpListener socketChannelA
- {
- get { return _socketChannelA; }
- set { _socketChannelA = value; }
- }
- [ComVisible(false)]
- public FdcServerTcpHandler FdcServerTcpHandler;
- public FDCPOSInterfaceServerManager(IServiceProvider services)
- : base()
- {
- var loggerFactory = services.GetRequiredService<ILoggerFactory>();
- this.fdcSocketLogger = loggerFactory.CreateLogger("DynamicPrivate_FdcServerSocket");
- }
- public override void DisconnectClient(FDCPOSClient fdcPosClient)
- {
- string fdcClientId = FDCPOSClient.getClientID(fdcPosClient.workstationID, fdcPosClient.applicationSender);
- try
- {
- fdcSocketLogger.LogDebug(" Removing Client: " + fdcClientId + " from client list");
- try
- {
- fdcPosInterface.messages.RemovePendingMessages(fdcClientId);
- }
- finally
- {
- fdcPosClient.heartbeat?.Dispose();
- fdcClientList.Remove(fdcClientId);
- fdcPosManager.fdcClientList.Remove(fdcClientId);
- fdcPosInterface.Disconnect(fdcPosClient.workstationID, fdcPosClient.applicationSender);
- fdcSocketLogger.LogDebug(" removed Client: " + fdcClientId);
- }
- }
- catch (Exception e)
- {
- fdcSocketLogger.LogError(" Removing Client: " + fdcClientId + " exceptioned: " + e);
- }
- }
- }
- public class FDCPOSConfigurationManager : FDCPOSManager
- {
- public static FDCPOSConfigurationManager fdcposManager = null;
- public ConfigurationInterface configurationInterface;
- private TcpListener _socketChannelConfig = null;
- [ComVisible(false)]
- public TcpListener socketChannelConfig
- {
- get { return _socketChannelConfig; }
- set { _socketChannelConfig = value; }
- }
- [ComVisible(false)]
- public FdcServerTcpHandler respChannelConfigThreadObj;
- public FDCPOSConfigurationManager()
- : base()
- {
- }
- public override void DisconnectClient(FDCPOSClient fdcposClient)
- {
- }
- }
- }
|