Ejemplo n.º 1
0
        async Task <LoginResult> IRequestHandler <RegisterRequest, LoginResult> .Handle(RegisterRequest request, CancellationToken cancellationToken)
        {
            await Validator <RegisterValidation, RegisterRequest> .ValidateAndThrowAsync(request);

            var user = new ApplicationUser
            {
                Email    = request.Email,
                UserName = request.Email
            };

            var result = await _userManager.CreateAsync(user, request.Password);

            if (result.Succeeded)
            {
                _client.PublishEvent(new UserCreated {
                    Id = user.Id, Email = user.Email, UserName = request.Email
                });
                return(await _mediator.Send(new LoginRequest(request.Email, request.Password)));
            }

            if (result.Errors != null)
            {
                var errors = result.Errors.Select(e => e.Description);
                throw new RegisterException(string.Join(",", errors));
            }

            throw new Exception("Register failed, please contact your administrator.");
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Updates the specified entity.
        /// </summary>
        /// <param name="entity">The entity.</param>
        public void Update(TEntity entity)
        {
            Guard.AgainstNullArgument(nameof(entity), entity);

            var uncommitedChanges = entity.UncommitedChanges;

            foreach (var change in uncommitedChanges)
            {
                _eventStore.Raise(change);
                _bus.PublishEvent(change);
            }

            entity.MarkChangesAsCommited();
        }