Beispiel #1
0
        private void UpdateSplitsFromChangeFetcherResponse(List <Split> splitChanges)
        {
            List <Split> addedSplits   = new List <Split>();
            List <Split> removedSplits = new List <Split>();

            foreach (Split split in splitChanges)
            {
                ParsedSplit parsedSplit;
                //If not active --> Remove Split
                StatusEnum result;
                var        isValidStatus = Enum.TryParse(split.status, out 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)));
                }
            }
        }