internal static Type GetExpectedType(this RESTarMetaCondition condition) { switch (condition) { case RESTarMetaCondition.Unsafe: return(typeof(bool)); case RESTarMetaCondition.Limit: return(typeof(int)); case RESTarMetaCondition.Offset: return(typeof(int)); case RESTarMetaCondition.Order_asc: return(typeof(string)); case RESTarMetaCondition.Order_desc: return(typeof(string)); case RESTarMetaCondition.Select: return(typeof(string)); case RESTarMetaCondition.Add: return(typeof(string)); case RESTarMetaCondition.Rename: return(typeof(string)); case RESTarMetaCondition.Distinct: return(typeof(bool)); case RESTarMetaCondition.Search: return(typeof(string)); case RESTarMetaCondition.Search_regex: return(typeof(string)); case RESTarMetaCondition.Safepost: return(typeof(string)); case RESTarMetaCondition.Format: return(typeof(string)); default: throw new ArgumentOutOfRangeException(nameof(condition), condition, null); } }
/// <summary> /// Creates a new custom UriCondition encoding a meta-condition /// </summary> public UriCondition(RESTarMetaCondition metaCondition, string valueLiteral) { if (metaCondition < RESTarMetaCondition.Unsafe || metaCondition > RESTarMetaCondition.Format) { throw new ArgumentOutOfRangeException(nameof(metaCondition)); } Key = metaCondition.ToString().ToLower(); Operator = Operator.EQUALS; ValueLiteral = valueLiteral; ValueTypeCode = Type.GetTypeCode(metaCondition.GetExpectedType()); }