private async Task ValidateUserExistsAsync(Guid userId, CancellationToken token)
        {
            var getUserByIdQuery = new GetUserByIdQueryBuilder()
                                   .WithId(userId)
                                   .Build();

            var user = await _mediator.Send(getUserByIdQuery, token);

            if (user == null)
            {
                throw new EntityNotFoundException(
                          $"No User With ID: '{userId}' Found",
                          ExceptionMessages.User.UserNotFound);
            }
        }
            public void GivenId_BuildsWithId()
            {
                // Arrange
                var builder = new GetUserByIdQueryBuilder();
                var id      = Guid.NewGuid();

                // Act
                var resultingReturn = builder.WithId(id);
                var resultingBuild  = resultingReturn.Build();

                // Assert
                Assert.Multiple(() =>
                {
                    Assert.That(resultingReturn, Is.EqualTo(builder));
                    Assert.That(resultingBuild.Id, Is.EqualTo(id));
                });
            }
        public async Task <UserDto> GetAsync(Guid userId, CancellationToken token)
        {
            var getUserByIdQuery = new GetUserByIdQueryBuilder()
                                   .WithId(userId)
                                   .Build();

            var user = await _mediator.Send(getUserByIdQuery, token);

            if (user == null)
            {
                throw new EntityNotFoundException(
                          $"No User With ID: '{userId}' Found",
                          ExceptionMessages.User.UserNotFound);
            }

            return(user.ToDto());
        }