private void BuildStringFilter(TextboxQueueViewModel ctrlTextFilter, CollectionQueueFilterString collectionqueuestring)
        {
            if (collectionqueuestring.IsAnd != null && collectionqueuestring.IsAnd == false)
            {
                ctrlTextFilter.LocalSelectedCondition = CollectionQueueOperators.Or.ToString();
            }
            else
            {
                ctrlTextFilter.LocalSelectedCondition = CollectionQueueOperators.And.ToString();
            }

            if (collectionqueuestring.Operator1 != null)
            {
                ctrlTextFilter.LocalSelectedOperators1 = ctrlTextFilter.AllOperators.FirstOrDefault(p => p.Value == collectionqueuestring.Operator1.Value.ToString());
                ctrlTextFilter.Value1 = collectionqueuestring.Value1 == null ? "" : collectionqueuestring.Value1;
            }

            if (collectionqueuestring.Operator2 != null)
            {
                ctrlTextFilter.LocalSelectedOperators2 = ctrlTextFilter.AllOperators.FirstOrDefault(p => p.Value == collectionqueuestring.Operator2.Value.ToString());
                ctrlTextFilter.Value2 = collectionqueuestring.Value2 == null ? "" : collectionqueuestring.Value2;
            }
        }
        private bool IsValidString(string value, CollectionQueueFilterString filterString)
        {
            bool isValid = true;
            bool isString1 = true;
            bool isString2 = true;
            bool isNotEqual = false;

            // Compare filterString.Value1 and value with Operator1
            if (filterString.Operator1.HasValue)
            {
                string filterStringValue1 = filterString.Value1.ToUpper();
                switch (filterString.Operator1.Value)
                {
                    case 730:
                        isString1 = value.StartsWith(filterString.Value1);
                        break;

                    case 731:
                        isString1 = value.Contains(filterString.Value1);
                        break;

                    case 741:
                        isString1 = this.IsStartsWithOperator(filterStringValue1, true, value.ToUpper(), 0, isNotEqual);
                        break;
                    case 739:
                        isString1 = this.IsStartsWithOperator(filterStringValue1, false, value.ToUpper(), 0, isNotEqual);
                        break;
                    case 738:
                        isNotEqual = true;
                        isString1 = this.IsStartsWithOperator(filterStringValue1, false, value.ToUpper(), 0, isNotEqual);
                        break;
                    case 740:
                        isNotEqual = true;
                        isString1 = this.IsStartsWithOperator(filterStringValue1, true, value.ToUpper(), 0, isNotEqual);
                        break;
                    default:
                        break;
                }
            }
            isNotEqual = false;

            // Compare filterString.Value2 and value with Operator2
            if (filterString.Operator2.HasValue)
            {
                string filterStringValue2 = filterString.Value2.ToUpper();

                switch (filterString.Operator2.Value)
                {
                    case 730:
                        isString2 = value.StartsWith(filterString.Value2);
                        break;

                    case 731:
                        isString2 = value.Contains(filterString.Value2);
                        break;

                    case 741:
                        isString2 = this.IsStartsWithOperator(filterStringValue2, true, value.ToUpper(), 0, isNotEqual);
                        break;
                    case 739:
                        isString2 = this.IsStartsWithOperator(filterStringValue2, false, value.ToUpper(), 0, isNotEqual);
                        break;
                    case 738:
                        isNotEqual = true;
                        isString2 = this.IsStartsWithOperator(filterStringValue2, false, value.ToUpper(), 0, isNotEqual);
                        break;
                    case 740:
                        isNotEqual = true;
                        isString2 = this.IsStartsWithOperator(filterStringValue2, true, value.ToUpper(), 0, isNotEqual);
                        break;
                    default:
                        break;
                }
            }

            // Handle And, Or
            if (filterString.IsAnd.HasValue)
            {
                if (filterString.IsAnd.Value)
                {
                    return isString1 && isString2;
                }
                else
                {
                    return isString1 || isString2;
                }
            }
            else
            {
                if (filterString.Operator1.HasValue)
                {
                    return isString1;
                }
                else if (filterString.Operator2.HasValue)
                {
                    return isString2;
                }
            }
            return isValid;
        }