Example #1
0
 public FeatureStateBaseHolder(FeatureStateBaseHolder fs)
 {
     if (fs != null)
     {
         FeatureUpdateHandler = fs.FeatureUpdateHandler;
     }
 }
Example #2
0
        // update the feature if its version is greater than the version we currently store
        private bool FeatureUpdate(FeatureState fs)
        {
            var keyExists = _features.ContainsKey(fs.Key);
            FeatureStateBaseHolder holder = keyExists ? _features[fs.Key] : null;

            if (holder?.Key == null)
            {
                holder = new FeatureStateBaseHolder(holder);
            }
            else if (holder.Version != null)
            {
                if (holder.Version > fs.Version || (
                        holder.Version == fs.Version && !FeatureStateBaseHolder.ValueChanged(holder.Value, fs.Value)))
                {
                    return(false);
                }
            }

            holder.FeatureState = fs;
            if (keyExists)
            {
                _features[fs.Key] = holder;
            }
            else
            {
                _features.Add(fs.Key, holder);
            }

            return(true);
        }
Example #3
0
        // update the feature if its version is greater than the version we currently store
        private bool FeatureUpdate(FeatureState fs)
        {
            var keyExists = _features.ContainsKey(fs.Key);
            FeatureStateBaseHolder holder = keyExists ? _features[fs.Key] : null;

            if (holder?.Key == null)
            {
                holder = new FeatureStateBaseHolder(holder);
            }
            else if (holder.Version != null && holder.Version >= fs.Version)
            {
                // Console.WriteLine($"discarding {fs}");
                return(false);
            }

            // Console.WriteLine($"storing {fs}");

            holder.FeatureState = fs;
            if (keyExists)
            {
                _features[fs.Key] = holder;
            }
            else
            {
                _features.Add(fs.Key, holder);
            }

            return(true);
        }
Example #4
0
        public IFeatureStateHolder Copy()
        {
            var fs = new FeatureStateBaseHolder(null);

            fs.FeatureState = this._feature;

            return(fs);
        }
Example #5
0
        public FeatureStateBaseHolder(FeatureStateBaseHolder fs, ApplyFeature applyFeature)
        {
            _applyFeature = applyFeature;

            if (fs != null)
            {
                FeatureUpdateHandler = fs.FeatureUpdateHandler;
            }
        }