public object ToJSON() { return(FromImpl?.ToJSON()); }
private string EncodeAsJSON() { var parameters = new Dictionary <string, object>(); if (WhereImpl != null) { parameters["WHERE"] = WhereImpl.ConvertToJSON(); } if (Distinct) { parameters["DISTINCT"] = true; } if (LimitValue != null) { var e = Misc.TryCast <IExpression, QueryExpression>(LimitValue); parameters["LIMIT"] = e.ConvertToJSON(); } if (SkipValue != null) { var e = Misc.TryCast <IExpression, QueryExpression>(SkipValue); parameters["OFFSET"] = e.ConvertToJSON(); } if (OrderByImpl != null) { parameters["ORDER_BY"] = OrderByImpl.ToJSON(); } var selectParam = SelectImpl?.ToJSON(); if (selectParam != null) { parameters["WHAT"] = selectParam; } if (JoinImpl != null) { var fromJson = FromImpl?.ToJSON(); if (fromJson == null) { throw new InvalidOperationException(CouchbaseLiteErrorMessage.NoAliasInJoin); } var joinJson = JoinImpl.ToJSON() as IList <object>; Debug.Assert(joinJson != null); joinJson.Insert(0, fromJson); parameters["FROM"] = joinJson; } else { var fromJson = FromImpl?.ToJSON(); if (fromJson != null) { parameters["FROM"] = new[] { fromJson }; } } if (GroupByImpl != null) { parameters["GROUP_BY"] = GroupByImpl.ToJSON(); } if (HavingImpl != null) { parameters["HAVING"] = HavingImpl.ToJSON(); } return(JsonConvert.SerializeObject(parameters)); }