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 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 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 <ActionResult> Get(string message) { var command = new SaySomething { Message = message }; _logger.LogInformation("Sending message {message}", command.Message); await _messageSession.Send(command); return(Accepted()); }
public async Task <ActionResult <Guid> > Get(string message) { var command = new SaySomething { Message = message, Id = Guid.NewGuid() }; Activity.Current?.AddBaggage("cart.operation.id", command.Id.ToString()); //Activity.Current?.AddTag("operation.id", command.Id.ToString()); _logger.LogInformation("Sending message {message} with {id}", command.Message, command.Id); await _messageSession.Send(command); return(Accepted(command.Id)); }
public void Test() { SaySomething sayhello = new SaySomething(SayHello); SaySomething saynice = new SaySomething(SayNiceToMeetYou); come += sayhello; come += saynice; come("张三"); }
public Task Handle(SaySomething message, IMessageHandlerContext context) { Data.Message = message.Message; return(context.SendLocal(new GetTemperature())); }
void should_say_hi() { Assert.Equal("Hi, First Middle Last", SaySomething.Hi(firstName, middleName, lastName)); }
void should_say_hello() { Assert.Equal("Hello, First Middle Last", SaySomething.Hello(firstName, middleName, lastName)); }