Пример #1
0
        private static Expression <Func <MixAttributeSetValue, bool> > GetValuePredicate(string fieldValue
                                                                                         , MixEnums.CompareType filterType, MixEnums.MixDataType dataType)
        {
            Expression <Func <MixAttributeSetValue, bool> > valPredicate = null;

            switch (dataType)
            {
            case MixEnums.MixDataType.Date:
            case MixEnums.MixDataType.Time:
                if (DateTime.TryParse(fieldValue, out DateTime dtValue))
                {
                    valPredicate = FilterObjectSet <MixAttributeSetValue, DateTime>("DateTimeValue", dtValue, filterType);
                }
                break;

            case MixEnums.MixDataType.Double:
                if (double.TryParse(fieldValue, out double dbValue))
                {
                    valPredicate = FilterObjectSet <MixAttributeSetValue, double>("DoubleValue", dbValue, filterType);
                }
                break;

            case MixEnums.MixDataType.Boolean:
                if (bool.TryParse(fieldValue, out bool boolValue))
                {
                    valPredicate = FilterObjectSet <MixAttributeSetValue, bool>("BooleanValue", boolValue, filterType);
                }
                break;

            case MixEnums.MixDataType.Integer:
                if (int.TryParse(fieldValue, out int intValue))
                {
                    valPredicate = FilterObjectSet <MixAttributeSetValue, int>("IntegerValue", intValue, filterType);
                }
                break;

            case MixEnums.MixDataType.Reference:
                break;

            case MixEnums.MixDataType.Duration:
            case MixEnums.MixDataType.Custom:
            case MixEnums.MixDataType.DateTime:
            case MixEnums.MixDataType.PhoneNumber:
            case MixEnums.MixDataType.Text:
            case MixEnums.MixDataType.Html:
            case MixEnums.MixDataType.MultilineText:
            case MixEnums.MixDataType.EmailAddress:
            case MixEnums.MixDataType.Password:
            case MixEnums.MixDataType.Url:
            case MixEnums.MixDataType.ImageUrl:
            case MixEnums.MixDataType.CreditCard:
            case MixEnums.MixDataType.PostalCode:
            case MixEnums.MixDataType.Upload:
            case MixEnums.MixDataType.Color:
            case MixEnums.MixDataType.Icon:
            case MixEnums.MixDataType.VideoYoutube:
            case MixEnums.MixDataType.TuiEditor:
            case MixEnums.MixDataType.QRCode:
            default:
                valPredicate = FilterObjectSet <MixAttributeSetValue, string>("StringValue", fieldValue, filterType);
                break;
            }

            return(valPredicate);
        }