protected override void RemoveEngineCustomizations(Engine engine, ScriptedJsonPatcherOperationScope scope) { base.RemoveEngineCustomizations(engine, scope); engine.Global.Delete("documentId", true); engine.Global.Delete("replicateTo", true); engine.Global.Delete("varchar", true); engine.Global.Delete("nVarchar", true); foreach (var sqlReplicationTable in config.SqlReplicationTables) { engine.Global.Delete("replicateTo" + sqlReplicationTable.TableName, true); } }
protected override void CustomizeEngine(Engine jintEngine, ScriptedJsonPatcherOperationScope scope) { jintEngine.SetValue("documentId", docId); jintEngine.SetValue("replicateTo", new Action <string, object>(ReplicateToFunction)); foreach (var sqlReplicationTable in config.SqlReplicationTables) { var current = sqlReplicationTable; jintEngine.SetValue("replicateTo" + sqlReplicationTable.TableName, (Action <object>)(cols => { var tableName = current.TableName; ReplicateToFunction(tableName, cols); })); } }
protected override void CustomizeEngine(Engine engine, ScriptedJsonPatcherOperationScope scope) { base.CustomizeEngine(engine, scope); engine.SetValue("documentId", docId); engine.SetValue("replicateTo", new Action <string, object>(ReplicateToFunction)); foreach (var sqlReplicationTable in config.SqlReplicationTables) { var current = sqlReplicationTable; engine.SetValue("replicateTo" + sqlReplicationTable.TableName, (Action <object>)(cols => { var tableName = current.TableName; ReplicateToFunction(tableName, cols); })); } engine.SetValue("varchar", (Func <string, double?, ValueTypeLengthTriple>)(ToVarchar)); engine.SetValue("nVarchar", (Func <string, double?, ValueTypeLengthTriple>)(ToNVarchar)); }
protected override void CustomizeEngine(Engine engine, ScriptedJsonPatcherOperationScope scope) { base.CustomizeEngine(engine, scope); engine.Execute(string.Format(@"function ExecutePatchScript(docInner){{ return (function(doc){{ {0} }}).apply(docInner); }};", scriptedPatchRequest.Script.NormalizeLineEnding())); }