public static async Task <List <TvDB_Language> > GetLanguagesAsync() { List <TvDB_Language> languages = new List <TvDB_Language>(); try { await CheckAuthorizationAsync(); TvDBRateLimiter.Instance.EnsureRate(); var response = await client.Languages.GetAllAsync(); Language[] apiLanguages = response.Data; if (apiLanguages.Length <= 0) { return(languages); } foreach (Language item in apiLanguages) { TvDB_Language lan = new TvDB_Language { Id = item.Id, EnglishName = item.EnglishName, Name = item.Name, Abbreviation = item.Abbreviation }; languages.Add(lan); } } catch (TvDbServerException exception) { if (exception.StatusCode == (int)HttpStatusCode.Unauthorized) { client.Authentication.Token = null; await CheckAuthorizationAsync(); if (!string.IsNullOrEmpty(client.Authentication.Token)) { return(await GetLanguagesAsync()); } // suppress 404 and move on } else if (exception.StatusCode == (int)HttpStatusCode.NotFound) { return(languages); } logger.Error(exception, $"TvDB returned an error code: {exception.StatusCode}\n {exception.Message}"); Analytics.PostException(exception); } catch (Exception ex) { logger.Error(ex, $"Error in TVDBHelper.GetSeriesBannersOnline: {ex}"); Analytics.PostException(ex); } return(languages); }
public static async Task <List <TvDB_Language> > GetLanguagesAsync() { List <TvDB_Language> languages = new List <TvDB_Language>(); try { await _checkAuthorizationAsync(); TvDBRateLimiter.Instance.EnsureRate(); var response = await client.Languages.GetAllAsync(); TvDbSharper.Clients.Languages.Json.Language[] apiLanguages = response.Data; if (apiLanguages.Length <= 0) { return(languages); } foreach (TvDbSharper.Clients.Languages.Json.Language item in apiLanguages) { TvDB_Language lan = new TvDB_Language() { Id = item.Id, EnglishName = item.EnglishName, Name = item.Name, Abbreviation = item.Abbreviation }; languages.Add(lan); } } catch (TvDbSharper.Errors.TvDbServerException exception) { if (exception.StatusCode == HttpStatusCode.Unauthorized) { client.Authentication.Token = null; await _checkAuthorizationAsync(); if (client.Authentication.Token != null) { return(await GetLanguagesAsync()); } // suppress 404 and move on } else if (exception.StatusCode == HttpStatusCode.NotFound) { return(languages); } logger.Error(exception, "TvDB returned an error code: " + exception.StatusCode + "\n " + exception.Message); } catch (Exception ex) { logger.Error(ex, "Error in TVDBHelper.GetSeriesBannersOnline: " + ex.ToString()); } return(languages); }