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);
            }
        }
Exemple #3
0
        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 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);
        }
Exemple #5
0
        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));
        }
Exemple #7
0
 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()));
        }
Exemple #9
0
 void should_say_hi()
 {
     Assert.Equal("Hi, First Middle Last", SaySomething.Hi(firstName, middleName, lastName));
 }
Exemple #10
0
 void should_say_hello()
 {
     Assert.Equal("Hello, First Middle Last", SaySomething.Hello(firstName, middleName, lastName));
 }