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)); }
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)); }
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); }
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(); } }
private void zRefreshNormalizationRule(GetValueNormalizationRule rule) { olvDataNormalization.RefreshObject(rule); }