public async Task <CreateUserResult> Handle(CreateUser request, CancellationToken cancellationToken) { var validationResult = await requestValidator.Validate(request); if (!validationResult.IsSuccessful) { return(new CreateUserResult(validationResult.Error)); } var userCode = codeGenerator.Generate(); var imageUrl = imageUrlProvider.GetImageUrl(request.Email); var result = await usersRepository.CreateUser(new CreateUserModel { Email = request.Email, DisplayName = request.DisplayName, Password = request.Password, Code = userCode, ImageUrl = imageUrl, }); if (!result.IsSuccessful) { return(new CreateUserResult(result.Error)); } return(new CreateUserResult { User = new UserModel { UserId = result.Model.UserId, Email = result.Model.Email, DisplayName = result.Model.DisplayName, UserName = result.Model.UserName, Code = result.Model.Code, ImageUrl = result.Model.ImageUrl } }); }
public override async Task <RequestResult <UserDto> > Handle(RegisterUserWithCredentialsCommand request, CancellationToken cancellationToken) { var imageUrl = _profileImageUrlProvider.GetImageUrl(request.Email); var user = await _authRepository.CreateUser(new CreateUserData { Email = request.Email, Password = request.Password, DisplayName = request.DisplayName, ImageUrl = imageUrl, TenantId = request.RequestContext.Tenant.TenantId, UserGuid = request.UserGuid, AvatarType = AvatarType.Gravatar, }); await _avatarRepository .StoreAvatar(user.Id, AvatarType.Gravatar, imageUrl); await _mediator .Publish(new UserRegisteredWithCredentials(user.UserGuid), cancellationToken); return(RequestResult <UserDto> .Success(_mapper.Map <UserDto>(user))); }