Пример #1
0
        public override void SetUp()
        {
            base.SetUp();

            using (VirtualClock.Start(DateTimeOffset.Now.AddMonths(1)))
            {
                disposables      = new CompositeDisposable();
                Settings.Sources = new ISettingsSource[] { new ConfigDirectorySettings(@"c:\dev\.config") }.Concat(Settings.Sources);

                serviceBusSettings                = Settings.Get <ServiceBusSettings>();
                serviceBusSettings.NamePrefix     = "itscqrstests";
                serviceBusSettings.ConfigureQueue = q =>
                {
                    q.AutoDeleteOnIdle = TimeSpan.FromMinutes(15);
                };

                bus             = new FakeEventBus();
                orderRepository = new SqlEventSourcedRepository <Order>(bus);

                var configuration = new Configuration()
                                    .UseSqlEventStore(() => new EventStoreDbContext())
                                    .UseEventBus(bus)
                                    .UseSqlCommandScheduling()
                                    .UseDependency <IEventSourcedRepository <Order> >(t => orderRepository);

                var clockName = Any.Paragraph(4);
                scheduler = new SqlCommandScheduler(configuration)
                {
                    GetClockName = @event => clockName
                };

                queueSender = new ServiceBusCommandQueueSender(serviceBusSettings)
                {
                    MessageDeliveryOffsetFromCommandDueTime = TimeSpan.FromSeconds(30)
                };

                disposables.Add(scheduler.Activity.Subscribe(s => Console.WriteLine("SqlCommandScheduler: " + s.ToJson())));
                disposables.Add(queueSender.Messages.Subscribe(s => Console.WriteLine("ServiceBusCommandQueueSender: " + s.ToJson())));
                disposables.Add(bus.Subscribe(scheduler));
                disposables.Add(configuration);
                disposables.Add(ConfigurationContext.Establish(configuration));
            }
        }
Пример #2
0
        public override void SetUp()
        {
            base.SetUp();

            schedulerActivity = new List <IScheduledCommand <Order> >();

            using (VirtualClock.Start(DateTimeOffset.Now.AddMonths(1)))
            {
                disposables = new CompositeDisposable();

                serviceBusSettings                = Settings.Get <ServiceBusSettings>();
                serviceBusSettings.NamePrefix     = "itscqrstests";
                serviceBusSettings.ConfigureQueue = q => { q.AutoDeleteOnIdle = TimeSpan.FromMinutes(15); };

                var clockName = Any.Paragraph(4);

                var configuration = new Configuration()
                                    .UseSqlEventStore(c => c.UseConnectionString(TestDatabases.EventStore.ConnectionString))
                                    .UseDependency <GetClockName>(_ => @event => clockName)
                                    .UseSqlStorageForScheduledCommands(c => c.UseConnectionString(TestDatabases.CommandScheduler.ConnectionString))
                                    .AddToCommandSchedulerPipeline <Order>(
                    schedule: async(cmd, next) =>
                {
                    await next(cmd);
                    schedulerActivity.Add(cmd);
                },
                    deliver: async(cmd, next) =>
                {
                    await next(cmd);
                    schedulerActivity.Add(cmd);
                });

                queueSender = new ServiceBusCommandQueueSender(serviceBusSettings)
                {
                    MessageDeliveryOffsetFromCommandDueTime = TimeSpan.FromSeconds(30)
                };

                disposables.Add(queueSender.Messages.Subscribe(s => Console.WriteLine("[ServiceBusCommandQueueSender] " + s.ToJson())));
                disposables.Add(configuration);
                disposables.Add(ConfigurationContext.Establish(configuration));
            }
        }