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); }
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); }