public ParsedSplit GetSplit(string splitName) { var key = $"{RedisKeyPrefix}{splitKeyPrefix}{splitName}"; var splitJson = _redisAdapter.Get(key); if (string.IsNullOrEmpty(splitJson)) { return(null); } var split = JsonConvert.DeserializeObject <Split>(splitJson); return(_splitParser.Parse(split)); }
private void UpdateSplitsFromChangeFetcherResponse(List <Split> splitChanges) { var addedSplits = new List <Split>(); var removedSplits = new List <Split>(); foreach (Split split in splitChanges) { //If not active --> Remove Split var isValidStatus = Enum.TryParse(split.status, out StatusEnum result); if (!isValidStatus || result != StatusEnum.ACTIVE) { _splitCache.RemoveSplit(split.name); removedSplits.Add(split); } else { var isUpdated = _splitCache.AddOrUpdate(split.name, _splitParser.Parse(split)); if (!isUpdated) { //If not existing in _splits, its a new split addedSplits.Add(split); } } } if (addedSplits.Count() > 0) { var addedFeatureNames = addedSplits .Select(x => x.name) .ToList(); if (_log.IsDebugEnabled) { _log.Debug(string.Format("Added features: {0}", string.Join(" - ", addedFeatureNames))); } } if (removedSplits.Count() > 0) { var removedFeatureNames = removedSplits .Select(x => x.name) .ToList(); if (_log.IsDebugEnabled) { _log.Debug(string.Format("Deleted features: {0}", string.Join(" - ", removedFeatureNames))); } } }