#region Namespace using System; using System.Diagnostics; using Asm.As.Oib.Client; using Asm.As.Oib.SiplaceSetupCenter.Contracts.Data; using com.itac.mes.proxy; using com.itac.mes.proxy.business; #endregion namespace Itac.Oib { // [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] public class DekPrinterExternalControlReceiver : IDisposable, IReceiver { #region Fields private readonly OibDekPrinterExtenalControlEvents _oibDekPrinterExternalControlEvents; public OIBEventHandler _eventHandler { get; set; } #endregion #region constructor, event delegate assignment public DekPrinterExternalControlReceiver(OibDekPrinterExtenalControlEvents oibSetupCenterExternalControlEvents) { _oibDekPrinterExternalControlEvents = oibSetupCenterExternalControlEvents; oibSetupCenterExternalControlEvents.VerifyPrinterMaterial = VerifyPrinterMaterial; oibSetupCenterExternalControlEvents.VerifyPrinterTool = VerifyPrinterTool; } #endregion #region Start/Stop public void Start() { _oibDekPrinterExternalControlEvents.Start(); } public void Stop() { _oibDekPrinterExternalControlEvents.Stop(); } #endregion public OIBEventHandler getEventHandler(Object request) { if (_eventHandler == null) { if (request == null) { throw new Exception("missing event handler to transport unknown message"); } throw new Exception("missing event handler to transport message of type " + request.GetType().Name); } return _eventHandler; } #region IDekPrinterCenterExternalControl Members private void startCall(string method) { LogHandler.log(Constants.LOGGER, TraceEventType.Verbose, String.Format("DekPrinterExternalControl.{0} called", method)); } public VerifyPrinterToolResponse VerifyPrinterTool(VerifyPrinterToolRequest request) { startCall("VerifyPrinterTool"); var mesNamespaceConformRequest = com.itac.oib.siplacesetupcenter.contracts.data.VerifyPrinterToolRequestMapper.get(request); VerifyPrinterToolResponse oibResult = null; try { var mesNamespaceConformResult = getEventHandler(request).verifyPrinterTool(mesNamespaceConformRequest); oibResult = com.itac.oib.siplacesetupcenter.contracts.data.VerifyPrinterToolResponseMapper.get(mesNamespaceConformResult); } catch (Exception e) { LogHandler.log(Constants.LOGGER, TraceEventType.Error, "failed to process VerifyPrinterToolRequest", e); } return oibResult; } public VerifyPrinterMaterialResponse VerifyPrinterMaterial(VerifyPrinterMaterialRequest request) { startCall("VerifyPrinterMaterial"); var mesNamespaceConformRequest = com.itac.oib.siplacesetupcenter.contracts.data.VerifyPrinterMaterialRequestMapper.get(request); VerifyPrinterMaterialResponse oibResult = null; try { var mesNamespaceConformResult = getEventHandler(request).verifyPrinterMaterial(mesNamespaceConformRequest); oibResult = com.itac.oib.siplacesetupcenter.contracts.data.VerifyPrinterMaterialResponseMapper.get(mesNamespaceConformResult); } catch (Exception e) { LogHandler.log(Constants.LOGGER, TraceEventType.Error, "failed to process VerifyPrinterMaterialRequest", e); } return oibResult; } #endregion #region IDisposeable public void Dispose() { if (_oibDekPrinterExternalControlEvents != null) _oibDekPrinterExternalControlEvents.Dispose(); } #endregion } }