public InterDomainMessageResponse ProcessMessage(IInterDomainMessage message) { InterDomainMessageResponse ret = null; RoutedInterDomainMessage ridm = (RoutedInterDomainMessage)message; lock (_myRoutes) { foreach (sRoute srt in ridm.HandlerRoutes) { if (_myRoutes.Contains(srt)) { if (_messageController.HandlesMessage(ridm)) { ret = new InterDomainMessageResponse(ridm, _messageController.ProcessMessage(ridm)); break; } } } } if (ret == null) { lock (_subRoutes) { foreach (sRoute srt in ridm.HandlerRoutes) { if (_subRoutes.ContainsKey(srt)) { foreach (Core cr in _subRoutes[srt]) { if (cr.HandlesMessage(ridm)) { ret = cr.ProcessMessage(ridm); break; } } if (ret != null) break; } } } } return ret; }
public void InterceptResponse(ref InterDomainMessageResponse response) { RoutedInterDomainMessage ridm = (RoutedInterDomainMessage)response.Message; lock (_myRoutes) { foreach (sRoute srt in ridm.PostInterceptRoutes) { if (_myRoutes.Contains(srt)) { if (_messageController.InterceptsResponse(response)) _messageController.InterceptResponse(ref response); break; } } } List<Core> subCores = new List<Core>(); lock (_subRoutes) { foreach (sRoute srt in ridm.PostInterceptRoutes) { if (_subRoutes.ContainsKey(srt)) { foreach (Core cr in _subRoutes[srt]) { if (!subCores.Contains(cr)) subCores.Add(cr); } } } foreach (Core cr in subCores) cr.InterceptResponse(ref response); } }
internal InterDomainMessageResponse(InterDomainMessageResponse response, object result) { _parent = response; _response = result; _interceptors = new List<sInterceptor>(); }
internal static InterDomainMessageResponse SwapResponse(InterDomainMessageResponse response, object result) { InterDomainMessageResponse ret = new InterDomainMessageResponse(response, result); return ret; }
internal static InterDomainMessageResponse SwapResponse(InterDomainMessageResponse response, object result) { InterDomainMessageResponse ret = new InterDomainMessageResponse(response, result); return(ret); }
internal InterDomainMessageResponse(InterDomainMessageResponse response, object result) { _parent = response; _response = result; _interceptors = new List <sInterceptor>(); }