public static void Callback(this Qbobject qobj) { // make a copy of the list so callbacks can queue more operations var cbList = qobj.GetOrSetAttached(() => new List <Action <QBObjectResult> >()).Value; var cbsCopy = cbList.ToArray(); cbList.Clear(); var zip = qobj.Results.Zip(cbsCopy, (r, cb) => new { r, cb }); foreach (var x in zip) { x.cb(x.r); } }
public static void RegCallback(this Qbobject qobj, Action <QBObjectResult> action) { qobj.GetOrSetAttached(() => new List <Action <QBObjectResult> >()).Value.Add(action); }
public static void ProcessQueueAndCallback(this Qbobject qobj) { qobj.ProcessQueue(); qobj.Callback(); }
public static void QueueWithCallback(this Qbobject qobj, string aggregate, Action <QBObjectResult> action) { qobj.Queue(aggregate); qobj.RegCallback(action); }