/// <summary>
        /// Get all valid two factor providers for specified user. If there is Default provider in valid two factor providers, adds specific name of default provider
        /// </summary>
        /// <param name="userId">id of user</param>
        /// <returns>Task with list containing all two factor providers for concrete user</returns>
        public async Task <IList <string> > GetValidTwoFactorProvidersForUserAsync(int userId)
        {
            var appUser = await m_identityUserManager.GetUserByIdAsync(userId);

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

            var validTwoFactorProviders = await m_identityUserManager.GetValidTwoFactorProvidersAsync(appUser);

            for (var i = 0; i < validTwoFactorProviders.Count; i++)
            {
                if (validTwoFactorProviders[i] == TokenOptions.DefaultProvider)
                {
                    var defaultProvider = m_identitySignInManager.ResolveDefaultTokenProvider();
                    validTwoFactorProviders[i] = $"{TokenOptions.DefaultProvider}-{defaultProvider}";
                    break;
                }
            }

            return(validTwoFactorProviders);
        }