1 // Copyright (c) Microsoft Corporation. All rights reserved.
4 using System
.Collections
.Generic
;
5 using System
.Windows
.Forms
;
6 using Microsoft
.Rules
.Samples
.ExternalRuleSetLibrary
;
7 using System
.Globalization
;
9 namespace Microsoft
.Rules
.Samples
.ExternalRuleSetToolkit
11 internal partial class RuleSetSelector
: Form
13 #region Variables and constructor
15 internal RuleSetSelector()
17 InitializeComponent();
20 private List
<RuleSetData
> ruleSetDataCollection
= new List
<RuleSetData
>();
21 private List
<RuleSetData
> selectedRuleSetDataCollection
= new List
<RuleSetData
>();
22 private bool selectAll
;
23 private string instructions
;
29 internal string Instructions
31 get { return instructions; }
32 set { instructions = value; }
35 internal bool SelectAll
37 get { return selectAll; }
38 set { selectAll = value; }
41 internal List
<RuleSetData
> RuleSetDataCollection
43 get { return ruleSetDataCollection; }
46 internal List
<RuleSetData
> SelectedRuleSetDataCollection
48 get { return selectedRuleSetDataCollection; }
55 private void RuleSetSelectorForm_Load(object sender
, EventArgs e
)
57 instructionsTextBox
.Text
= instructions
;
58 ruleSetDataCollection
.Sort();
60 ruleSetsListBox
.DataSource
= ruleSetDataCollection
;
63 foreach (object item
in ruleSetDataCollection
)
65 ruleSetsListBox
.SelectedItems
.Add(item
);
72 #region Event handlers
74 private void cancelButton_Click(object sender
, EventArgs e
)
79 private void okButton_Click(object sender
, EventArgs e
)
81 selectedRuleSetDataCollection
.Clear();
83 foreach (object item
in ruleSetsListBox
.SelectedItems
)
85 selectedRuleSetDataCollection
.Add(item
as RuleSetData
);
88 string duplicateRuleSetName
;
90 if (this.ValidateUniqueness(out duplicateRuleSetName
))
93 this.DialogResult
= DialogResult
.OK
;
97 MessageBox
.Show(string.Format(CultureInfo
.InvariantCulture
, "Multiple RuleSets selected with the same Name: '{0}'.", duplicateRuleSetName
), "Export Error", MessageBoxButtons
.OK
, MessageBoxIcon
.Error
);
101 private bool ValidateUniqueness(out string duplicateRuleSetName
)
103 foreach (RuleSetData data1
in selectedRuleSetDataCollection
)
105 foreach (RuleSetData data2
in selectedRuleSetDataCollection
)
107 if (data1
!= data2
&& String
.CompareOrdinal(data1
.Name
, data2
.Name
) == 0)
109 duplicateRuleSetName
= data1
.Name
;
114 duplicateRuleSetName
= null;