Example #1
0
        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);
            }
        }
Example #2
0
 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;
 }
Example #3
0
        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);
        }