private bool SaveParameters(ListView parameterListView, IDictionary<string, string> parameterList)
{
parameterList.Clear();
List<string> names = new List<string>();
foreach (ListViewItem lvi in parameterListView.Items)
{
// some sanity checking on the parameter names
string param = lvi.SubItems[0].Text;
string name = new Regex("[^a-z0-9_]").Replace(param, "");
if (name == "" || new Regex("[0-9]").IsMatch(name.Substring(0, 1)))
{
MessageBox.Show(string.Format("{0} is not a valid parameter name", param), TemplateName);
parameterListView.Focus();
parameterListView.SelectedItems.Clear();
lvi.Selected = true;
DialogResult = DialogResult.None;
return false;
}
if (names.Contains(name))
{
MessageBox.Show(string.Format("{0}: duplicated parameter", name), TemplateName);
parameterListView.Focus();
parameterListView.SelectedItems.Clear();
lvi.Selected = true;
DialogResult = DialogResult.None;
return false;
}
names.Add(name);
parameterList.Add(lvi.SubItems[0].Text, lvi.SubItems[1].Text);
}
return true;
}