private void WhenRegistered(CustomerRegistered e, CustomerView view) { view.Id = e.Id; view.FirstName = e.FirstName; view.LastName = e.LastName; view.MiddleName = e.MiddleName ?? e.MiddleInitial; }
private async Task <bool> HandleAsync(CustomerRegistered e) { Console.WriteLine($"Customer registered: Customer Id = {e.CustomerId}, Name = {e.Name}, Telephone Number = {e.TelephoneNumber}"); using (var db = GetOrderDb()) { try { await db.Customers.AddAsync(new Customer { CustomerId = e.CustomerId, Name = e.Name, EmailAddress = e.EmailAddress, Address = e.Address, PostalCode = e.PostalCode, City = e.City, TelephoneNumber = e.TelephoneNumber }); await db.SaveChangesAsync(); } catch (DbUpdateException) { Console.WriteLine($"Skipped adding customer with customer id {e.CustomerId}."); } } return(true); }
private async Task <bool> HandleAsync(CustomerRegistered e) { Log.Information("Register Customer: {CustomerId}, {Name}, {TelephoneNumber}", e.CustomerId, e.Name, e.TelephoneNumber); try { using (var transaction = await _dbContext.Database.BeginTransactionAsync()) { await _dbContext.Customers.AddAsync(new Customer { CustomerId = e.CustomerId, Name = e.Name, TelephoneNumber = e.TelephoneNumber }); await _dbContext.SaveChangesAsync(); await transaction.CommitAsync(); } } catch (DbUpdateException) { Log.Warning("Skipped adding customer with customer id {CustomerId}.", e.CustomerId); } return(true); }
public void On(CustomerRegistered e) { Id = e.CustomerId; Name = e.FirstName + " " + e.LastName; Address = e.Address; PhoneNumber = e.PhoneNumber; }
private void WhenCustomerRegistered(CustomerRegistered e, AllCustomersView view) { var customer = new CustomerView(e.Id, e.FirstName, e.LastName, e.MiddleInitial, e.MiddleName); view.Customers.Add(customer); }
public async Task <IActionResult> RegisterAsync([FromBody] RegisterCustomer command) { try { if (ModelState.IsValid) { // insert customer Customer customer = command.MapToCustomer(); _dbContext.Customers.Add(customer); await _dbContext.SaveChangesAsync(); // send event CustomerRegistered e = command.MapToCustomerRegistered(); await _messagePublisher.PublishMessageAsync(e.MessageType, e, ""); // return result return(CreatedAtRoute("GetByCustomerId", new { customerId = customer.CustomerId }, customer)); } return(BadRequest()); } catch (DbUpdateException) { ModelState.AddModelError("", "Unable to save changes. " + "Try again, and if the problem persists " + "see your system administrator."); return(StatusCode(StatusCodes.Status500InternalServerError)); throw; } }
/** * Methods for GIVEN */ private void GIVEN_CustomerRegistered() { var events = new List <IEvent> { CustomerRegistered.Build(customerID, emailAddress, confirmationHash, name) }; registeredCustomer = Customer3.Reconstitute(events); }
/** * Methods for GIVEN */ private void GIVEN_CustomerRegistered() { currentState = CustomerState.Reconstitute( new List <IEvent> { CustomerRegistered.Build(customerID, emailAddress, confirmationHash, name) } ); }
/** * Methods for WHEN */ private void WHEN_RegisterCustomer() { var registerCustomer = RegisterCustomer.Build(emailAddress.Value, name.GivenName, name.FamilyName); customerRegistered = Customer3.Register(registerCustomer); customerID = registerCustomer.CustomerId; confirmationHash = registerCustomer.ConfirmationHash; }
protected void MutateWhen(CustomerRegistered @event) { Id = @event.Id; FirstName = @event.FirstName; LastName = @event.LastName; // MiddleInitial = @event.MiddleInitial; MiddleName = @event.MiddleName; }
private CustomerRegistered CreateCustomerRegisteredEvent() { _customerId = new ID(); _emailAddress = new EmailAddress("*****@*****.**"); _hash = new CustomHash(); _personName = new PersonName("given", "fam"); var customerRegisteredEvent = new CustomerRegistered(_customerId, _emailAddress, _hash, _personName); return(customerRegisteredEvent); }
public virtual async Task RegisterCustomer(CustomerInfo customerInfo) { await Console.Out.WriteLineAsync( $"Thank you for becoming the most valuable member with us, {customerInfo.FullName}!"); // Raise the event, so any observing service can react to it. // In fact the event does not fire immediately, it gets scheduled // and committed in consistent manner as a part of the Unit of Work // represented by the state transition of this method. CustomerRegistered?.Invoke(this, customerInfo); }
private async Task HandleAsync(CustomerRegistered cr) { Customer customer = new Customer { CustomerId = cr.CustomerId, Name = cr.Name, TelephoneNumber = cr.TelephoneNumber, EmailAddress = cr.EmailAddress }; await _repo.RegisterCustomerAsync(customer); }
public void Reconstitute_CorrectCustomerRegisteredEvent_CustomerCreated() { // arrange ID customerId = new ID(); EmailAddress emailAddress = new EmailAddress("*****@*****.**"); CustomHash hash = new CustomHash(); PersonName personName = new PersonName("given", "fam"); var customerRegisteredEvent = new CustomerRegistered(customerId, emailAddress, hash, personName); // act // assert }
public async Task <IActionResult> Test() { var e = new CustomerRegistered(); await _messagePublisher.PublishMessageAsync(e.MessageType, e, ""); Log.Information("Test log"); return(Ok(new { Foo = "Foo", Bar = "Bar" })); }
private async Task HandleAsync(CustomerRegistered cr) { Customer customer = new Customer { CustomerId = cr.CustomerId, Name = cr.Name, Address = cr.Address, PostalCode = cr.PostalCode, City = cr.City }; await _repo.RegisterCustomerAsync(customer); }
private async Task HandleAsync(CustomerRegistered cr) { Customer customer = new Customer { CustomerId = cr.CustomerId, Name = cr.Name, Address = cr.Address, City = cr.City, Phone = cr.Phone, Luggage = cr.Luggage }; await _repo.RegisterCustomerAsync(customer); }
public void ConfirmCustomerEmailAddress_CorrectConfirmation() { // given ID customerId = new ID(); EmailAddress emailAddress = new EmailAddress("*****@*****.**"); CustomHash hash = new CustomHash(); PersonName personName = new PersonName("given", "fam"); var customerRegisteredEvent = new CustomerRegistered(customerId, emailAddress, hash, personName); // when //Customer.ConfirmCustomerEmailAddress(customerRegisteredEvent) // then }
private async Task HandleAsync(CustomerRegistered cr) { Customer customer = new Customer { CustomerId = cr.CustomerId, Name = cr.Name, TelephoneNumber = cr.TelephoneNumber, EmailAddress = cr.EmailAddress }; Log.Information("Register customer: {Id}, {Name}, {TelephoneNumber}, {Email}", customer.CustomerId, customer.Name, customer.TelephoneNumber, customer.EmailAddress); await _repo.RegisterCustomerAsync(customer); }
private async Task HandleAsync(CustomerRegistered cr) { Log.Information("Register customer: {Id}, {Name}, {Address}, {PostalCode}, {City}", cr.CustomerId, cr.Name, cr.Address, cr.PostalCode, cr.City); Customer customer = new Customer { CustomerId = cr.CustomerId, Name = cr.Name, Address = cr.Address, PostalCode = cr.PostalCode, City = cr.City }; await _repo.RegisterCustomerAsync(customer); }
public void ConfirmCustomerEmailAddress_CorrectConfirmationEventReturned() { // given ID customerId = new ID(); EmailAddress emailAddress = new EmailAddress("*****@*****.**"); CustomHash hash = new CustomHash(); PersonName personName = new PersonName("given", "fam"); var customerRegisteredEvent = new CustomerRegistered(customerId, emailAddress, hash, personName); var customer = Customer.Reconstitute(new[] { customerRegisteredEvent }); var confirmCustomerEmailAddressEvent = new ConfirmCustomerEmailAddress(customerId.Value.ToString(), hash.Value.ToString()); // when var resultEvent = customer.ConfirmCustomerEmailAddress(confirmCustomerEmailAddressEvent); // then }
public void Reconstitute_CorrectCustomerRegisteredEvent_CustomerCreated() { // arrange ID customerId = new ID(); EmailAddress emailAddress = new EmailAddress("*****@*****.**"); CustomHash hash = new CustomHash(); PersonName personName = new PersonName("given", "fam"); var customerRegisteredEvent = new CustomerRegistered(customerId, emailAddress, hash, personName); // act var reconstituteResult = Customer.Reconstitute(new List <IEvent> { customerRegisteredEvent }); // assert Assert.Equal(customerId, reconstituteResult.Id); }
private async Task HandleAsync(CustomerRegistered cr) { Log.Information("Register customer: {Id}, {Firstname}, {Insertion}, {Lastname}", cr.CustomerId, cr.Firstname, cr.Insertion, cr.Lastname); Customer customer = new Customer { CustomerId = cr.CustomerId, Firstname = cr.Firstname, Insertion = cr.Insertion, Lastname = cr.Lastname }; using var scope = _serviceScopeFactory.CreateScope(); var customerRepository = scope.ServiceProvider.GetRequiredService <CustomerRepository>(); customerRepository.Add(customer); await customerRepository._db.SaveChangesAsync(); }
private async Task HandleAsync(CustomerRegistered cr) { Customer customer = new Customer { CustomerId = cr.CustomerId, EsPersona = cr.EsPersona, Nombre = cr.Nombre, Pais = cr.Pais, NIF = cr.NIF, FechaAlta = cr.FechaAlta, FechaBaja = cr.FechaBaja, Direccion = cr.Direccion, PaisDireccion = cr.PaisDireccion, CodigoPostal = cr.CodigoPostal, Poblacion = cr.Poblacion, Provincia = cr.Provincia, Telefono = cr.Telefono, Telefono2 = cr.Telefono2, Movil = cr.Movil, FechaExpNIF = cr.FechaExpNIF, PoblacionExpNIF = cr.PoblacionExpNIF, FechaNacimiento = cr.FechaNacimiento, PoblacionNacimiento = cr.PoblacionNacimiento, TipoPermiso = cr.TipoPermiso, NumeroPermiso = cr.NumeroPermiso, FechaExpPermiso = cr.FechaExpPermiso, FechaCadPermiso = cr.FechaCadPermiso, Email = cr.Email, Moroso = cr.Moroso, Bloqueado = cr.Bloqueado, NumeroTarjetaCred = cr.NumeroTarjetaCred, TitularTarjetaCred = cr.TitularTarjetaCred, FechaCadTarjetaCred = cr.FechaCadTarjetaCred }; await _repo.RegisterCustomerAsync(customer); }
private async Task <bool> HandleAsync(CustomerRegistered e) { using (var dbContext = GetDbContext()) { if (e != null) { await dbContext.Customers.AddAsync(new Customer { CustomerId = e.CustomerId, Name = e.Name, Address = e.Address, PostalCode = e.PostalCode, City = e.City, }); await dbContext.SaveChangesAsync(); } } return(true); }
private async Task <bool> HandleAsync(CustomerRegistered e) { Console.WriteLine($"Customer registered: Customer Id = {e.CustomerId}, Name = {e.Name}, Telephone Number = {e.TelephoneNumber}"); try { await _dbContext.Customers.AddAsync(new Customer { CustomerId = e.CustomerId, Name = e.Name, TelephoneNumber = e.TelephoneNumber }); await _dbContext.SaveChangesAsync(); } catch (DbUpdateException) { Console.WriteLine($"Skipped adding customer with customer id {e.CustomerId}."); } return(true); }
private async Task <bool> HandleAsync(CustomerRegistered e) { Log.Information("Customer registered: {CustomerId}, {Nombre}, {Telefono}", e.CustomerId, e.Nombre, e.Telefono); try { await _dbContext.Customers.AddAsync(new Customer { CustomerId = e.CustomerId, Nombre = e.Nombre, Telefono = e.Telefono }); await _dbContext.SaveChangesAsync(); } catch (DbUpdateException) { Log.Warning("Skipped adding customer with customer id {CustomerId}.", e.CustomerId); } return(true); }
public IEnumerable <ICommand> On(CustomerRegistered @event) { IncrementCustomerRegisterCount(); Console.WriteLine($"On CustomerRegistered count: {CustomerRegisteredCount}"); return(new ICommand[] { }); }
internal void When(CustomerRegistered customerRegisteredEvent) { _id = customerRegisteredEvent.Id; _maritalStatus = MaritalStatus.Parse(customerRegisteredEvent.MaritalStatus); }
/** * Methods for GIVEN */ private void GIVEN_CustomerRegistered() { eventStream.Add(CustomerRegistered.Build(customerID, emailAddress, confirmationHash, name)); }