public virtual async Task <string> GetCurrentLanguageCodeAsync(CancellationToken cancellationToken = default, bool throwExceptionIfNotExists = true) { //foreach (var languageResolver in _languageResolvers) //{ // var languageCode = languageResolver.GetCurrentLanguageCode(); // if (languageCode.HasValue()) // { // if (validateLanguageExists) // { // var exist = (await _languageRepository.GetAllCachedAsync(cancellationToken)) // .Any(p => p.LanguageCode.Equals(languageCode, StringComparison.OrdinalIgnoreCase)); // if (!exist) throw new Exception($"Current lagnuage '{languageCode}' dose not exists in languages table."); // } // return languageCode; // } //} //throw new InvalidOperationException("Current language not found!"); //TODO: return default language [OR] throw exception when language not found ? var languageCode = _languageResolver.GetCurrentLanguageCode(); if (throwExceptionIfNotExists) { var exists = (await _languageRepository.GetAllCachedAsync(cancellationToken)) .Any(p => p.LanguageCode.Equals(languageCode, StringComparison.OrdinalIgnoreCase)); if (!exists) { throw new Exception($"Current lagnuage '{languageCode}' dose not exists in languages table."); } } return(languageCode); }