示例#1
0
        public string Insert(Entity entity, NpgController controller)
        {
            string insert = $"INSERT INTO \"{entity.TableName}\" (";
            string Values = $"VALUES (";
            Table  info   = controller.GetInfoAboutColumnName(entity.TableName);

            if (info.Columns.Count == 0)
            {
                throw new Exception($"Table '{info.NameTable}' was not exists");
            }
            for (int i = 0; i < entity.Pairs.Count; i++)
            {
                var    pair   = entity.Pairs.ElementAt(i);
                Column column = info.Columns.AtName(pair.Key);
                if (column == null)
                {
                    throw new Exception("Column was not found.");
                }
                if (i == entity.Pairs.Count - 1)
                {
                    insert += $"{column.Name})";
                    Values += $"'{pair.Value}')";
                }
                else
                {
                    insert += $"{column.Name}, ";
                    Values += $"'{pair.Value}', ";
                }
            }
            return(insert + Values);
        }
示例#2
0
 public string DropTable(string Json)
 {
     try
     {
         string TableName = JsonAdapter.TableNameFromJson(Json);
         string sql       = TableCollector.DropTable(TableName);
         NpgController.InvokeQueryWithoutAnswer(sql);
         return(new JObject().AddStatus("Success").ToString());
     }
     catch (Exception ex)
     {
         return(new JObject().AddStatus(ex).ToString());
     }
 }
示例#3
0
 public string CreateTable(string Json)
 {
     try
     {
         Table  table = JsonAdapter.AdaptTableFromJson(Json);
         string Sql   = TableCollector.CreateTable(table);
         NpgController.InvokeQueryWithoutAnswer(Sql);
         return(new JObject().AddStatus("Success").ToString());
     }
     catch (Exception ex)
     {
         return(new JObject().AddStatus(ex).ToString());
     }
 }
示例#4
0
 public string Delete(string Json)
 {
     try
     {
         string        TableName = JsonAdapter.TableNameFromJson(Json);
         List <Packet> packets   = PackageAdapter.PacketsFromJson(Json);
         string        Condition = FilterAdapter.GetCondition(TableName, packets.ToArray());
         string        sql       = $"DELETE FROM \"{TableName}\" WHERE {Condition}";
         return(JsonAdapter.ResultToJson(NpgController.InvokeQuery(sql)));
     }
     catch (Exception ex)
     {
         return(new JObject().AddStatus(ex).ToString());
     }
 }
示例#5
0
 public string Add(string Json)
 {
     try
     {
         List <Entity> entities = JsonAdapter.AdaptEntityFromJson(Json);
         foreach (Entity item in entities)
         {
             string Sql = RowCollector.Insert(item, NpgController);
             NpgController.InvokeQuery(Sql);
         }
         return(new JObject().AddStatus("Success").ToString());
     }
     catch (Exception ex)
     {
         return(new JObject().AddStatus(ex).ToString());
     }
 }
示例#6
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());
            }
        }
示例#7
0
        public string Update(string Json)
        {
            try
            {
                string TableName = JsonAdapter.TableNameFromJson(Json);

                List <Packet> packets   = PackageAdapter.PacketsFromJson(Json);
                string        Condition = FilterAdapter.GetCondition(TableName, packets.ToArray());

                List <UpdatePacket> updatePackets = SetConverter.FromJson(Json);
                string Sets = RowCollector.Set(updatePackets);

                string Sql = $"UPDATE \"{TableName}\" {Sets} WHERE {Condition}";
                return(JsonAdapter.ResultToJson(NpgController.InvokeQuery(Sql)));
            }
            catch (Exception ex)
            {
                return(new JObject().AddStatus(ex).ToString());
            }
        }
示例#8
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());
            }
        }