protected override IEnumerable <object> GetPairs(InMemoryViewModelRepository repo) { foreach (var item in (IDictionary <string, Widget>)repo.EntityCollections[typeof(Widget)]) { yield return(item); } }
protected override void ViewModelLoaded(InMemoryViewModelRepository repo) { if (repo.EntityCollections.Count == 0) return; foreach (var item in (IDictionary<string, Widget>)repo.EntityCollections[typeof(Widget)]) { item.Value.CreatedAt = DateTime.SpecifyKind(item.Value.CreatedAt, DateTimeKind.Local); } }
protected override void ViewModelLoaded(InMemoryViewModelRepository repo) { if (repo.EntityCollections.Count == 0) { return; } foreach (var item in (IDictionary <string, Widget>)repo.EntityCollections[typeof(Widget)]) { item.Value.CreatedAt = DateTime.SpecifyKind(item.Value.CreatedAt, DateTimeKind.Local); } }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { var viewmodel = new InMemoryViewModelRepository(); var snapshotPath = ConfigurationManager.AppSettings["snapshotPath"]; var snapshotVersion = ConfigurationManager.AppSettings["snapshotVersion"]; var streamName = ConfigurationManager.AppSettings["streamName"]; var snapshottingDispatcher = new ProtoBufSnapshottingResolvedEventDispatcher(() => { var repo = (container.Resolve <IViewModelReader>() as InMemoryViewModelRepository); return(GetPairs(repo)); }, snapshotPath, snapshotVersion); var items = snapshottingDispatcher.LoadObjects(); int?startingEvent = snapshottingDispatcher.LoadCheckpoint(); //add the items to the viewmodel foreach (var dynamicItem in items.Select(item => item as dynamic)) { viewmodel.Add(dynamicItem.Key, dynamicItem.Value); } ViewModelLoaded(viewmodel); //event store var esLogger = new EventStoreLogaryLogger(); var conn = SetUpEventStoreConnection("EventStoreConnection", esLogger); container.Register(conn); //aggregate repository container.Register <IAggregateRepository, EventStoreAggregateRepository>(); container.Register <IViewModelReader>(viewmodel); container.Register <IViewModelWriter>(viewmodel); var multiplexingDispatcher = new MultiplexingDispatcher <ResolvedEvent>(GetDispatchers(container).ToArray()); snapshottingDispatcher.InnerDispatcher = multiplexingDispatcher; var loggingDispatcher = new ErrorLoggingDispatcher(snapshottingDispatcher, false); container.Register <IDispatcher <ResolvedEvent> >(loggingDispatcher); var subscriber = new EventStoreSubscriber(conn, loggingDispatcher, streamName, esLogger, startingEvent, 4096, 70000); container.Register(subscriber); }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { var viewmodel = new InMemoryViewModelRepository(); var snapshotPath = ConfigurationManager.AppSettings["snapshotPath"]; var snapshotVersion = ConfigurationManager.AppSettings["snapshotVersion"]; var streamName = ConfigurationManager.AppSettings["streamName"]; var snapshottingDispatcher = new ProtoBufSnapshottingResolvedEventDispatcher(() => { var repo = (container.Resolve<IViewModelReader>() as InMemoryViewModelRepository); return GetPairs(repo); }, snapshotPath, snapshotVersion); var items = snapshottingDispatcher.LoadObjects(); int? startingEvent = snapshottingDispatcher.LoadCheckpoint(); //add the items to the viewmodel foreach (var dynamicItem in items.Select(item => item as dynamic)) viewmodel.Add(dynamicItem.Key, dynamicItem.Value); ViewModelLoaded(viewmodel); //event store var esLogger = new EventStoreLogaryLogger(); var conn = SetUpEventStoreConnection("EventStoreConnection", esLogger); container.Register(conn); //aggregate repository container.Register<IAggregateRepository, EventStoreAggregateRepository>(); container.Register<IViewModelReader>(viewmodel); container.Register<IViewModelWriter>(viewmodel); var multiplexingDispatcher = new MultiplexingDispatcher<ResolvedEvent>(GetDispatchers(container).ToArray()); var commandDispatcher = new CommmandDispatcher(new MultiplexingDispatcher<object>(GetCommandDispatchers(container).ToArray())); snapshottingDispatcher.InnerDispatcher = multiplexingDispatcher; var loggingDispatcher = new ErrorLoggingDispatcher(snapshottingDispatcher, false); container.Register<IDispatcher<ResolvedEvent>>(loggingDispatcher); var subscriber = new EventStoreSubscriber(conn, loggingDispatcher, streamName, esLogger, startingEvent, 4096, 70000); container.Register(subscriber); container.Register<ICommandDispatcher>(commandDispatcher); }
protected abstract IEnumerable <object> GetPairs(InMemoryViewModelRepository repo);
protected abstract void ViewModelLoaded(InMemoryViewModelRepository repo);
protected override IEnumerable<object> GetPairs(InMemoryViewModelRepository repo) { foreach (var item in (IDictionary<string, Widget>)repo.EntityCollections[typeof(Widget)]) yield return item; }
protected abstract void ViewModelLoaded(InMemoryViewModelRepository repo);
protected abstract IEnumerable<object> GetPairs(InMemoryViewModelRepository repo);