예제 #1
0
        public ConditionalFieldResult ProcessConditions(string inputText, ConditionalFieldTemplate fieldTemplate)
        {
            switch (fieldTemplate.ConditionType)
            {
            case ConditionType.SimpleDocumentTextRegex:
                return(ProcessSimpleDocumentTextRegexConditions(inputText, fieldTemplate));

            //break;
            default:
                throw new NotImplementedException();
                //break;
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
 /// <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;
 }