コード例 #1
0
        private void StartExportCommandExecute()
        {
            switch (RecordScope)
            {
            case "Deleted":
                RecordProcessingScope = RecordProcessingScope.Deleted;
                break;

            case "Both":
                RecordProcessingScope = RecordProcessingScope.Both;
                break;

            case "Active":
            default:
                RecordProcessingScope = RecordProcessingScope.Undeleted;
                break;
            }

            Epi.ImportExport.Filters.ConditionJoinTypes op = Epi.ImportExport.Filters.ConditionJoinTypes.And;

            if (FilterJoinType != null && FilterJoinType.Equals("or", StringComparison.OrdinalIgnoreCase))
            {
                op = Epi.ImportExport.Filters.ConditionJoinTypes.Or;
            }

            ContactTracing.ImportExport.SyncFileFilters filters = new ContactTracing.ImportExport.SyncFileFilters(Database, op);

            if (ApplyFilters == true)
            {
                #region Check to see if user's filtering options make sense

                //if (String.IsNullOrEmpty(varName1) && String.IsNullOrEmpty(value1))
                //{
                //    MessageBox.Show("Neither a variable nor a value have been selected for the first condition. Please ensure both a variable and a value are present before proceeding.", "Missing filter information", MessageBoxButton.OK, MessageBoxImage.Error);
                //    return;
                //}

                //if (!String.IsNullOrEmpty(varName1) && String.IsNullOrEmpty(value1))
                //{
                //    MessageBox.Show("A variable has been selected for the first condition, but no value has been specified. Please specify a value and try again.", "No value specified", MessageBoxButton.OK, MessageBoxImage.Error);
                //    return;
                //}

                //if (!String.IsNullOrEmpty(value1) && String.IsNullOrEmpty(varName1))
                //{
                //    MessageBox.Show("A value has been selected for the first condition, but no variable has been specified. Please specify a variable on which to filter and try again.", "No variable specified", MessageBoxButton.OK, MessageBoxImage.Error);
                //    return;
                //}

                //if (cmbLogicalOperator.SelectedIndex == 1 && String.IsNullOrEmpty(varName2) && String.IsNullOrEmpty(value2))
                //{
                //    MessageBox.Show("Neither a variable nor a value have been selected for the second condition. Please ensure both a variable and a value are present before proceeding.", "Missing filter information", MessageBoxButton.OK, MessageBoxImage.Error);
                //    return;
                //}

                //if (cmbLogicalOperator.SelectedIndex == 1 && !String.IsNullOrEmpty(varName2) && String.IsNullOrEmpty(value2))
                //{
                //    MessageBox.Show("A variable has been selected for the second condition, but no value has been specified. Please specify a value and try again.", "No value specified", MessageBoxButton.OK, MessageBoxImage.Error);
                //    return;
                //}

                //if (cmbLogicalOperator.SelectedIndex == 1 && !String.IsNullOrEmpty(value2) && String.IsNullOrEmpty(varName2))
                //{
                //    MessageBox.Show("A value has been selected for the second condition, but no variable has been specified. Please specify a variable on which to filter and try again.", "No variable specified", MessageBoxButton.OK, MessageBoxImage.Error);
                //    return;
                //}

                #endregion

                if (!String.IsNullOrEmpty(FilterField1) && !String.IsNullOrEmpty(FilterValue1))
                {
                    if (FilterOperator1.Equals("equals", StringComparison.OrdinalIgnoreCase))
                    {
                        TextRowFilterCondition tfc = new TextRowFilterCondition("[" + FilterField1 + "] = @" + FilterField1 + "", "" + FilterField1 + "", "@" + FilterField1 + "", FilterValue1);
                        tfc.Description = "" + FilterField1 + " equals " + FilterValue1;
                        filters.Add(tfc);
                    }
                    else
                    {
                        string tempFilterValue1    = "%" + FilterValue1 + "%";
                        TextRowFilterCondition tfc = new TextRowFilterCondition("[" + FilterField1 + "] LIKE @" + FilterField1 + "", "" + FilterField1 + "", "@" + FilterField1 + "", tempFilterValue1);
                        tfc.Description       = "" + FilterField1 + " contains " + tempFilterValue1;
                        tfc.ConditionOperator = ConditionOperators.Contains;
                        filters.Add(tfc);
                    }
                }

                if (!String.IsNullOrEmpty(FilterField2) && !String.IsNullOrEmpty(FilterValue2))
                {
                    if (FilterOperator2.Equals("equals", StringComparison.OrdinalIgnoreCase))
                    {
                        TextRowFilterCondition tfc = new TextRowFilterCondition("[" + FilterField2 + "] = @" + FilterField2 + "", "" + FilterField2 + "", "@" + FilterField2 + "", FilterValue2);
                        tfc.Description = "" + FilterField2 + " equals " + FilterValue2;
                        filters.Add(tfc);
                    }
                    else
                    {
                        string tempFilterValue2    = "%" + FilterValue2 + "%";
                        TextRowFilterCondition tfc = new TextRowFilterCondition("[" + FilterField2 + "] LIKE @" + FilterField2 + "", "" + FilterField2 + "", "@" + FilterField2 + "", tempFilterValue2);
                        tfc.Description       = "" + FilterField2 + " contains " + tempFilterValue2;
                        tfc.ConditionOperator = ConditionOperators.Contains;
                        filters.Add(tfc);
                    }
                }
            }

            CreateCaseSyncFileStart(filters);
        }