public ConditionalFieldResult ProcessConditions(string inputText, ConditionalFieldTemplate fieldTemplate) { switch (fieldTemplate.ConditionType) { case ConditionType.SimpleDocumentTextRegex: return(ProcessSimpleDocumentTextRegexConditions(inputText, fieldTemplate)); //break; default: throw new NotImplementedException(); //break; } }
private ConditionalFieldTemplate GetConditionalFieldTemplateFromUcConditianalField(Control ucConditionalFieldControl) { var retVal = new ConditionalFieldTemplate(); var ucConditionalField = ucConditionalFieldControl as ucConditionalFieldTemplate; if (ucConditionalField != null) { retVal.Name = ucConditionalField.NameText; retVal.ConditionalFieldType = (ConditionalFieldType)(ucConditionalField.ConditionalFieldTypeInt); retVal.ConditionValues = ucConditionalField.ConditionsList; retVal.OnlyStoreInGroupTemplate = ucConditionalField.OnlyStoreInGroupTemplateBool; retVal.IgnoreCaseForSimpleDocumentTextRegex = ucConditionalField.IgnoreCaseForSimpleDocumentTextRegexBool; } return(retVal); }
private ConditionalFieldResult ProcessSimpleDocumentTextRegexConditions(string inputText, ConditionalFieldTemplate fieldTemplate) { var retVal = new ConditionalFieldResult() { Name = fieldTemplate.Name, ConditionalFieldType = fieldTemplate.ConditionalFieldType }; var regexOptions = RegexOptions.None; if (fieldTemplate.IgnoreCaseForSimpleDocumentTextRegex) { regexOptions = RegexOptions.IgnoreCase; } foreach (var item in fieldTemplate.ConditionValues) { if (string.IsNullOrEmpty(item.Condition)) { retVal.Value = item.Value; if (string.IsNullOrWhiteSpace(item.DisplayValue) == true) { retVal.DisplayValue = item.Value; } else { retVal.DisplayValue = item.DisplayValue; } } else { var regexConditions = item.Condition.Split("&&".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); var isMatching = true; foreach (var regexCondition in regexConditions) { if (Regex.IsMatch(inputText, regexCondition, regexOptions) == false) { isMatching = false; break; } } if (isMatching) { retVal.Value = item.Value; if (string.IsNullOrWhiteSpace(item.DisplayValue) == true) { retVal.DisplayValue = item.Value; } else { retVal.DisplayValue = item.DisplayValue; } } } } return(retVal); }
/// <summary> /// Conditional field user control for class and group templates with data /// </summary> public ucConditionalFieldTemplate(ConditionalFieldTemplate dataFieldClassTemplate) { InitializeComponent(); cbxConditionalFieldType.MouseWheel += (o, e) => ((HandledMouseEventArgs)e).Handled = true; this.conditionalFieldTemplate = dataFieldClassTemplate; }