示例#1
0
        private async Task RefreshDataAsync(INonTerminalDescriptor descriptor, IEnumerable <ITerminalDescriptor> freshComposition)
        {
            await UpdateCompositionAndAcquireAdditionsAsync(descriptor, freshComposition);

            EventsAggregator.PublishDataChangedEvent(descriptor);
            EventsAggregator.PublishCompositionChangedEvent(descriptor);
        }
示例#2
0
        public void Buy(int money)
        {
            var buyUpgrade = new BuyUpgrade(Price, Bonus, 2);

            buyUpgrade.Buy(0);
            Bonus = buyUpgrade.Bonus;
            Price = buyUpgrade.Price;
            EventsAggregator.Publish();
        }
示例#3
0
        private async Task RefreshDataAsync(ITerminalDescriptor descriptor, IInstanceRetrievalContext <TData> freshData)
        {
            var instance = DataPool.Retrieve(descriptor);

            await DataPool.SaveAsync(descriptor, freshData);

            EventsAggregator.PublishDataChangedEvent(descriptor);
            EventsAggregator.PublishInstanceChangedEvent(new InstanceChangedEventArgs <TData>(descriptor, instance));
        }
        public void Publish_WhenSubscriberThrowsExceptionAndLoggerFactoryIsNull_UseLogger()
        {
            var target     = new EventsAggregator(_metricsReporter, _exceptionLogger);
            var subscriber = new FlawedSubscriber();

            subscriber.SubscribeForEvents(target);

            target.Publish(new DummyEvent());

            _exceptionLogger.AssertWasCalled(x => x.Error(Arg <Type> .Is.Anything, Arg <IEvent> .Is.Anything, Arg <Exception> .Is.Anything));
        }