/// <summary> /// Converts the MetaConditions object into a collection of IUriCondition instances /// </summary> public IEnumerable <IUriCondition> AsConditionList() { var list = new List <IUriCondition>(); if (Unsafe) { list.Add(new UriCondition(RESTarMetaCondition.Unsafe, "true")); } if (Limit.Number > -1) { list.Add(new UriCondition(RESTarMetaCondition.Limit, Limit.Number.ToString())); } if (Offset.Number == int.MinValue) { list.Add(new UriCondition(RESTarMetaCondition.Offset, "-∞")); } else if (Offset.Number == int.MaxValue) { list.Add(new UriCondition(RESTarMetaCondition.Offset, "∞")); } else if (Offset.Number != 0) { list.Add(new UriCondition(RESTarMetaCondition.Offset, Offset.Number.ToString())); } if (OrderBy is OrderByDescending) { list.Add(new UriCondition(RESTarMetaCondition.Order_desc, OrderBy.Term.ToString())); } else if (OrderBy != null) { list.Add(new UriCondition(RESTarMetaCondition.Order_asc, OrderBy.Term.ToString())); } if (Select != null) { list.Add(new UriCondition(RESTarMetaCondition.Select, string.Join(",", Select))); } if (Add != null) { list.Add(new UriCondition(RESTarMetaCondition.Add, string.Join(",", Add))); } if (Rename != null) { list.Add(new UriCondition(RESTarMetaCondition.Rename, string.Join(",", Rename.Select(r => $"{r.Key}->{r.Value}")))); } if (Distinct != null) { list.Add(new UriCondition(RESTarMetaCondition.Distinct, "true")); } if (Search is RegexSearch) { list.Add(new UriCondition(RESTarMetaCondition.Search_regex, Search.GetValueLiteral())); } else if (Search != null) { list.Add(new UriCondition(RESTarMetaCondition.Search, Search.GetValueLiteral())); } if (SafePost != null) { list.Add(new UriCondition(RESTarMetaCondition.Safepost, SafePost)); } if (Formatter.HasValue) { list.Add(new UriCondition(RESTarMetaCondition.Format, Formatter.Value.Name)); } return(list); }