Пример #1
0
        private bool zEvaluateMatch(string originalValue, GetValueNormalizationRule normalizationRule)
        {
            if (normalizationRule.Trim)
            {
                originalValue = originalValue.Trim();
            }
            string regex = zBuildRegex(normalizationRule);

            return(Regex.IsMatch(originalValue, regex, normalizationRule.CaseSensitive ? RegexOptions.None : RegexOptions.IgnoreCase));
        }
Пример #2
0
        private string zFindReplace(string originalValue, GetValueNormalizationRule normalizationRule)
        {
            if (normalizationRule.Trim)
            {
                originalValue = originalValue.Trim();
            }
            string regex = zBuildRegex(normalizationRule);

            return(Regex.Replace(originalValue,
                                 regex,
                                 normalizationRule.ReplacementValue,
                                 normalizationRule.CaseSensitive ? RegexOptions.None : RegexOptions.IgnoreCase));
        }
Пример #3
0
 private void olvDataNormalization_CellEditFinishing(object sender, BrightIdeasSoftware.CellEditEventArgs e)
 {
     if (e.Column.IsEditable)
     {
         if (!e.Cancel)
         {
             GetValueNormalizationRule rule = (GetValueNormalizationRule)e.RowObject;
             if (e.Column == olvColumnComparative)
             {
                 ComboBox cb = (ComboBox)e.Control;
                 rule.Comparative = (Comparative)cb.SelectedItem;
             }
             if (e.Column == olvColumnOriginal)
             {
                 rule.OriginalValue = e.NewValue.ToString();
             }
             if (e.Column == olvColumnReplacement)
             {
                 rule.ReplacementValue = e.NewValue.ToString();
             }
             if (e.Column == olvColumnCaseSensitive)
             {
                 rule.CaseSensitive = (bool)e.NewValue;
             }
             if (e.Column == olvColumnTrim)
             {
                 rule.Trim = (bool)e.NewValue;
             }
             if (e.Column == olvColumnReplaceWholeOriginalValue)
             {
                 rule.ReplaceWholeOriginalValue = (bool)e.NewValue;
             }
             zRefreshNormalizationRule(rule);
             e.Cancel = true;
         }
         else if (m_AddNormalizationRuleMode)
         {
             m_NormalizationRules.RemoveAt(e.ListViewItem.Index);
             zRefreshNormalizationRules();
         }
         m_AddNormalizationRuleMode = false;
     }
 }
        private string zGetNormalizationRuleTestCondition(GetValueNormalizationRule normalizationRule, string selectPath)
        {
            string testCondition = selectPath;

            if (normalizationRule.Trim)
            {
                testCondition = String.Format("normalize-space({0})", testCondition);
            }
            if (!normalizationRule.CaseSensitive)
            {
                testCondition             = String.Format("translate({0}, $upperCase, $lowerCase)", testCondition);
                m_CaseTranslationRequired = true;
            }
            string ruleOriginalValue = normalizationRule.CaseSensitive ? normalizationRule.OriginalValue : normalizationRule.OriginalValue.ToLower();

            switch (normalizationRule.Comparative)
            {
            case Comparative.Equals:
                testCondition = String.Format("{0} = '{1}'", testCondition, ruleOriginalValue);
                break;

            case Comparative.Contains:
                testCondition = String.Format("contains({0}, '{1}')", testCondition, ruleOriginalValue);
                break;

            case Comparative.BeginsWith:
                testCondition = String.Format("starts-with({0}, '{1}')", testCondition, ruleOriginalValue);
                break;

            case Comparative.EndsWith:
                testCondition = String.Format("'{1}' = substring({0}, string-length({0}) - string-length('{1}') + 1)", testCondition, ruleOriginalValue);
                break;

            default:
                throw new NotSupportedException();
            }

            return(testCondition);
        }
Пример #5
0
        private string zBuildRegex(GetValueNormalizationRule normalizationRule)
        {
            switch (normalizationRule.Comparative)
            {
            case Comparative.Equals:
                return(String.Format(@"\A{0}\Z", Regex.Escape(normalizationRule.OriginalValue)));

            case Comparative.BeginsWith:
                return(String.Format(@"\A{0}", Regex.Escape(normalizationRule.OriginalValue)));

            case Comparative.EndsWith:
                return(String.Format(@"{0}\Z", Regex.Escape(normalizationRule.OriginalValue)));

            case Comparative.Contains:
                return(Regex.Escape(normalizationRule.OriginalValue));

            case Comparative.RegexMatch:
                return(normalizationRule.OriginalValue);

            default:
                throw new NotSupportedException();
            }
        }
Пример #6
0
 private void zRefreshNormalizationRule(GetValueNormalizationRule rule)
 {
     olvDataNormalization.RefreshObject(rule);
 }