#region Namespace using System; using System.Diagnostics; using System.Threading; using Asm.As.Oib.Client.CustomExtensions; using com.itac.mes.proxy.business; using com.itac.mes.tools; using com.itac.oib.client.customextensions; using Constants = com.itac.mes.tools.Constants; #endregion namespace Itac.Oib { /// /// Receiver class for the Changeover manager events /// public class ChangeoverReceiver : IDisposable, IReceiver { #region Fields public OIBEventHandler _eventHandler { get; set; } private readonly ChangeoverManager _changeoverManager; #endregion #region Constructor public ChangeoverReceiver(ChangeoverManager changeoverManager) { _changeoverManager = changeoverManager; _changeoverManager.LineChangeover += new Asm.As.Oib.Client.CustomExtensions.LineChangeoverEvent(ChangeoverManagerLineChangeover); } #endregion #region IDisposeable public void Dispose() { if (_changeoverManager != null) _changeoverManager.Dispose(); } #endregion #region Start/Stop public void Start() { } public void Stop() { } #endregion #region Handling of events public class LineChangeoverThread : ThreadTemplate { public LineChangeoverThread(OIBEventHandler eventHandler, Asm.As.Oib.Client.CustomExtensions.LineChangeoverEventArgs request) : base(eventHandler, request) { } public void ThreadFunction() { var mesNamespaceConformRequest = LineChangeoverEventArgsMapper.get(_request); getEventHandler().lineChangeoverEvent(mesNamespaceConformRequest); } } public void ChangeoverManagerLineChangeover(object sender, Asm.As.Oib.Client.CustomExtensions.LineChangeoverEventArgs args) { try { LogHandler.log(Constants.LOGGER, TraceEventType.Information, string.Format("Changeover completed for line '{0}'", args.Line.Name)); // interessante Infos: // String conveyorModeString = args.Line.StationInLines[0].StationConveyorSystem.ConveyorMode.ToString(); // com.itac.oib.client.customextensions.LineChangeoverEventArgs lineChangeoverEvent = LineChangeoverEventArgsMapper.get(args); // if (lineChangeoverEvent == null) // { // LogHandler.log(Constants.LOGGER, TraceEventType.Error, "LineChangeover not converted"); // return; // } var mmt = new LineChangeoverThread(_eventHandler, args); var thread = new Thread(mmt.ThreadFunction); thread.Start(); } catch (Exception e) { LogHandler.log(Constants.LOGGER, TraceEventType.Information, string.Format("LineChangeover could not be pushed to java receiver"), e); } } #endregion internal com.itac.oib.client.customextensions.LineChangeoverEventArgs getCurrentLineProductionData() { com.itac.oib.client.customextensions.LineChangeoverEventArgs lineChangeoverEvent = LineChangeoverEventArgsMapper.get(_changeoverManager.GetCurrentLineProductionData()); if (lineChangeoverEvent == null) { LogHandler.log(Constants.LOGGER, TraceEventType.Error, "LineChangeover not converted"); return null; } return lineChangeoverEvent; } } }