public async Task <bool> Handle(AddLoginCommand request, CancellationToken cancellationToken)
        {
            if (!request.IsValid())
            {
                NotifyValidationErrors(request);
                return(false);;
            }
            var user = await _userManager.FindByNameAsync(request.UserName);

            if (user != null)
            {
                var result = await _userManager.AddLoginAsync(user, new UserLoginInfo(request.Provider, request.ProviderId, request.Provider));

                if (result.Succeeded)
                {
                    await _bus.RaiseEvent(new NewLoginAddedEvent(user.Id.ToString(), request.UserName, request.Provider, request.ProviderId));

                    return(true);
                }
                else
                {
                    foreach (var error in result.Errors)
                    {
                        await _bus.RaiseEvent(new DomainNotification(result.ToString(), error.Description));
                    }
                }
            }

            return(false);
        }
示例#2
0
        public async Task <bool> Handle(AddLoginCommand request, CancellationToken cancellationToken)
        {
            if (!request.IsValid())
            {
                NotifyValidationErrors(request);
                return(false);
            }

            var result = await _userService.AddLoginAsync(request.Email, request.Provider, request.ProviderId);

            if (result != null)
            {
                await Bus.RaiseEvent(new NewLoginAddedEvent(result, request.Email, request.Provider, request.ProviderId));

                return(true);
            }
            return(false);
        }