Exemplo n.º 1
0
        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);
        }