public void Execute(StringBuilder sb, string value) { string[] properties = value.Split('/'); StringBuilder key = new StringBuilder(); string[] items = RuleAnalysis.Execute(properties[0]); foreach (string p in items) { string[] sps = RuleAnalysis.GetProperties(p); IParameterHandler handler = null; if (Factory.Handlers.TryGetValue(sps[0], out handler)) { handler.Execute(key, sps[1]); } } SequenceItem item = GetSequenceItem(key.ToString()); lock (item) { item.Value++; sb.Append(item.Value.ToString(properties[1])); } Save(item); }
public string Create(string rule) { string[] items = RuleAnalysis.Execute(rule); StringBuilder sb = new StringBuilder(); foreach (string item in items) { string[] properties = RuleAnalysis.GetProperties(item); IParameterHandler handler = null; if (mHandlers.TryGetValue(properties[0], out handler)) { handler.Execute(sb, properties[1]); } } return(sb.ToString()); }