public async Task <TreeId> Handle(MergeTreesCommand request, CancellationToken cancellationToken) { var first = await _treeRepository.GetByIdAsync(request.First, cancellationToken); var second = await _treeRepository.GetByIdAsync(request.Second, cancellationToken); var user = await _userProfileRepository.GetByUserAuthIdAsync(request.RequesterUserAuthId, cancellationToken); var newTree = _mergeTreesService.Merge(first, second, user !.Id); await _treeRepository.AddAsync(newTree, cancellationToken); return(newTree.Id); }
public async Task <TreeId> Handle(CreateTreeFromFileCommand request, CancellationToken cancellationToken) { var gx = _xmlStreamToGedcomXParser.Parse(request.Document.Content); var userProfile = await _userProfileRepository.GetByUserAuthIdAsync(request.UserAuthId, cancellationToken); if (userProfile is null) { userProfile = UserProfile.CreateUserProfile( request.UserAuthId, request.MailAddress, null, null, null, _userAuthIdUniquenessChecker); await _userProfileRepository.AddAsync(userProfile, cancellationToken); } var tree = _gedcomXToDomainTreeConverter.ConvertTree(userProfile.Id, gx, request.TreeName); await _treeRepository.AddAsync(tree, cancellationToken); return(tree.Id); }
public async Task <TreeId> Handle(CreateTreeCommand request, CancellationToken cancellationToken) { var userProfile = await _userProfileRepository.GetByUserAuthIdAsync(request.UserAuthId, cancellationToken); if (userProfile is null) { userProfile = UserProfile.CreateUserProfile( request.UserAuthId, request.MailAddress, null, null, null, _userAuthIdUniquenessChecker); await _userProfileRepository.AddAsync(userProfile, cancellationToken); } var createdTree = Tree.CreateNewTree(request.TreeName, userProfile.Id); await _treeRepository.AddAsync(createdTree, cancellationToken); await _unitOfWork.CommitAsync(cancellationToken); return(createdTree.Id); }