public async Task <JWTokenDto> ConfirmRegistrationAsync(string confirmationToken)
        {
            var userOrganizationDto = await GetUserOrganizationDtoByConfirmationTokenAsync(confirmationToken)
                                      .ConfigureAwait(false);

            if (userOrganizationDto == null)
            {
                return(null);
            }

            if (userOrganizationDto.OrganizationId.HasValue)
            {
                var organizationStatus = await _organizationsRepository
                                         .GetOrganizationStatusByOrganizationIdAsync(userOrganizationDto.OrganizationId.Value)
                                         .ConfigureAwait(false);

                if (organizationStatus == OrganizationStatus.NotActive)
                {
                    return(null);
                }
            }

            var jwtToken = await GenerateJWTokenAsync(userOrganizationDto.UserId).ConfigureAwait(false);

            if (jwtToken == null)
            {
                return(null);
            }

            await _userConfirmationTokensRepository
            .DisposeConfirmationToken(confirmationToken)
            .ConfigureAwait(false);

            await _organizationsRepository
            .ChangeOrganizationStatusAsync(userOrganizationDto.UserId, OrganizationStatus.PendingContact)
            .ConfigureAwait(false);

            return(jwtToken);
        }