public virtual void Merge(ParameterValuesCache parameterValuesCache, PathCache <IParameter> parameterCache) { var numberOfNewItems = parameterValuesCache.numberOfValuesPerPath; var currentCount = numberOfValuesPerPath; foreach (var parameterPath in parameterValuesCache.AllParameterPaths()) { if (!Has(parameterPath)) { addDefaultValues(parameterCache, parameterPath, currentCount); } ParameterValuesFor(parameterPath).Merge(parameterValuesCache.ParameterValuesFor(parameterPath)); } //fill up the one missing foreach (var parameterPath in AllParameterPaths()) { if (!parameterValuesCache.Has(parameterPath)) { addDefaultValues(parameterCache, parameterPath, numberOfNewItems); } } }
public virtual string[] AllParameterPaths() => ParameterValuesCache.AllParameterPaths();