Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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());
            }
        }
Exemple #3
0
        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());
            }
        }