public IQuery GetSql() { var query = Queries.BeginTransaction(); query.Comment(nameProvider.GetName(item)); query.DefineVariable("ENTRY", script.EntryOrGuid); var(serializedScript, serializedConditions) = scriptExporter.ToDatabaseCompatibleSmartScript(script); BuildDelete(query, serializedScript); BuildUpdate(query); BuildInsert(query, serializedScript, serializedConditions); return(query.Close()); }
private void BuildInsert(IMultiQuery query) { var(serializedScript, serializedConditions) = scriptExporter.ToDatabaseCompatibleSmartScript(script); if (serializedScript.Length == 0) { return; } var lines = serializedScript.Select(s => GenerateSingleSai(query, s)); query.Table("smart_scripts").BulkInsert(lines); query.BlankLine(); query.Add(conditionQueryGenerator.BuildDeleteQuery(new IDatabaseProvider.ConditionKey( SmartConstants.ConditionSourceSmartScript, null, script.EntryOrGuid, (int)script.SourceType))); query.Add(conditionQueryGenerator.BuildInsertQuery(serializedConditions)); }