Пример #1
0
    public async Task <bool> ParseInsert(InsertQuery query, IQueryParsingContext context)
    {
        if (query.TableName != "smart_scripts")
        {
            return(false);
        }

        var entry            = query.Columns.IndexOfIgnoreCase("entryorguid");
        var scriptSourceType = query.Columns.IndexOfIgnoreCase("source_type");

        if (entry == -1 || scriptSourceType == -1)
        {
            return(false);
        }

        HashSet <(int, SmartScriptType)> pairs = new();

        foreach (var insert in query.Inserts)
        {
            if (insert[entry] is long entryValue &&
                insert[scriptSourceType] is long scriptSourceTypeValue)
            {
                pairs.Add(((int)entryValue, (SmartScriptType)scriptSourceTypeValue));
            }
        }

        foreach (var pair in pairs)
        {
            context.ProduceItem(new SmartScriptSolutionItem(pair.Item1, pair.Item2));
        }

        return(true);
    }
Пример #2
0
 public void Finish(IQueryParsingContext context)
 {
 }
Пример #3
0
 public Task <bool> ParseUpdate(UpdateQuery query, IQueryParsingContext context)
 {
     return(Task.FromResult(query.TableName == "smart_scripts"));
 }