private bool SendMessage(Type type, object message, RouteType routeType, string context, uint priority, string remoteBoundedContext = null) { RouteMap routeMap = DefaultRouteMap; if (context != null) { routeMap = Contexts.FirstOrDefault(bc => bc.Name == context); if (routeMap == null) { throw new ArgumentException($"bound context {context} not found", nameof(context)); } } var telemtryOperation = TelemetryHelper.InitTelemetryOperation( routeType == RouteType.Commands ? "Cqrs send command" : "Cqrs publish event", type.Name, context, remoteBoundedContext); try { var published = routeMap.PublishMessage( MessagingEngine, type, message, routeType, priority, remoteBoundedContext); if (!published && routeType == RouteType.Commands) { published = DefaultRouteMap.PublishMessage( MessagingEngine, type, message, routeType, priority, remoteBoundedContext); } return(published); } catch (Exception e) { TelemetryHelper.SubmitException(telemtryOperation, e); throw; } finally { TelemetryHelper.SubmitOperationResult(telemtryOperation); } }
public CqrsEngine( ILog log, IDependencyResolver dependencyResolver, IMessagingEngine messagingEngine, IEndpointProvider endpointProvider, bool createMissingEndpoints, bool enableInputMessagesLogging, params IRegistration[] registrations) { Log = log; _createMissingEndpoints = createMissingEndpoints; DependencyResolver = dependencyResolver; _registrations = registrations; EndpointResolver = new DefaultEndpointResolver(); MessagingEngine = messagingEngine; _endpointProvider = endpointProvider; Contexts = new List <Context>(); DefaultRouteMap = new RouteMap("default"); EnableInputMessagesLogging = enableInputMessagesLogging; }
public CqrsEngine( ILog log, IDependencyResolver dependencyResolver, IMessagingEngine messagingEngine, IEndpointProvider endpointProvider, bool createMissingEndpoints, params IRegistration[] registrations) { _log = log; _createMissingEndpoints = createMissingEndpoints; DependencyResolver = dependencyResolver; EndpointResolver = new DefaultEndpointResolver(); MessagingEngine = messagingEngine; _endpointProvider = endpointProvider; Contexts = new List <Context>(); DefaultRouteMap = new RouteMap("default"); CommandInterceptorsQueue = new CommandInterceptorsQueue(); EventInterceptorsQueue = new EventInterceptorsQueue(); InitRegistrations(registrations); }