public Task <DataWrapper <List <TermsEntry> > > GetAllTermsAsync(string language) { if (string.IsNullOrWhiteSpace(language)) { throw new ArgumentException("No string received", nameof(language)); } var request = new RestRequest("api/v2/content/terms", Method.Get); request.AddHeader("Accept-Language", language); return(_repository.DoRequestAsync <DataWrapper <List <TermsEntry> > >(request)); }
public async Task <DataAppOpenWrapper> AppOpenAsync <TSection>(NStackPlatform platform, Guid userId, string version, string environment = "production", bool developmentEnvironment = false, bool productionEnvironment = true) where TSection : ResourceItem, new() { if (string.IsNullOrWhiteSpace(version) && (platform != NStackPlatform.Web || platform != NStackPlatform.Backend)) { throw new ArgumentException("Version is required on all platforms except web", nameof(version)); } if (productionEnvironment && developmentEnvironment) { throw new ArgumentException($"{nameof(productionEnvironment)} and {nameof(developmentEnvironment)} can't both be true"); } var request = new RestRequest("api/v2/open", Method.Post); request.AddHeader("N-Meta", $"{GetPlatformString(platform)};{environment};"); request.AddStringBody($"platform={GetPlatformString(platform)}&guid={userId}&version={version}&old_version={GetOldVersion(version)}&last_updated={GetLastUpdatedString()}&dev={developmentEnvironment}&test={!productionEnvironment}", "application/x-www-form-urlencoded"); var response = await _repository.DoRequestAsync <DataAppOpenWrapper>(request); if (response == null) { return(new DataAppOpenWrapper()); } _memoryCache.Set <DateTime>(LastUpdatedCacheKey, DateTime.UtcNow); _memoryCache.Set <string>(OldVersionCacheKey, version); // Fetch and store all updated localizations into the memory IEnumerable <Task <DataMetaWrapper <TSection> > > localizationFetches = response.Data.Localize.Where(l => l.ShouldUpdate).Select(GetLocalizationAsync <TSection>); await Task.WhenAll(localizationFetches); return(response); }
public Task <DataWrapper <List <ResourceData> > > GetLanguagesAsync(NStackPlatform platform) { var req = new RestRequest($"api/v2/content/localize/resources/platforms/{platform.ToString().ToLower()}"); return(_repository.DoRequestAsync <DataWrapper <List <ResourceData> > >(req)); }