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); }