コード例 #1
0
 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;
 }
コード例 #2
0
ファイル: EventHandler.cs プロジェクト: HugoZink/Ball.com
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 public void On(CustomerRegistered e)
 {
     Id          = e.CustomerId;
     Name        = e.FirstName + " " + e.LastName;
     Address     = e.Address;
     PhoneNumber = e.PhoneNumber;
 }
コード例 #5
0
        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);
        }
コード例 #6
0
    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;
        }
    }
コード例 #7
0
        /**
         * Methods for GIVEN
         */

        private void GIVEN_CustomerRegistered()
        {
            var events = new List <IEvent> {
                CustomerRegistered.Build(customerID, emailAddress, confirmationHash, name)
            };

            registeredCustomer = Customer3.Reconstitute(events);
        }
コード例 #8
0
        /**
         * Methods for GIVEN
         */

        private void GIVEN_CustomerRegistered()
        {
            currentState = CustomerState.Reconstitute(
                new List <IEvent> {
                CustomerRegistered.Build(customerID, emailAddress, confirmationHash, name)
            }
                );
        }
コード例 #9
0
        /**
         * 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;
        }
コード例 #10
0
 protected void MutateWhen(CustomerRegistered @event)
 {
     Id        = @event.Id;
     FirstName = @event.FirstName;
     LastName  = @event.LastName;
     // MiddleInitial = @event.MiddleInitial;
     MiddleName = @event.MiddleName;
 }
コード例 #11
0
        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);
        }
コード例 #12
0
ファイル: Feature7.Events.cs プロジェクト: simis00873/Dasync
        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);
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        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
        }
コード例 #15
0
        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"
            }));
        }
コード例 #16
0
ファイル: InvoiceManager.cs プロジェクト: zlobur/pitstop
        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);
        }
コード例 #17
0
        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);
        }
コード例 #18
0
        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
        }
コード例 #19
0
        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);
        }
コード例 #20
0
    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);
    }
コード例 #21
0
        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
        }
コード例 #22
0
        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);
        }
コード例 #23
0
        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();
        }
コード例 #24
0
        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);
        }
コード例 #25
0
ファイル: Manager.cs プロジェクト: HugoZink/Ball.com
        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);
        }
コード例 #26
0
        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);
        }
コード例 #27
0
        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);
        }
コード例 #28
0
 public IEnumerable <ICommand> On(CustomerRegistered @event)
 {
     IncrementCustomerRegisterCount();
     Console.WriteLine($"On CustomerRegistered count: {CustomerRegisteredCount}");
     return(new ICommand[] { });
 }
コード例 #29
0
 internal void When(CustomerRegistered customerRegisteredEvent)
 {
     _id            = customerRegisteredEvent.Id;
     _maritalStatus = MaritalStatus.Parse(customerRegisteredEvent.MaritalStatus);
 }
コード例 #30
0
        /**
         * Methods for GIVEN
         */

        private void GIVEN_CustomerRegistered()
        {
            eventStream.Add(CustomerRegistered.Build(customerID, emailAddress, confirmationHash, name));
        }