public void SaveLearnedData(string configDir) { var valueStore = new ValueStore(); var stepDefStore = new StepDefStore(valueStore); foreach (var stepDefRegex in _stepDefRegexes) { var paramNames = stepDefRegex.Key.GetValidNames(); for (int paramNumber = 0; paramNumber < paramNames.Count; paramNumber++) { var group = new ValueStoreGroup(paramNames[paramNumber]); var tmpItems = new HashSet <ValueStoreItem>(ValueStoreItem.RuValueComparer); foreach (var gherkinStep in stepDefRegex.Value) { var item = ValueStoreItem.FromMacros(gherkinStep.Text, paramNumber); if (item == default(ValueStoreItem)) { continue; } if (!tmpItems.Contains(item)) { tmpItems.Add(item); } } group.Items.AddRange(tmpItems.ToList()); valueStore.AddGroup(group); stepDefStore.AddStepDef(stepDefRegex.Key); } } valueStore.Save(ValueStoreConfigsDir, "learned"); stepDefStore.Save(StepDefStoreConfigsDir, "learned"); }