예제 #1
0
        public async Task Consume(ConsumeContext <ActivateUser> context)
        {
            var message = context.Message;

            try
            {
                var user = await _userService.ActivateAsync(message.ActivationToken);

                var @event = new UserActivated
                {
                    Id       = user.Id,
                    Username = user.Username
                };

                await _bus.Publish(@event);
            }
            catch (Exception ex)
            {
                var domainException = ex as UserServiceException;
                var failedEvent     = new ActivateUserFailed
                {
                    Username        = domainException?.Username,
                    Id              = domainException?.UserId,
                    ActivationToken = message.ActivationToken
                };
                await _bus.Publish(failedEvent);

                throw;
            }
        }
        public void EventApply_Should_Arrive_To_The_LastState()
        {
            //---------Load & Replay Envents
            var userRegistered = new UserRegistered(1, "Admin", "John", "Doe");
            var userActivated  = new UserActivated(1);

            var user = new User();

            user.Apply(userRegistered);
            user.Apply(userActivated);


            user.UserName.Should().Be("Admin");
            user.FirstName.Should().Be("John");
            user.LastName.Should().Be("Doe");
            user.IsActive.Should().BeTrue();
        }
예제 #3
0
 public void Handle(UserActivated message)
 {
     _service.UpdateMember(message.UserId);
 }
 private void When(UserActivated @event)
 {
     this.IsActive = true;
 }
예제 #5
0
 private void HandleEvent(UserActivated @event)
 {
     this.IsActive = true;
 }
예제 #6
0
 public void Handle(UserActivated @event)
 {
     this._database.Connection.Execute(
         $"UPDATE [EsSharpProjectionDatabase].[dbo].[Users] SET IsActive = 1 WHERE Id = '{@event.AggregateId}'");
 }