/// <summary>
        /// Constructor used for editing an existing format rule
        /// </summary>
        /// <param name="dashboardHelper">The dashboard helper to attach</param>
        public ExpressionAssignDialog(DashboardHelper dashboardHelper, Rule_ExpressionAssign assignRule)
        {
            InEditMode = true;
            this.dashboardHelper = dashboardHelper;
            this.AssignRule = assignRule;
            InitializeComponent();
            FillSelectionComboboxes();

            this.txtDestinationField.Text = AssignRule.DestinationColumnName;
            this.txtExpression.Text = AssignRule.Expression;
            this.txtDestinationField.Enabled = false;

            if (assignRule.DestinationColumnType.Equals("System.String"))
            {
                cbxDataType.SelectedIndex = 1;
            }
            else
            {
                cbxDataType.SelectedIndex = 0;
            }
        }
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtDestinationField.Text))
            {
                MsgBox.ShowError(DashboardSharedStrings.EXPRESSION_ASSIGN_DESTINATION_FIELD_BLANK);
                this.DialogResult = DialogResult.None;
                return;
            }

            if (!editMode)
            {
                foreach (string s in dashboardHelper.GetFieldsAsList())
                {
                    if (txtDestinationField.Text.ToLower().Equals(s.ToLower()))
                    {
                        MsgBox.ShowError(DashboardSharedStrings.EXPRESSION_ASSIGN_DESTINATION_FIELD_ALREADY_EXISTS);
                        this.DialogResult = DialogResult.None;
                        return;
                    }
                }

                foreach (IDashboardRule rule in dashboardHelper.Rules)
                {
                    if (rule is DataAssignmentRule)
                    {
                        DataAssignmentRule assignmentRule = rule as DataAssignmentRule;
                        if (txtDestinationField.Text.ToLower().Equals(assignmentRule.DestinationColumnName.ToLower()))
                        {
                            MsgBox.ShowError(DashboardSharedStrings.EXPRESSION_ASSIGN_DESTINATION_FIELD_ALREADY_EXISTS_AS_RECODED);
                            this.DialogResult = DialogResult.None;
                            return;
                        }
                    }
                }
            }

            if (cbxDataType.Text.Equals("Text"))
            {
                AssignRule = new Rule_ExpressionAssign(this.dashboardHelper, "Assign " + txtDestinationField.Text + " the expression: " + txtExpression.Text, txtDestinationField.Text, "System.String", txtExpression.Text);
            }
            else if (cbxDataType.Text.Equals("Date/Time"))
            {
                AssignRule = new Rule_ExpressionAssign(this.dashboardHelper, "Assign " + txtDestinationField.Text + " the expression: " + txtExpression.Text, txtDestinationField.Text, "System.DateTime", txtExpression.Text);
            }
            else
            {
                AssignRule = new Rule_ExpressionAssign(this.dashboardHelper, "Assign " + txtDestinationField.Text + " the expression: " + txtExpression.Text, txtDestinationField.Text, txtExpression.Text);
            }
            this.DialogResult = DialogResult.OK;
            this.Close();
        }