using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using TMDbLib.Objects.Configuration; using TMDbLib.Objects.Countries; using TMDbLib.Objects.General; using TMDbLib.Objects.Languages; using TMDbLib.Objects.Timezones; using TMDbLib.Rest; namespace TMDbLib.Client { public partial class TMDbClient { public async Task GetAPIConfiguration(CancellationToken cancellationToken = default) { RestRequest req = _client.Create("configuration"); using RestResponse response = await req.Get(cancellationToken).ConfigureAwait(false); return (await response.GetDataObject().ConfigureAwait(false)); } public async Task> GetCountriesAsync(CancellationToken cancellationToken = default) { RestRequest req = _client.Create("configuration/countries"); using RestResponse> response = await req.Get>(cancellationToken).ConfigureAwait(false); return await response.GetDataObject().ConfigureAwait(false); } public async Task> GetLanguagesAsync(CancellationToken cancellationToken = default) { RestRequest req = _client.Create("configuration/languages"); using RestResponse> response = await req.Get>(cancellationToken).ConfigureAwait(false); return (await response.GetDataObject().ConfigureAwait(false)); } public async Task> GetPrimaryTranslationsAsync(CancellationToken cancellationToken = default) { RestRequest req = _client.Create("configuration/primary_translations"); using RestResponse> response = await req.Get>(cancellationToken).ConfigureAwait(false); return (await response.GetDataObject().ConfigureAwait(false)); } public async Task GetTimezonesAsync(CancellationToken cancellationToken = default) { RestRequest req = _client.Create("timezones/list"); using RestResponse>>> resp = await req.Get>>>(cancellationToken).ConfigureAwait(false); List>> item = await resp.GetDataObject().ConfigureAwait(false); if (item == null) return null; Timezones result = new Timezones(); result.List = new Dictionary>(); foreach (Dictionary> dictionary in item) { KeyValuePair> item1 = dictionary.First(); result.List[item1.Key] = item1.Value; } return result; } /// /// Retrieves a list of departments and positions within /// /// Valid jobs and their departments public async Task> GetJobsAsync(CancellationToken cancellationToken = default) { RestRequest req = _client.Create("configuration/jobs"); using RestResponse> response = await req.Get>(cancellationToken).ConfigureAwait(false); return (await response.GetDataObject().ConfigureAwait(false)); } } }