Ejemplo n.º 1
0
    public static IEventBuilder RegisterEventHandlers(this IEventBuilder builder, Func <Type, bool>?filter = null, ServiceLifetime serviceLifetime = ServiceLifetime.Transient, params Assembly[] assemblies)
    {
        Guard.NotNull(assemblies, nameof(assemblies));
        if (assemblies.Length == 0)
        {
            assemblies = Helpers.ReflectHelper.GetAssemblies();
        }

        var handlerTypes = assemblies
                           .Select(ass => ass.GetTypes())
                           .SelectMany(t => t)
                           .Where(t => !t.IsAbstract && typeof(IEventHandler).IsAssignableFrom(t));

        if (filter != null)
        {
            handlerTypes = handlerTypes.Where(filter);
        }

        foreach (var handlerType in handlerTypes)
        {
            foreach (var implementedInterface in handlerType.GetTypeInfo().ImplementedInterfaces)
            {
                if (implementedInterface.IsGenericType && typeof(IEventBase).IsAssignableFrom(implementedInterface.GenericTypeArguments[0]))
                {
                    builder.Services.TryAddEnumerable(new ServiceDescriptor(implementedInterface, handlerType, serviceLifetime));
                }
            }
        }

        return(builder);
    }
        protected override void Context()
        {
            base.Context();
            _eventGroupBuilder1        = new EventGroupBuilder().WithName("EG1");
            _eventGroupBuilder2        = new EventGroupBuilder().WithName("EG2");
            _eventBuildingBlockCreator = new EventGroupBuildingBlock {
                _eventGroupBuilder1, _eventGroupBuilder2
            };

            _startTime1        = DomainHelperForSpecs.ConstantParameterWithValue().WithName(Constants.Parameters.START_TIME);
            _startTime2        = DomainHelperForSpecs.ConstantParameterWithValue().WithName(Constants.Parameters.START_TIME);
            _dose              = DomainHelperForSpecs.ConstantParameterWithValue().WithName(CoreConstants.Parameters.DOSE);
            _dosePerBodyWeight = DomainHelperForSpecs.ConstantParameterWithValue().WithName(CoreConstants.Parameters.DOSE_PER_BODY_WEIGHT);

            _p1 = DomainHelperForSpecs.ConstantParameterWithValue().WithName("P1");
            _p2 = DomainHelperForSpecs.ConstantParameterWithValue().WithName("P2");

            _eventBuilder1 = new EventBuilder().WithName("E1");
            _eventBuilder2 = new EventBuilder().WithName("E2");

            _eventGroupBuilder1.Add(_eventBuilder1);
            _eventGroupBuilder2.Add(_eventBuilder2);

            _eventBuilder1.Add(_startTime1);
            _eventBuilder1.Add(_p1);
            _eventBuilder2.Add(_startTime2);
            _eventBuilder1.Add(_dosePerBodyWeight);
            _eventBuilder2.Add(_dose);
            _eventBuilder2.Add(_p2);
        }
Ejemplo n.º 3
0
 public static IEventBuilder AddEventHandler <TEvent, TEventHandler>(this IEventBuilder eventBuilder, ServiceLifetime serviceLifetime = ServiceLifetime.Transient)
     where TEvent : class, IEventBase
     where TEventHandler : class, IEventHandler <TEvent>
 {
     eventBuilder.Services.TryAddEnumerable(new ServiceDescriptor(typeof(IEventHandler <TEvent>), typeof(TEventHandler), serviceLifetime));
     return(eventBuilder);
 }
Ejemplo n.º 4
0
        public ThingContextFactoryTest()
        {
            _response = Substitute.For <IThingResponseBuilder>();
            _event    = Substitute.For <IEventBuilder>();
            _property = Substitute.For <IPropertyBuilder>();
            _action   = Substitute.For <IActionBuilder>();

            _factory = new ThingContextFactory(_event, _property, _response, _action);

            _event
            .Build()
            .Returns(new Dictionary <string, EventCollection>());

            _response
            .Build()
            .Returns(new Dictionary <string, object>());

            _action
            .Build()
            .Returns(new Dictionary <string, ActionCollection>());

            _property
            .Build()
            .Returns(new Dictionary <string, IThingProperty>());
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Instantiates and Initialises a new instance of the <see cref="ReplicatedSqlEventStore{TAuthenticationToken}"/> class.
        /// </summary>
        public ReplicatedSqlEventStore(IEventBuilder <TAuthenticationToken> eventBuilder, IEventDeserialiser <TAuthenticationToken> eventDeserialiser, ILogger logger, IConfigurationManager configurationManager)
            : base(eventBuilder, eventDeserialiser, logger, configurationManager)
        {
            var writableConnectionStrings = new List <string>();

            string connectionStringkey;

            if (!ConfigurationManager.TryGetSetting(SqlEventStoreConnectionNameApplicationKey, out connectionStringkey) || string.IsNullOrEmpty(connectionStringkey))
            {
                throw new NullReferenceException(string.Format("No application setting named '{0}' was found in the configuration file with the name of a connection string to look for.", SqlEventStoreConnectionNameApplicationKey));
            }
            string connectionString;
            int    writeIndex = 1;

            while (!string.IsNullOrWhiteSpace(connectionStringkey))
            {
                try
                {
                    connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringkey].ConnectionString;
                }
                catch (NullReferenceException exception)
                {
                    throw new NullReferenceException(string.Format("No connection string setting named '{0}' was found in the configuration file with the SQL Event Store connection string.", connectionStringkey), exception);
                }
                writableConnectionStrings.Add(connectionString);
                if (!ConfigurationManager.TryGetSetting(string.Format("{0}.{1}", SqlEventStoreConnectionNameApplicationKey, writeIndex), out connectionStringkey) || string.IsNullOrEmpty(connectionStringkey))
                {
                    connectionStringkey = null;
                }
                writeIndex++;
            }

            WritableConnectionStrings = writableConnectionStrings;
        }
Ejemplo n.º 6
0
 protected EventStore(IEventBuilder <TAuthenticationToken> eventBuilder, IEventDeserialiser <TAuthenticationToken> eventDeserialiser, ILogger logger)
 {
     EventBuilder      = eventBuilder;
     EventDeserialiser = eventDeserialiser;
     Logger            = logger;
     TelemetryHelper   = new NullTelemetryHelper();
 }
Ejemplo n.º 7
0
        public MemoryCacheEventStore(IEventBuilder <TAuthenticationToken> eventBuilder, IEventDeserialiser <TAuthenticationToken> eventDeserialiser, ILogger logger)
            : base(eventBuilder, eventDeserialiser, logger)
        {
            Guid id = Guid.NewGuid();

            EventStoreByType          = new MemoryCache(string.Format("EventStoreByType-{0:N}", id));
            EventStoreByCorrelationId = new MemoryCache(string.Format("EventStoreByCorrelationId-{0:N}", id));
        }
Ejemplo n.º 8
0
        private void changeAssignments(IEventBuilder startEvent, bool useAsValue, double value)
        {
            var assignment =
                startEvent.Assignments.FirstOrDefault(
                    a => a.ObjectPath.Equals(GallbladderEmptyingRatePath));

            changeAssignment(useAsValue, value, assignment);
        }
Ejemplo n.º 9
0
        public MongoDbEventStore(IEventBuilder <TAuthenticationToken> eventBuilder, IEventDeserialiser <TAuthenticationToken> eventDeserialiser, ILogger logger, IMongoDbEventStoreConnectionStringFactory mongoDbEventStoreConnectionStringFactory)
            : base(eventBuilder, eventDeserialiser, logger)
        {
            MongoDbEventStoreConnectionStringFactory = mongoDbEventStoreConnectionStringFactory;

            MongoCollection = GetCollection();
            VerifyIndexes();
        }
Ejemplo n.º 10
0
 /// <summary>
 /// Initialize a new instance of <see cref="IEventBuilder"/>.
 /// </summary>
 /// <param name="event"></param>
 /// <param name="property"></param>
 /// <param name="response"></param>
 /// <param name="action"></param>
 public ThingContextFactory(IEventBuilder @event, IPropertyBuilder property,
                            IThingResponseBuilder response, IActionBuilder action)
 {
     _event    = @event;
     _property = property;
     _response = response;
     _action   = action;
 }
 public CreateEventHandler(
     IEventBuilder eventBuilder,
     IEntityRepository <Event> eventRepository,
     ICreateEventValidator createEventValidator)
 {
     this.eventBuilder         = eventBuilder;
     this.eventRepository      = eventRepository;
     this.createEventValidator = createEventValidator;
 }
Ejemplo n.º 12
0
        public MongoDbEventStore(IEventBuilder <TAuthenticationToken> eventBuilder, IEventDeserialiser <TAuthenticationToken> eventDeserialiser, ILogger logger, IMongoDbEventStoreConnectionStringFactory mongoDbEventStoreConnectionStringFactory)
            : base(eventBuilder, eventDeserialiser, logger)
        {
            MongoDbEventStoreConnectionStringFactory = mongoDbEventStoreConnectionStringFactory;

            // ReSharper disable DoNotCallOverridableMethodsInConstructor
            MongoCollection = GetCollection();
            VerifyIndexes();
            // ReSharper restore DoNotCallOverridableMethodsInConstructor
        }
        public EventBuilderDTO MapFrom(IEventBuilder eventBuilder)
        {
            var dto = Map <EventBuilderDTO>(eventBuilder);

            dto.OneTime     = eventBuilder.OneTime;
            dto.Condition   = eventBuilder.Formula != null ? eventBuilder.Formula.Name : string.Empty;
            dto.Parameter   = eventBuilder.Parameters.MapAllUsing(_parameterToDTOParameterMapper).Cast <ParameterDTO>();
            dto.Assignments = eventBuilder.Assignments.MapAllUsing(_assignmentToDTOAssignmentMapper);
            return(dto);
        }
Ejemplo n.º 14
0
        public void SetUp()
        {
            _innerMock           = MockRepository.GenerateStrictMock <IEventBuilder>();
            _operandProviderMock = MockRepository.GenerateStrictMock <IEmittableOperandProvider>();

            _decorator = new EventBuilderDecorator(_innerMock, _operandProviderMock);

            _decoratedMethodBuilder = MockRepository.GenerateStub <IMethodBuilder>();
            _methodBuilderDecorator = new MethodBuilderDecorator(_decoratedMethodBuilder, _operandProviderMock);
        }
        public static IEventBuilder UseRedisEventBus(this IEventBuilder eventBuilder)
        {
            if (null == eventBuilder)
            {
                throw new ArgumentNullException(nameof(eventBuilder));
            }

            eventBuilder.Services.AddSingleton <IEventBus, RedisEventBus>();
            return(eventBuilder);
        }
Ejemplo n.º 16
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TableStorageEventStore{TAuthenticationToken}"/> class using the specified container.
 /// </summary>
 public TableStorageEventStore(IEventBuilder <TAuthenticationToken> eventBuilder, IEventDeserialiser <TAuthenticationToken> eventDeserialiser, ILogger logger, ITableStorageStoreConnectionStringFactory tableStorageEventStoreConnectionStringFactory, Func <ILogger, ITableStorageStoreConnectionStringFactory, bool, RawTableStorageEventStore> createRawTableStorageEventStoreFunction = null)
     : base(eventBuilder, eventDeserialiser, logger)
 {
     if (createRawTableStorageEventStoreFunction == null)
     {
         createRawTableStorageEventStoreFunction = (logger1, tableStorageEventStoreConnectionStringFactory1, isCorrelationIdTableStorageStore) => new RawTableStorageEventStore(logger1, tableStorageEventStoreConnectionStringFactory1, isCorrelationIdTableStorageStore);
     }
     TableStorageStore = createRawTableStorageEventStoreFunction(logger, tableStorageEventStoreConnectionStringFactory, false);
     CorrelationIdTableStorageStore = createRawTableStorageEventStoreFunction(logger, tableStorageEventStoreConnectionStringFactory, true);
 }
        /// <summary>
        /// Instantiates a new instance of <see cref="MemoryCacheEventStore{TAuthenticationToken}"/> and calls <see cref="StartRefreshSlidingExpirationValue"/>.
        /// </summary>
        public MemoryCacheEventStore(IConfigurationManager configurationManager, IEventBuilder <TAuthenticationToken> eventBuilder, IEventDeserialiser <TAuthenticationToken> eventDeserialiser, ILogger logger)
            : base(eventBuilder, eventDeserialiser, logger)
        {
            Guid id = Guid.NewGuid();

            ConfigurationManager      = configurationManager;
            EventStoreByType          = new MemoryCache(string.Format("EventStoreByType-{0:N}", id));
            EventStoreByCorrelationId = new MemoryCache(string.Format("EventStoreByCorrelationId-{0:N}", id));

            StartRefreshSlidingExpirationValue();
        }
Ejemplo n.º 18
0
        public void Edit(IEventBuilder eventBuilder, IEnumerable <IObjectBase> existingObjectsInParent)
        {
            _eventBuilder = eventBuilder;
            _editParametersPresenter.Edit(eventBuilder);

            if (eventBuilder.Formula != null && eventBuilder.Formula.IsExplicit())
            {
                _editFormulaPresenter.Edit(eventBuilder.Formula, _eventBuilder);
                _view.SetFormulaView(_editFormulaPresenter.BaseView);
                _view.SetSelectReferenceView(_selectReferencePresenter.View);
            }

            ((ISelectReferencePresenter)_selectReferencePresenter).Init(_eventBuilder, new[] { _eventBuilder.RootContainer }, _eventBuilder);
            var dto = _eventToEventBuilderMapper.MapFrom(eventBuilder);

            dto.AddUsedNames(_editTasks.GetForbiddenNamesWithoutSelf(eventBuilder, existingObjectsInParent));
            _view.Show(dto);
            checkFormulaName(dto.Condition);
        }
        public IEvent MapFrom(IEventBuilder eventBuilder, IBuildConfiguration buildConfiguration)
        {
            var modelEvent = _objectBaseFactory.Create <IEvent>()
                             .WithName(eventBuilder.Name)
                             .WithDimension(eventBuilder.Dimension)
                             .WithDescription(eventBuilder.Description)
                             .WithFormula(_formulaMapper.MapFrom(eventBuilder.Formula, buildConfiguration));

            buildConfiguration.AddBuilderReference(modelEvent, eventBuilder);

            eventBuilder.Assignments
            .SelectMany(x => _assignmentMapper.MapFrom(x, buildConfiguration))
            .Each(modelEvent.AddAssignment);

            foreach (var param in eventBuilder.Parameters)
            {
                modelEvent.Add(_parameterMapper.MapFrom(param, buildConfiguration));
            }

            modelEvent.OneTime = eventBuilder.OneTime;

            return(modelEvent);
        }
 private EventBuildOrganizer()
 {
     eventBuilder = new EventBuilder();
 }
 public void Setup()
 {
     bldr = new DefaultEventBuilder();
 }
 public void Teardown()
 {
     bldr = null;
 }
Ejemplo n.º 23
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BlobStorageEventStore{TAuthenticationToken}"/> class using the specified container.
 /// </summary>
 public BlobStorageEventStore(IEventBuilder <TAuthenticationToken> eventBuilder, IEventDeserialiser <TAuthenticationToken> eventDeserialiser, ILogger logger, IBlobStorageStoreConnectionStringFactory blobStorageEventStoreConnectionStringFactory)
     : base(eventBuilder, eventDeserialiser, logger)
 {
     BlobStorageStore = new RawBlobStorageEventStore(logger, blobStorageEventStoreConnectionStringFactory);
 }
Ejemplo n.º 24
0
 protected EventStore(IEventBuilder <TAuthenticationToken> eventBuilder, IEventDeserialiser <TAuthenticationToken> eventDeserialiser, ILogger logger)
 {
     EventBuilder      = eventBuilder;
     EventDeserialiser = eventDeserialiser;
     Logger            = logger;
 }
Ejemplo n.º 25
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TableStorageEventStore{TAuthenticationToken}"/> class using the specified container.
 /// </summary>
 public TableStorageEventStore(IEventBuilder <TAuthenticationToken> eventBuilder, IEventDeserialiser <TAuthenticationToken> eventDeserialiser, ILogger logger, ITableStorageStoreConnectionStringFactory tableStorageEventStoreConnectionStringFactory)
     : base(eventBuilder, eventDeserialiser, logger, tableStorageEventStoreConnectionStringFactory, (logger1, tableStorageEventStoreConnectionStringFactory1, isCorrelationIdTableStorageStore) => new RawTableStorageEventStorer(logger1, tableStorageEventStoreConnectionStringFactory1, isCorrelationIdTableStorageStore))
 {
 }
 public EventBuildOrganizer(IEventBuilder builder)
 {
     eventBuilder = builder;
 }
Ejemplo n.º 27
0
 public EventBuilderDecorator(IEventBuilder eventBuilder, IEmittableOperandProvider emittableOperandProvider)
     : base(eventBuilder, emittableOperandProvider)
 {
     _eventBuilder = eventBuilder;
 }
Ejemplo n.º 28
0
 public EventStore(IEventBuilder <TAuthenticationToken> eventBuilder, IEventDeserialiser <TAuthenticationToken> eventDeserialiser, IEventStoreConnectionHelper eventStoreConnectionHelper)
 {
     EventBuilder         = eventBuilder;
     EventDeserialiser    = eventDeserialiser;
     EventStoreConnection = eventStoreConnectionHelper.GetEventStoreConnection();
 }
Ejemplo n.º 29
0
 protected override TableStorageEventStore <Guid> CreateDataStore(IEventBuilder <Guid> eventBuilder, IEventDeserialiser <Guid> eventDeserialiser, ILogger logger, ITableStorageStoreConnectionStringFactory tableStorageEventStoreConnectionStringFactory)
 {
     return(new Events.TableStorageEventStore <Guid>(eventBuilder, eventDeserialiser, logger, tableStorageEventStoreConnectionStringFactory));
 }
Ejemplo n.º 30
0
 public EventStoreConnectionHelper(IEventBuilder <TAuthenticationToken> eventBuilder, IConfigurationManager configurationManager)
 {
     EventBuilder         = eventBuilder;
     ConfigurationManager = configurationManager;
 }
Ejemplo n.º 31
0
 public SqlEventStore(IEventBuilder <TAuthenticationToken> eventBuilder, IEventDeserialiser <TAuthenticationToken> eventDeserialiser, ILogger logger, IConfigurationManager configurationManager)
     : base(eventBuilder, eventDeserialiser, logger)
 {
     ConfigurationManager = configurationManager;
 }
Ejemplo n.º 32
0
 /// <summary>
 /// Instantiate a new instance of <see cref="AzureDocumentDbEventStore{TAuthenticationToken}"/>.
 /// </summary>
 public AzureDocumentDbEventStore(IEventBuilder <TAuthenticationToken> eventBuilder, IEventDeserialiser <TAuthenticationToken> eventDeserialiser, ILogger logger, IAzureDocumentDbHelper azureDocumentDbHelper, IAzureDocumentDbEventStoreConnectionStringFactory azureDocumentDbEventStoreConnectionStringFactory)
     : base(eventBuilder, eventDeserialiser, logger)
 {
     AzureDocumentDbHelper = azureDocumentDbHelper;
     AzureDocumentDbEventStoreConnectionStringFactory = azureDocumentDbEventStoreConnectionStringFactory;
 }