public async Task <IHttpActionResult> Get() { var features = await _featureInfoService.GetFeaturesItems().ConfigureAwait(false); return(Ok(features)); }
public async Task InvalidateCache(string name, bool findDeepInterfacesToInvalidate) { var featureItems = (await _featureInfoService.GetFeaturesItems().ConfigureAwait(false)).ToList(); var feature = featureItems.SingleOrDefault(x => x.FeatureDescriptor.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); var interfaces = new List <string>(); GetAllInterfaces(interfaces, featureItems, feature, findDeepInterfacesToInvalidate); var switchCacheTasks = interfaces.Select(x => _cache.Remove(_cache.GetSwitchCacheKey(x))); var enumerableCacheTasks = interfaces.Select(x => _cache.Remove(_cache.GetEnumerableCacheKey(x))); await Task.WhenAll(switchCacheTasks.Concat(enumerableCacheTasks)).ConfigureAwait(false); }
public async Task Dispatch(RequestDispatchContext requestDispatchContext) { var req = requestDispatchContext.HttpContext.Request; var res = requestDispatchContext.HttpContext.Response; if (req.Method != "GET") { res.StatusCode = 405; return; } var settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), Converters = new JsonConverter[] { new StringEnumConverter { CamelCaseText = true } } }; var serialized = JsonConvert.SerializeObject(_featureInfoService.GetFeaturesItems(), settings); res.ContentType = "application/json"; await res.WriteAsync(serialized); }