private void _eventQueue_ReceiveCompleted(object sender, ReceiveCompletedEventArgs e) { if (!IsExiting()) { if (e.Message?.Body != null && e.Message.Body is RFWorkQueueItem) { var wki = e.Message.Body as RFWorkQueueItem; if (wki.Item is RFEvent) { var evt = wki.Item as RFEvent; Log.Debug(this, "Received event {0} from MSMQ", evt); _eventSink.RaiseEvent(this, evt, wki.ProcessingKey); } else if (wki.Item is RFInstruction) { var ins = wki.Item as RFInstruction; Log.Debug(this, "Received instruction {0} from MSMQ", ins); _instructionSink.QueueInstruction(this, ins, wki.ProcessingKey); } else { Log.Warning(this, "Unknown item type on MSMQ event queue: {0}", wki.Item.GetType().FullName); } } _eventQueue.BeginReceive(); } }
public void QueueInstruction(object raisedBy, RFInstruction instruction) { _instructions.QueueInstruction(raisedBy, instruction, ProcessingKey); }