예제 #1
0
 /// <summary>
 /// Parameterized Constructor
 /// </summary>
 /// <param name="editMode"></param>
 /// <param name="selectedItem"></param>
 public RecodedVariable(bool editMode, ListBoxItemSource selectedItem = null)
 {
     InitializeComponent();
     SelectedItem  = selectedItem;
     this.editMode = editMode;
     FillComboBox();
 }
예제 #2
0
 /// <summary>
 /// Parametrized Constructor for Edit functionality.
 /// </summary>
 /// <param name="editMode"></param>
 /// <param name="item"></param>
 public FormattedValue(bool editMode, ListBoxItemSource item)
 {
     this.editMode = editMode;
     InitializeComponent();
     FillSelectionComboboxes();
     IntializeFormattedValue(item);
 }
예제 #3
0
        /// <summary>
        /// Parametrized Constructor for Edit functionality.
        /// </summary>
        /// <param name="editMode"></param>
        /// <param name="item"></param>
        public ConditionalAssign(bool editMode, ListBoxItemSource item)
        {
            InitializeComponent();
            this.editMode = editMode;
            SelectedItem  = item;
            FillConditionalComboboxes();
            EwavRule_ConditionalAssign ca = (EwavRule_ConditionalAssign)SelectedItem.Rule;

            txtDestinationField.IsEnabled = false;
            cbxFieldType.SelectedIndex    = SearchColumnIndex(cbxFieldType.Items, ca.CbxFieldType.ToString());
            cbxFieldType.IsEnabled        = false;

            switch (cbxFieldType.SelectedValue.ToString().ToUpper().Replace("/", ""))
            {
            case "YESNO":
                cmbAssignValue.SelectedIndex = SearchColumnIndex(cmbAssignValue.Items, (ca.AssignValue == "True") ? "Yes" : "No");
                if (ca.ElseValue.Length > 0)
                {
                    cmbElseValue.SelectedIndex = SearchColumnIndex(cmbElseValue.Items, (ca.ElseValue == "True") ? "Yes" : "No");
                }

                if (cmbElseValue.SelectedIndex > 0)
                {
                    checkboxUseElse.IsChecked = true;
                }
                break;

            default:
                txtAssignValue.Text = ca.AssignValue;
                txtElseValue.Text   = ca.ElseValue;
                if (ca.ElseValue.Length > 0)
                {
                    checkboxUseElse.IsChecked = true;
                }
                break;
            }

            if (checkboxUseElse.IsChecked == true)
            {
                txtElseValue.IsEnabled = true;
            }
            else
            {
                txtElseValue.IsEnabled = false;
            }

            txtDestinationField.Text = ca.TxtDestination;

            //FillSelectionComboboxes();

            pnlGuidedMode.Visibility = System.Windows.Visibility.Visible;
            //pnlBtns.Visibility = System.Windows.Visibility.Visible;
            pnlAdvancedMode.Visibility = System.Windows.Visibility.Collapsed;
            pnlContainer.Visibility    = System.Windows.Visibility.Visible;

            //ctrl = new EwavFilterControl();
            FilterCtrl.FilterType = FilterControlType.Conditional;
            FilterCtrl.ConstructStackPanelFromDataFilters(((EwavRule_ConditionalAssign)SelectedItem.Rule).ConditionsList);
        }
예제 #4
0
 /// <summary>
 /// Intializes the control for edit functionality.
 /// </summary>
 /// <param name="item"></param>
 private void IntializeFormattedValue(ListBoxItemSource item)
 {
     for (int i = 0; i < applicationViewModel.EwavDefinedVariables.Count; i++)
     {
         if (item.DestinationColumn == applicationViewModel.EwavDefinedVariables[i].VaraiableName)
         {
             formatRule = applicationViewModel.EwavDefinedVariables[i] as EwavRule_Format;
             break;
         }
     }
     txtDestinationField.Text       = formatRule.TxtDestinationField;
     txtDestinationField.IsEnabled  = false;
     cbxFieldName.SelectedIndex     = GetSelectedIndex(cbxFieldName.Items, formatRule.CbxFieldName);
     cbxFieldName.IsEnabled         = false;
     cbxFormatOptions.SelectedIndex = GetSelectedIndex(cbxFormatOptions.Items, formatRule.CbxFormatOptions);
 }
예제 #5
0
        //int index = -1;
        //private EwavColumn sourceColumn;
        //List<EwavColumn> SourceColumns;

        public AssignedExpression(bool editMode, ListBoxItemSource selectedItem = null)
        {
            SelectedItem  = selectedItem;
            this.editMode = editMode;

            InitializeComponent();

            if (editMode)
            {
                txtDestinationField.Text = selectedItem.NewColumn;
                txtExpression.Text       = selectedItem.AssignExpression;
            }
            //else
            //{
            CBXFieldCols.Add(new EwavColumn {
                Name = "Text", SqlDataTypeAsString = ColumnDataType.Text
            });
            CBXFieldCols.Add(new EwavColumn {
                Name = "Numeric", SqlDataTypeAsString = ColumnDataType.Numeric
            });


            cbxDataType.ItemsSource       = CBXFieldCols;
            cbxDataType.DisplayMemberPath = "Name";

            if (editMode)
            {
                if (selectedItem.DataType == "Text")
                {
                    cbxDataType.SelectedIndex = 0;
                }
                else
                {
                    cbxDataType.SelectedIndex = 1;
                }
            }
            else
            {
                cbxDataType.SelectedIndex = 0;
            }


            //}
        }
예제 #6
0
        public GroupVariable(bool editMode, ListBoxItemSource selectedItem = null)
        {
            SelectedItem  = selectedItem;
            this.editMode = editMode;

            ClientCommon.Common cmnClass = new ClientCommon.Common();

            InitializeComponent();
            FillListBox();
            if (editMode)
            {
                EwavRule_GroupVariable rule = (EwavRule_GroupVariable)selectedItem.Rule;
                txtDestinationField.Text      = rule.VaraiableName;
                txtDestinationField.IsEnabled = false;

                foreach (var item in rule.Items)
                {
                    //cbxField.SelectedIndex = cmnClass.FindIndexToSelect(cmnClass.GetItemsSource(GetFieldPrimaryDataType), child.Value.ToString().Replace("&lt;", "<"));
                    //int index = -1;
                    //lbxFieldName.ItemsSource
                    lbxFieldName.SelectedItems.Add(cmnClass.FindEwavColumn(item.VarName, ReadColumns()));
                }
            }
        }
예제 #7
0
        /// <summary>
        /// Event Hanlder that adds the selected rule.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(txtDestinationField.Text))
            {
                MessageBox.Show("Destination field is blank.");
                this.DialogResult = true;
                return;
            }
            List <ListBoxItemSource> TempList = applicationViewModel.ListOfRules.Where(t => t.DestinationColumn.ToLower() == txtDestinationField.Text.ToLower()).ToList();

            if (TempList.Count > 0 && !editMode)
            {
                MessageBox.Show("Variable name already exists.");
                return;
            }

            if (!ValidateDataGrid((List <EwavRuleRecodeDataRow>)dataGridViewRecode.ItemsSource))
            {
                MessageBox.Show("Grid has some empty or invalid data.");
                return;
            }


            //following will not run while editing rule.
            if (!editMode)
            {
                List <ColumnDataType> columnDataType = new List <ColumnDataType>();
                columnDataType.Add(ColumnDataType.Boolean);
                columnDataType.Add(ColumnDataType.Numeric);
                columnDataType.Add(ColumnDataType.Text);

                CBXFieldCols = from cols in SourceColumns
                               where columnDataType.Contains(cols.SqlDataTypeAsString)
                               orderby cols.Name
                               select cols;
                List <EwavColumn> colsList    = CBXFieldCols.ToList();
                List <string>     ColumnsList = new List <string>();

                for (int i = 0; i < colsList.Count; i++)
                {
                    ColumnsList.Add(colsList[i].Name);
                }
            }

            string friendlyRule = "Recode the values in " + sourceColumn.Name + " to " + txtDestinationField.Text + "";


            EwavRule_Recode rule = new EwavRule_Recode();

            rule.Friendlyrule         = friendlyRule;
            rule.SourceColumnName     = sourceColumnName;
            rule.SourceColumnType     = ColumnSourceDataType;
            rule.TxtDestinationField  = txtDestinationField.Text;
            rule.DestinationFieldType = DestinationFieldType;
            rule.RecodeTable          = (List <EwavRuleRecodeDataRow>)dataGridViewRecode.ItemsSource;
            rule.TxtElseValue         = txtElseValue.Text;
            rule.CheckboxMaintainSortOrderIndicator = (bool)checkboxMaintainSortOrder.IsChecked;
            rule.CheckboxUseWildcardsIndicator      = (bool)checkboxUseWildcards.IsChecked;
            //   rule.EwavRuleType = EwavRuleType.Recode;
            rule.VaraiableName     = txtDestinationField.Text;
            rule.VaraiableDataType = GetDestinationColumnType(DestinationFieldType).ToString();


            ListBoxItemSource listBoxItem = new ListBoxItemSource();

            listBoxItem.RuleString        = friendlyRule;
            listBoxItem.SourceColumn      = sourceColumn.Name;
            listBoxItem.DestinationColumn = txtDestinationField.Text;
            listBoxItem.Rule = rule;


            EwavColumn newColumn = new EwavColumn();

            newColumn.Name = txtDestinationField.Text;
            newColumn.SqlDataTypeAsString = GetDestinationColumnType(DestinationFieldType);
            newColumn.NoCamelName         = txtDestinationField.Text;
            newColumn.IsUserDefined       = true;
            //following logic is used to create a relationship between UserDefined variable using another userDefined variable.

            sourceColumn.ChildVariableName = newColumn.Name;

            //Shows the error message if name already exists.
            if (!editMode)
            {
                for (int i = 0; i < applicationViewModel.EwavDefinedVariables.Count; i++)
                {
                    if (applicationViewModel.EwavDefinedVariables[i].VaraiableName == rule.VaraiableName)
                    {
                        MessageBox.Show("Rule Name already exists. Select another name.");
                        return;
                    }
                }
            }


            //determins if item already exists in collections. if it does, it is removed to get added again as a new item.
            bool itemExists = false;

            for (int i = 0; i < applicationViewModel.EwavDefinedVariables.Count; i++)
            {
                if (applicationViewModel.EwavDefinedVariables[i] is EwavRule_Recode)
                {
                    EwavRule_Recode ruleRec = applicationViewModel.EwavDefinedVariables[i] as EwavRule_Recode;


                    if (txtDestinationField.Text == ruleRec.TxtDestinationField)
                    {
                        applicationViewModel.EwavDefinedVariables.RemoveAt(i);
                        itemExists = true;
                    }
                }
            }
            applicationViewModel.InvokePreColumnChangedEvent();

            if (!itemExists)
            {
                applicationViewModel.EwavSelectedDatasource.AllColumns.Add(newColumn);
            }
            else
            {
                ListBoxItemSource item = (ListBoxItemSource)applicationViewModel.ListOfRules.Single(r => r.DestinationColumn == listBoxItem.DestinationColumn);
                applicationViewModel.ListOfRules.Remove(item);
            }
            applicationViewModel.ListOfRules.Add(listBoxItem);
            List <EwavRule_Base> listOfRules = new List <EwavRule_Base>();

            listOfRules = applicationViewModel.EwavDefinedVariables;
            listOfRules.Add(rule);

            applicationViewModel.EwavDefinedVariables = listOfRules;
            this.DialogResult = true;
        }
예제 #8
0
        /// <summary>
        /// Handles the addition of rule in EwavDefinedVariables
        /// addition of rule in ListOfRules used to bind ListBox
        /// addition of newly created column.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            List <ListBoxItemSource> TempList = applicationViewModel.ListOfRules.Where(t => t.DestinationColumn.ToLower() == txtDestinationField.Text.ToLower()).ToList();

            Boolean columnNameExists = false;

            columnNameExists = applicationViewModel.EwavSelectedDatasource.AllColumns.Any(c => c.Name.ToLower() == txtDestinationField.Text.ToLower());

            if ((TempList.Count > 0 && !editMode) || columnNameExists)
            {
                MessageBox.Show("Variable name already exists.");
                return;
            }


            if (string.IsNullOrEmpty(txtDestinationField.Text))
            {
                MessageBox.Show("Destination field is blank.");
                //this.DialogResult = DialogResult.None;
                return;
            }
            if (cbxFormatOptions.SelectedIndex < 0)
            {
                MessageBox.Show("No format options selected.");
                //this.DialogResult = DialogResult.None;
                return;
            }

            string friendlyLabel = "Format the display of " + ((EwavColumn)cbxFieldName.SelectedItem).Name.ToString() + " to show " + cbxFormatOptions.SelectedItem.ToString() + " and place the formatted values in " + txtDestinationField.Text;
            //, cbxFieldName.SelectedItem.ToString(), txtDestinationField.Text, cbxFormatOptions.SelectedItem.ToString(), GetFormatType());


            EwavRule_Format rule = new EwavRule_Format();

            rule.FriendlyLabel       = friendlyLabel;
            rule.CbxFieldName        = ((EwavColumn)cbxFieldName.SelectedItem).Name;
            rule.TxtDestinationField = txtDestinationField.Text;
            rule.FormatTypes         = GetFormatType();
            rule.CbxFormatOptions    = cbxFormatOptions.SelectedItem.ToString();
            rule.VaraiableName       = txtDestinationField.Text;
            rule.VaraiableDataType   = ColumnDataType.Text.ToString();

            ListBoxItemSource listBoxItem = new ListBoxItemSource();

            listBoxItem.RuleString = friendlyLabel;
            //listBoxItem.SourceColumn = sourceColumn.Name;
            listBoxItem.DestinationColumn = txtDestinationField.Text;
            listBoxItem.RuleType          = EwavRuleType.Formatted;
            listBoxItem.Rule         = rule;
            listBoxItem.SourceColumn = null;

            EwavColumn newcolumn = new EwavColumn();

            newcolumn.Name = txtDestinationField.Text;
            newcolumn.SqlDataTypeAsString = ColumnDataType.Text;
            newcolumn.NoCamelName         = txtDestinationField.Text;
            newcolumn.IsUserDefined       = true;

            applicationViewModel.InvokePreColumnChangedEvent();

            List <EwavRule_Base> rules = new List <EwavRule_Base>();

            rules = applicationViewModel.EwavDefinedVariables;

            //Shows the error message if name already exists.
            if (!editMode)
            {
                for (int i = 0; i < applicationViewModel.EwavDefinedVariables.Count; i++)
                {
                    if (applicationViewModel.EwavDefinedVariables[i].VaraiableName == rule.VaraiableName)
                    {
                        MessageBox.Show("Rule Name already exists. Select another name.");
                        return;
                    }
                }
            }


            for (int i = 0; i < rules.Count; i++)
            {
                if (rule.TxtDestinationField == rules[i].VaraiableName)
                {
                    rules.RemoveAt(i);
                    applicationViewModel.ListOfRules.RemoveAt(i);
                    break;
                }
            }

            if (!editMode)
            {
                applicationViewModel.EwavSelectedDatasource.AllColumns.Add(newcolumn);
            }
            applicationViewModel.ListOfRules.Add(listBoxItem);
            List <EwavRule_Base> listOfRules = new List <EwavRule_Base>();

            listOfRules = applicationViewModel.EwavDefinedVariables;
            listOfRules.Add(rule);

            applicationViewModel.EwavDefinedVariables = listOfRules;
            this.DialogResult = true;
        }
예제 #9
0
        private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            // add data to new rule add to  list
            // add new rule to listbox item source   kk
            //  add column to Allcolumns

            List <ListBoxItemSource> TempList = applicationViewModel.ListOfRules.Where(t => t.DestinationColumn.ToLower() == txtDestinationField.Text.ToLower()).ToList();

            if (TempList.Count > 0 && !editMode)
            {
                MessageBox.Show("Variable name already exists.");
                return;
            }


            EwavRule_ExpressionAssign ea = new EwavRule_ExpressionAssign();

            ea.Expression = txtExpression.Text;

            if (((EwavColumn)cbxDataType.SelectedItem).SqlDataTypeAsString.ToString() == "Text")
            {
                ea.DataType = "System.String";
            }
            else if (((EwavColumn)cbxDataType.SelectedItem).SqlDataTypeAsString.ToString() == "Numeric")
            {
                ea.DataType = "System.Decimal";
            }

            //   "System.String";
            ea.FriendlyRule          = string.Format("Assign {0} the expression: {1}", txtDestinationField.Text, txtExpression.Text);
            ea.DestinationColumnName = txtDestinationField.Text;
            ea.VaraiableName         = txtDestinationField.Text;

            List <EwavRule_Base> rules = new List <EwavRule_Base>();

            rules = applicationViewModel.EwavDefinedVariables;

            //Shows the error message if name already exists.
            if (!editMode)
            {
                for (int i = 0; i < applicationViewModel.EwavDefinedVariables.Count; i++)
                {
                    if (applicationViewModel.EwavDefinedVariables[i].VaraiableName == ea.VaraiableName)
                    {
                        MessageBox.Show("Rule Name already exists. Select another name.");
                        return;
                    }
                }
            }

            for (int i = 0; i < rules.Count; i++)
            {
                if (ea.DestinationColumnName == rules[i].VaraiableName)
                {
                    rules.RemoveAt(i);
                    applicationViewModel.ListOfRules.RemoveAt(i);
                    break;
                }
            }

            //EwavRule_ExpressionAssign ea = new EwavRule_ExpressionAssign();
            //ea.Expression = txtExpression.Text;

            //ea.DataType = "System.String";
            //ea.FriendlyRule = "Assign " + txtDestinationField.Text + " the expression: " + txtExpression.Text;
            //ea.DestinationColumnName = txtDestinationField.Text;

            applicationViewModel.InvokePreColumnChangedEvent();



            //   applicationViewModel.EwavDefinedVariables.Add(ea);

            ListBoxItemSource listBoxItem = new ListBoxItemSource();

            listBoxItem.RuleString        = ea.FriendlyRule;
            listBoxItem.NewColumn         = txtDestinationField.Text;
            listBoxItem.AssignExpression  = txtExpression.Text;
            listBoxItem.DataType          = ((EwavColumn)cbxDataType.SelectedItem).SqlDataTypeAsString.ToString();
            listBoxItem.DestinationColumn = txtDestinationField.Text;
            listBoxItem.SourceColumn      = null;
            listBoxItem.RuleType          = EwavRuleType.Assign;

            ea.VaraiableDataType = ((EwavColumn)cbxDataType.SelectedItem).SqlDataTypeAsString.ToString();

            listBoxItem.Rule = ea;
            EwavColumn newColumn = new EwavColumn();

            newColumn.Name = txtDestinationField.Text;
            newColumn.SqlDataTypeAsString = ((EwavColumn)cbxDataType.SelectedItem).SqlDataTypeAsString;
            newColumn.NoCamelName         = txtDestinationField.Text;
            newColumn.IsUserDefined       = true;

            if (editMode == false)
            {
                applicationViewModel.EwavSelectedDatasource.AllColumns.Add(newColumn);
            }

            applicationViewModel.ListOfRules.Add(listBoxItem);

            List <EwavRule_Base> tempList = applicationViewModel.EwavDefinedVariables;

            tempList.Add(ea);

            applicationViewModel.EwavDefinedVariables = tempList;

            this.DialogResult = true;
        }
예제 #10
0
        private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            EwavRule_GroupVariable rule = new EwavRule_GroupVariable();

            if (txtDestinationField.Text.Trim().Length == 0)
            {
                MessageBox.Show("Group Field Name must be entered.");
                return;
            }

            if (lbxFieldName.SelectedItems.Count == 0)
            {
                MessageBox.Show("Select items to include in the group.");
                return;
            }

            List <MyString> lbxItems = new List <MyString>();

            StringBuilder listOfColumnNamesSelected = new StringBuilder();

            foreach (var item in lbxFieldName.SelectedItems)
            {
                MyString itemValue = new MyString();
                itemValue.VarName = ((EwavColumn)item).Name.ToString();
                lbxItems.Add(itemValue);
                listOfColumnNamesSelected.Append(itemValue.VarName + ",");
            }

            string friendlyLabel = "Create a variable group called " + txtDestinationField.Text + " and include: " + listOfColumnNamesSelected.ToString().Substring(0, listOfColumnNamesSelected.ToString().Length - 1);

            rule.Items             = lbxItems;
            rule.VaraiableName     = txtDestinationField.Text;
            rule.VaraiableDataType = ColumnDataType.GroupVariable.ToString();
            rule.FriendlyLabel     = friendlyLabel;



            ListBoxItemSource listBoxItem = new ListBoxItemSource();

            listBoxItem.RuleString = friendlyLabel;
            //listBoxItem.SourceColumn = sourceColumn.Name;
            listBoxItem.DestinationColumn = txtDestinationField.Text;
            listBoxItem.NewColumn         = txtDestinationField.Text;
            listBoxItem.RuleType          = EwavRuleType.GroupVariable;
            listBoxItem.SourceColumn      = null;
            listBoxItem.Rule = rule;

            EwavColumn newcolumn = new EwavColumn();

            newcolumn.Name = txtDestinationField.Text;
            newcolumn.SqlDataTypeAsString = ColumnDataType.GroupVariable;
            newcolumn.NoCamelName         = txtDestinationField.Text;
            newcolumn.IsUserDefined       = true;

            applicationViewModel.InvokePreColumnChangedEvent();

            List <EwavRule_Base> rules = new List <EwavRule_Base>();

            rules = applicationViewModel.EwavDefinedVariables;

            //Shows the error message if name already exists.
            if (!editMode)
            {
                for (int i = 0; i < applicationViewModel.EwavDefinedVariables.Count; i++)
                {
                    if (applicationViewModel.EwavDefinedVariables[i].VaraiableName == rule.VaraiableName)
                    {
                        MessageBox.Show("Rule Name already exists. Select another name.");
                        return;
                    }
                }
            }


            for (int i = 0; i < rules.Count; i++)
            {
                if (rule.VaraiableName == rules[i].VaraiableName)
                {
                    rules.RemoveAt(i);
                    applicationViewModel.ListOfRules.RemoveAt(i);
                    break;
                }
            }

            if (!editMode)
            {
                applicationViewModel.EwavSelectedDatasource.AllColumns.Add(newcolumn);
            }
            applicationViewModel.ListOfRules.Add(listBoxItem);
            List <EwavRule_Base> listOfRules = new List <EwavRule_Base>();

            listOfRules = applicationViewModel.EwavDefinedVariables;
            listOfRules.Add(rule);

            applicationViewModel.EwavDefinedVariables = listOfRules;
            this.DialogResult = true;
        }
예제 #11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            List <ListBoxItemSource> TempList = applicationViewModel.ListOfRules.Where(t => t.DestinationColumn.ToLower() == txtDestinationField.Text.ToLower()).ToList();

            Boolean columnNameExists = false;

            columnNameExists = applicationViewModel.EwavSelectedDatasource.AllColumns.Any(c => c.Name.ToLower() == txtDestinationField.Text.ToLower());

            //if ((TempList.Count > 0 && !editMode) || columnNameExists)
            //{
            //    MessageBox.Show("Variable name already exists.");
            //    return;
            //}


            if (ValidateControl())
            {
                List <EwavDataFilterCondition> listOfFilters = FilterCtrl.CreateDataFilters();

                string destinationColumnType = "System.String";

                ColumnDataType colType = ColumnDataType.Text;

                object           elseValue   = this.txtElseValue.Text;
                object           assignValue = this.txtAssignValue.Text;
                cbxFieldTypeEnum fieldEnum   = cbxFieldTypeEnum.None;
                switch (cbxFieldType.SelectedItem.ToString())
                {
                case "Yes/No":
                    destinationColumnType = "System.Boolean";
                    if (cmbAssignValue.SelectedIndex == 0)
                    {
                        assignValue = true;
                    }
                    else if (cmbAssignValue.SelectedIndex == 1)
                    {
                        assignValue = false;
                    }

                    if (checkboxUseElse.IsChecked == false)
                    {
                        elseValue = "";
                    }
                    else if (cmbElseValue.SelectedIndex == 0)
                    {
                        elseValue = true;
                    }
                    else if (cmbElseValue.SelectedIndex == 1)
                    {
                        elseValue = false;
                    }
                    fieldEnum = cbxFieldTypeEnum.YesNo;
                    colType   = ColumnDataType.Boolean;
                    break;

                case "Text":
                    destinationColumnType = "System.String";
                    if (checkboxUseElse.IsChecked == false)
                    {
                        elseValue = "";
                    }
                    else
                    {
                        elseValue = this.txtElseValue.Text;
                    }

                    assignValue = this.txtAssignValue.Text;
                    fieldEnum   = cbxFieldTypeEnum.Text;
                    colType     = ColumnDataType.Text;
                    break;

                case "Numeric":
                    destinationColumnType = "System.Decimal";
                    decimal decElse;
                    decimal decAssign;
                    if (checkboxUseElse.IsChecked == false)
                    {
                        elseValue = "";
                    }
                    else
                    {
                        bool success1 = Decimal.TryParse(this.txtElseValue.Text, out decElse);
                        if (success1)
                        {
                            elseValue = decElse;
                        }
                    }

                    bool success2 = Decimal.TryParse(this.txtAssignValue.Text, out decAssign);
                    if (success2)
                    {
                        assignValue = decAssign;
                    }

                    //if ((!success1 && checkboxUseElse.IsChecked) || !success2)
                    //{
                    //    Epi.Windows.MsgBox.ShowError("Invalid input detected.");
                    //    this.DialogResult = DialogResult.None;
                    //    return;
                    //}
                    fieldEnum = cbxFieldTypeEnum.Numeric;
                    colType   = ColumnDataType.Numeric;
                    break;
                }

                string assignText = FilterCtrl.ConditionText.ToString().Substring(0, FilterCtrl.ConditionText.Length - 3);

                if (checkboxUseElse.IsChecked == true)
                {
                    assignText += ". Otherwise, assign " + txtDestinationField.Text + " the value " + elseValue + ".";
                }
                //conditionText = (

                ListBoxItemSource listBoxItem = new ListBoxItemSource();
                listBoxItem.RuleString        = "Assign " + txtDestinationField.Text + " the value " + assignValue + " when " + assignText;
                listBoxItem.SourceColumn      = null;
                listBoxItem.DestinationColumn = txtDestinationField.Text;
                listBoxItem.RuleType          = EwavRuleType.conditional;

                EwavRule_ConditionalAssign rule = new EwavRule_ConditionalAssign();
                rule.TxtDestination        = txtDestinationField.Text;
                rule.DestinationColumnType = destinationColumnType;
                rule.AssignValue           = assignValue.ToString();
                rule.ElseValue             = elseValue.ToString();
                rule.ConditionsList        = listOfFilters;
                rule.CbxFieldType          = fieldEnum;
                rule.VaraiableName         = txtDestinationField.Text;
                rule.VaraiableDataType     = colType.ToString();

                MyString tempStr = new MyString();
                tempStr.VarName   = "Assign " + txtDestinationField.Text + " the value " + assignValue + " when " + assignText;
                rule.FriendlyRule = tempStr;

                EwavColumn newColumn = new EwavColumn();
                newColumn.Name = txtDestinationField.Text;
                newColumn.SqlDataTypeAsString = colType;// ColumnDataType.Text;
                newColumn.NoCamelName         = txtDestinationField.Text;
                newColumn.IsUserDefined       = true;

                applicationViewModel.InvokePreColumnChangedEvent();



                List <EwavRule_Base> rules = new List <EwavRule_Base>();
                rules            = applicationViewModel.EwavDefinedVariables;
                listBoxItem.Rule = rule;
                //listBoxItem.FilterConditionsPanel = pnlContainer;

                //Shows the error message if name already exists.
                if (!editMode)
                {
                    for (int i = 0; i < applicationViewModel.EwavDefinedVariables.Count; i++)
                    {
                        if (applicationViewModel.EwavDefinedVariables[i].VaraiableName == rule.VaraiableName)
                        {
                            MessageBox.Show("Rule Name already exists. Select another name.");
                            return;
                        }
                    }
                }

                for (int i = 0; i < rules.Count; i++)
                {
                    if (rule.TxtDestination == rules[i].VaraiableName)
                    {
                        rules[i] = rule;
                        //applicationViewModel.ListOfRules.RemoveAt(i);
                        applicationViewModel.ListOfRules[i] = listBoxItem;
                        break;
                    }
                }

                if (!editMode)
                {
                    applicationViewModel.EwavSelectedDatasource.AllColumns.Add(newColumn);
                    applicationViewModel.ListOfRules.Add(listBoxItem);
                    rules.Add(rule);
                }

                applicationViewModel.EwavDefinedVariables = rules;

                this.DialogResult = true;
            }
        }