public void Execute(UniformPair <EventBean[]> result) { if (_startMethodFast != null) { int countNew = 0; int countOld = 0; if (result != null) { countNew = Count(result.First); countOld = Count(result.Second); } Object[] paramList; if (!_startMethodHasEPStatement) { paramList = new Object[] { countNew, countOld }; } else { paramList = new Object[] { _statement, countNew, countOld }; } try { _startMethodFast.Invoke(_subscriber, paramList); } catch (TargetInvocationException e) { Handle(_statement.Name, Log, e, paramList, _subscriber, _startMethodFast); } catch (Exception e) { HandleThrowable(Log, e, null, _subscriber, _startMethodFast); } } EventBean[] newData = null; EventBean[] oldData = null; if (result != null) { newData = result.First; oldData = result.Second; } if ((newData != null) && (newData.Length > 0)) { for (int i = 0; i < newData.Length; i++) { EventBean theEvent = newData[i]; if (theEvent is NaturalEventBean) { var natural = (NaturalEventBean)theEvent; Object[] paramList = _deliveryConvertor.ConvertRow(natural.Natural); try { _updateMethodFast.Invoke(_subscriber, paramList); } catch (TargetInvocationException e) { Handle(_statement.Name, Log, e, paramList, _subscriber, _updateMethodFast); } catch (Exception e) { HandleThrowable(Log, e, paramList, _subscriber, _updateMethodFast); } } } } if ((_updateRStreamMethodFast != null) && (oldData != null) && (oldData.Length > 0)) { for (int i = 0; i < oldData.Length; i++) { EventBean theEvent = oldData[i]; if (theEvent is NaturalEventBean) { var natural = (NaturalEventBean)theEvent; var paramList = _deliveryConvertor.ConvertRow(natural.Natural); try { _updateRStreamMethodFast.Invoke(_subscriber, paramList); } catch (TargetInvocationException e) { Handle(_statement.Name, Log, e, paramList, _subscriber, _updateRStreamMethodFast); } catch (Exception e) { HandleThrowable(Log, e, paramList, _subscriber, _updateRStreamMethodFast); } } } } if (_endMethodFast != null) { var paramList = _endMethodHasEPStatement ? new object[] { _statement } : new object[] { }; try { _endMethodFast.Invoke(_subscriber, paramList); } catch (TargetInvocationException e) { Handle(_statement.Name, Log, e, null, _subscriber, _endMethodFast); } catch (Exception e) { HandleThrowable(Log, e, null, _subscriber, _endMethodFast); } } }