public async ValueTask <Result> ExecuteAsync(UserGet operation, CancellationToken cancellation = default)
        {
            var scope = _logger.BeginScope("Get user. [UserId: {userId}]", operation.Id);

            try
            {
                var user = await _repository.GetByIdAsync(operation.Id, cancellation);

                if (user == null)
                {
                    _logger.LogInformation("User not found");
                    return(DomainError.UserError.UserNotFound);
                }

                _logger.LogInformation("Get user with success");
                return(Result.Ok(_mapper.Map(user)));
            }
            catch (Exception e)
            {
                _logger.LogError(e, "Exception: ");
                return(Result.Fail(e));
            }
            finally
            {
                scope.Dispose();
            }
        }
        public async Task Execute_Should_ReturnUserNotFound()
        {
            var request = _fixture.Create <UserGet>();

            _repository.GetByIdAsync(request.Id, Arg.Any <CancellationToken>())
            .Returns(Task.FromResult((Domain.Common.User)null));

            var result = await _operation.ExecuteAsync(request, CancellationToken.None);

            result.IsSuccess.Should().BeFalse();
            result.Value.Should().BeNull();
            result.ErrorCode.Should().NotBeNullOrEmpty();
            result.Description.Should().NotBeNullOrEmpty();
            result.Should().Be(DomainError.UserError.UserNotFound);

            await _repository
            .Received(1)
            .GetByIdAsync(request.Id, Arg.Any <CancellationToken>());

            _mapper
            .DidNotReceive()
            .Map(Arg.Any <Domain.Common.User>());
        }