private static LimitPacket GetLimit(ref string Json) { JObject obj = JObject.Parse(Json); if (obj.ContainsKey("Limit")) { var(resjson, Packet) = LimitAdapter.AdaptFromJson(Json); Json = resjson; return(Packet); } else { return(null); } }
public string GetAll(string Json) { try { LimitPacket packet = GetLimit(ref Json); string limit = packet == null ? "" : $" {LimitAdapter.AdaptToSql(packet)}"; string TableName = JsonAdapter.TableNameFromJson(Json); string Sql = $"SELECT * FROM \"{TableName}\"{limit}"; return(JsonAdapter.ResultToJson(NpgController.InvokeQuery(Sql))); } catch (Exception ex) { return(new JObject().AddStatus(ex).ToString()); } }
public string Where(string Json) { Validators.CheckPackets check = new Validators.CheckPackets(); try { LimitPacket limitPacket = GetLimit(ref Json); string limit = limitPacket == null ? "" : $" {LimitAdapter.AdaptToSql(limitPacket)}"; OrderByPacket orderByPacket = GetOrderBy(ref Json); string OrderBy = orderByPacket == null ? "" : $" {OrderByAdapter.ToSql(orderByPacket)}"; if (check.CheckJoin(Json)) { string Condition = ""; Joining.JoinAdapter adapter = new Joining.JoinAdapter(); string TableName = JsonAdapter.TableNameFromJson(Json); if (check.CheckPacket(Json)) { List <Packet> packets = PackageAdapter.PacketsFromJson(Json); PackageAdapter.Normalize(ref packets); Condition = $"WHERE {FilterAdapter.GetCondition(TableName, packets.ToArray())}"; } string JoinCondition = adapter.Adapt(Json); string sql = $"SELECT * FROM \"{TableName}\" {JoinCondition} {Condition}{OrderBy}{limit}"; return(JsonAdapter.ResultToJson(NpgController.InvokeQuery(sql))); } else { string TableName = JsonAdapter.TableNameFromJson(Json); List <Packet> packets = PackageAdapter.PacketsFromJson(Json); string Condition = FilterAdapter.GetCondition(TableName, packets.ToArray()); string sql = $"SELECT * FROM \"{TableName}\" WHERE {Condition}{OrderBy}{limit}"; return(JsonAdapter.ResultToJson(NpgController.InvokeQuery(sql))); } } catch (Exception ex) { return(new JObject().AddStatus(ex).ToString()); } }