示例#1
0
        public void Handle(VerifiedCustomerEvent integrationEvent)
        {
            using (var unitOfWork = new CommandUnitOfWork(new CommandArgs(integrationEvent.Username, integrationEvent.CorrelationId)))
            {
                var customer = this.CustomerService.GetCustomer(integrationEvent.Customer.Username).Result;

                customer.SetVerified();

                unitOfWork.RaiseEvent(new LogEvent($"Customer [{customer.Username}] is verified"));

                unitOfWork.Commit();
            }
        }
        public void Handle(NewCustomerSignupEvent integrationEvent)
        {
            using (var unitOfWork = new CommandUnitOfWork(CommandArgs.FromIntegrationEvent(integrationEvent)))
            {
                Thread.Sleep(3000);

                string verificationCode = this.GenerateCustomerCode(integrationEvent.NewCustomer);

                unitOfWork.RaiseEvent(new CustomerVerificationGeneratedEvent(integrationEvent.NewCustomer.Username, verificationCode));

                unitOfWork.RaiseEvent(new LogEvent($"Customer [{integrationEvent.NewCustomer.Username}] verification code generated [{verificationCode}]"));

                CustomerVerification customerVerification = new CustomerVerification(integrationEvent.NewCustomer.Username, verificationCode);
                Context.CurrentContext.AddCustomerVerification(customerVerification);

                unitOfWork.Commit();
            }
        }