public static async Task Run() { var appender = new MemoryAppendStoreAsync(); IEventStoreAsync es = new EventStoreAsync(appender); IDtoConverter <SayingDto, Saying> converter = new MyDtoConverters(); Stream mem = System.IO.File.Open("test.json", FileMode.OpenOrCreate, FileAccess.ReadWrite); IDtoSerializer <SayingDto> dtoSerializer = new FastJsonSerializer <SayingDto>(mem); ITableReaderWriter <Saying> said = new TableWriterForSerializer <Saying, SayingDto>(new MemoryHashTableWriter <Saying>(), converter, dtoSerializer); IAsyncProjection projection = new ConsoleProjection(new AsyncProjectFromImplementation(new SayingHistoryProjection(said))); IEventStoreAsync es2 = new EventStoreAsyncPublisher(es, projection); //IAsyncCommandDispatcher dispatcher = new ConsoleLoggerDispatcher(new CompositeAsyncCommandDispatcher(new SaySomething(es2))); ICommandHandler handler = new SaySomething(es2); await handler.GetExecutor(new SayCommand() { PersonId = new PersonId(1), Say = "Say hello", Timestamp = DateTime.UtcNow }).Execute(); foreach (var saying in said.GetAll().Result) { Console.Write("Entry in projection:\t\t"); Console.WriteLine("{0} said: {1}", saying.PersonId, saying.Said); } }
public async void ReadAppend() { var appender = new StreamAppenderAsync(StreamAppenderAsync.StreamAppenderOptions.UseSingleStream(this.appendStream)); var es = new EventStoreAsync(appender); var id = new StringId("id1"); var events = new IEvent[] { BigEventData.Create(id, 12), BigEventData.Create(id, 128), BigEventData.Create(id, 13) }; var id2 = new StringId("id2"); var events2 = new IEvent[] { BigEventData.Create(id, 100), BigEventData.Create(id, 128), BigEventData.Create(id, 100) }; var events3 = new IEvent[] { BigEventData.Create(id, 44) }; await es.AppendToStream(id, 0, events.ToList()); await es.AppendToStream(id2, 0, events2.ToList()); await es.AppendToStream(id, 1, events3.ToList()); Assert.Equal(2800, this.appendStream.Length); var stream = await es.LoadEventStream(id); Assert.Equal(2, stream.Version); var stream2 = await es.LoadEventStream(id2); Assert.Equal(1, stream2.Version); }
public async Task ExecuteCommand() { string container = "testing"; string connection = ""; //var appender = new AzureAsyncAppender(connection, container, new PrefixedDirectory("demo")); //await appender.Initialize(); var appender = new MemoryAppendStoreAsync(); var es = new EventStoreAsync(appender); var dispatcher = new SaySomething(es); await dispatcher.GetExecutor( new SayCommand { PersonId = new PersonId(1), Say = "I am Winter ", Timestamp = DateTime.UtcNow }).Execute(); await dispatcher.GetExecutor( new SayCommand { PersonId = new PersonId(1), Say = "How are you?", Timestamp = DateTime.UtcNow }).Execute(); await dispatcher.GetExecutor( new SayCommand { PersonId = new PersonId(1), Say = "Dunno...", Timestamp = DateTime.UtcNow }).Execute(); await dispatcher.GetExecutor( new SayCommand { PersonId = new PersonId(1), Say = "ok say something more", Timestamp = DateTime.UtcNow }).Execute(); await dispatcher.GetExecutor( new SayCommand { PersonId = new PersonId(1), Say = "NO!", Timestamp = DateTime.UtcNow }).Execute(); var events = (await es.ReplayAll()).Events; Assert.Equal(5, events.Count); }
public async Task WriteFile() { var fs = new FileAppendOnlyStoreAsync(new FileAppendOnlyStoreAsync.Options(File) { FileStream = s => Path.Combine(this.File, s + ".dat") }); var es = new EventStoreAsync(fs); var id = new GuidId(Guid.NewGuid()); await es.AppendToStream(id, 0, new List <IEvent>() { new MyNewEventEvent(id.ToString(), Guid.NewGuid(), DateTime.UtcNow) }); }
public async Task ReadFileAsEvents() { var fs = new FileAppendOnlyStoreAsync(new FileAppendOnlyStoreAsync.Options(File) { MasterStreamName = "mystream_stream" }); var es = new EventStoreAsync(fs); var stream = await es.ReplayAll(0, int.MaxValue); Assert.NotEmpty(stream.Events); }
public async void WriteAppend() { var appender = new StreamAppenderAsync(StreamAppenderAsync.StreamAppenderOptions.UseSingleStream(this.appendStream)); var es = new EventStoreAsync(appender); var id = new StringId("id1"); var events = new IEvent[] { BigEventData.Create(id, 12), BigEventData.Create(id, 128), BigEventData.Create(id, 13) }; await es.AppendToStream(id, 0, events.ToList()); Assert.Equal(962, this.appendStream.Length); }
public PerformanceRun() { Console.WriteLine(""); Console.Write("Azure Connection string:"); this.connection = Console.ReadLine(); Console.WriteLine(""); Console.Write("Azure container:"); this.container = Console.ReadLine(); this.appender = new AzureAsyncAppender(connection, container, new AzureBlobAppenderOptions() { NamingPolicy = new NameDashGuidNaming("es") }); this.eventstore = new EventStoreAsync(appender); }
public async Task AppendToEmptyStream() { var appender = new MemoryAppendStoreAsync(); var es = new EventStoreAsync(appender); var dispatcher = new TastyDomainDriven.Sample.CommandServices.SaySomething(es); await dispatcher.GetExecutor(new SayCommand() { PersonId = new PersonId(1), Say = "I have something to say", Timestamp = DateTime.UtcNow }).Execute(); Assert.Equal(1, (await es.ReplayAll()).Events.Count); }
public async Task AppendToToPublisher() { var appender = new MemoryAppendStoreAsync(); var es = new EventStoreAsync(appender); ITableReaderWriter <Saying> table = new MemoryHashTableWriter <Saying>(); var publisher = new EventStoreAsyncPublisher(es, new AsyncProjectFromImplementation(new SayingHistoryProjection(table))); var dispatcher = new Sample.CommandServices.SaySomething(publisher); await dispatcher.GetExecutor(new SayCommand() { PersonId = new PersonId(1), Say = "I have something to say", Timestamp = DateTime.UtcNow }).Execute(); Assert.Equal(1, (await es.ReplayAll()).Events.Count); Assert.Equal(1, (await table.GetAll()).Count); }
public async Task WriteStreamAndExtraxt() { var fs = new FileAppendOnlyStoreAsync(File); var es = new EventStoreAsync(fs); var id2 = GuidId.NewGuidId(); var id1 = GuidId.NewGuidId(); await es.AppendToStream(id2, 0, new[] { new BigEventData(), new BigEventData(), new BigEventData() }); await es.AppendToStream(id1, 0, new[] { new BigEventData(), new BigEventData(), new BigEventData() }); await es.AppendToStream(id2, 1, new[] { new BigEventData(), new BigEventData(), new BigEventData() }); await es.AppendToStream(id1, 1, new[] { new BigEventData(), new BigEventData(), new BigEventData() }); await fs.ExtractMasterStream(new DirectoryInfo(Path.Combine(File, "out")), new NameDashGuidNaming(), 0, int.MaxValue); Assert.True(true, "Tested in: " + File); }