/// <summary> /// Gets one strongly typed content item by its codename. /// </summary> /// <typeparam name="T">Type of the code-first model. (Or <see cref="object"/> if the return type is not yet known.)</typeparam> /// <param name="codename">The codename of a content item.</param> /// <param name="parameters">A collection of query parameters, for example for projection or depth of linked items.</param> /// <returns>The <see cref="IDeliveryItemResponse{T}"/> instance that contains the content item with the specified codename.</returns> public async Task <IDeliveryItemResponse <T> > GetItemAsync <T>(string codename, IEnumerable <IQueryParameter> parameters = null) { var queryParameters = parameters?.ToList(); return(await _deliveryCacheManager.GetOrAddAsync( CacheHelpers.GetItemKey <T>(codename, queryParameters), () => _deliveryClient.GetItemAsync <T>(codename, queryParameters), response => response != null, CacheHelpers.GetItemDependencies)); }
/// <summary> /// Returns a content item as JSON data. /// </summary> /// <param name="codename">The codename of a content item.</param> /// <param name="parameters">An array that contains zero or more query parameters, for example for projection or depth of linked items.</param> /// <returns>The <see cref="JObject"/> instance that represents the content item with the specified codename.</returns> public async Task <JObject> GetItemJsonAsync(string codename, params string[] parameters) { return(await _deliveryCacheManager.GetOrAddAsync( CacheHelpers.GetItemJsonKey(codename, parameters), () => _deliveryClient.GetItemJsonAsync(codename, parameters), response => response != null, CacheHelpers.GetItemJsonDependencies)); }