added samples
[windows-sources.git] / sdk / samples / WCFSamples / TechnologySamples / Extensibility / Rules / ExternalRuleSetToolkit / CS / ExternalRuleSetTool / RuleSetSelector.cs
blob00de2781dc0ff4c9c3a7f184dfd9bca2f9d4a01a
1 // Copyright (c) Microsoft Corporation. All rights reserved.
3 using System;
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;
25 #endregion
27 #region Properties
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; }
51 #endregion
53 #region Form load
55 private void RuleSetSelectorForm_Load(object sender, EventArgs e)
57 instructionsTextBox.Text = instructions;
58 ruleSetDataCollection.Sort();
60 ruleSetsListBox.DataSource = ruleSetDataCollection;
61 if (selectAll)
63 foreach (object item in ruleSetDataCollection)
65 ruleSetsListBox.SelectedItems.Add(item);
70 #endregion
72 #region Event handlers
74 private void cancelButton_Click(object sender, EventArgs e)
76 this.Close();
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))
92 this.Close();
93 this.DialogResult = DialogResult.OK;
95 else
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;
110 return false;
114 duplicateRuleSetName = null;
115 return true;
118 #endregion