public FeatureStateBaseHolder(FeatureStateBaseHolder fs) { if (fs != null) { FeatureUpdateHandler = fs.FeatureUpdateHandler; } }
// 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); }
// 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); }
public IFeatureStateHolder Copy() { var fs = new FeatureStateBaseHolder(null); fs.FeatureState = this._feature; return(fs); }
public FeatureStateBaseHolder(FeatureStateBaseHolder fs, ApplyFeature applyFeature) { _applyFeature = applyFeature; if (fs != null) { FeatureUpdateHandler = fs.FeatureUpdateHandler; } }