Пример #1
0
        public async Task <CustomerDto> Handle(CreateCustomerCommand cmd, CancellationToken cancellationToken)
        {
            var @event = new CustomerCreatedForEfCore(cmd.Id, cmd.FirstName, cmd.LastName, DateTime.UtcNow);

            //do sth

            var res = new CustomerDto()
            {
                Id        = @event.Id,
                FirstName = cmd.FirstName,
                LastName  = cmd.LastName,
                CreatedOn = @event.CreatedOn
            };

            await _eventStoreDbContext.AppendToStreamAsync(@event);

            return(res);
        }
Пример #2
0
        public async Task Raised_Event_Should_Be_In_Sql()
        {
            var command      = new CustomerCreatedForEfCore(Guid.NewGuid(), "Younes", "Baghaie Moghaddam", DateTime.Now);
            var jsonCustomer = JsonConvert.SerializeObject(command);

            // create a customer
            var customerData           = new StringContent(jsonCustomer, Encoding.UTF8, "application/json");
            var createCustomerResponse = await _commandApi.PostAsync("api/Customers/CreateCustomer", customerData);

            createCustomerResponse.EnsureSuccessStatusCode();

            var createCustomerString = await createCustomerResponse.Content.ReadAsStringAsync();

            var createdCustomer = JsonConvert.DeserializeObject <CustomerCreatedForEfCore>(createCustomerString);

            var getCustomerResponse = await _queryApi.TryGetAsync($@"api/Customers/GetCustomer?id={ createdCustomer.Id }");

            var getCustomerString = await getCustomerResponse.Content.ReadAsStringAsync();

            var retrievedCustomer = JsonConvert.DeserializeObject <CustomerCreatedForEfCore>(getCustomerString);

            createdCustomer.Id.Should().Be(retrievedCustomer.Id);
        }