private void RegisterError(AbstractCallback callback, CallbackEvent evt, AppInfo app, Exception e) { int eSpaceId = 0; int tenantId = 0; HeContext heContext = null; try { eSpaceId = (app != null? app.eSpaceId : 0); tenantId = (app != null && HttpContext.Current != null? app.Tenant.Id : 0); if (app != null) { heContext = app.OsContext; } } catch { } int errors = 0; _errorsInCallbacks.TryGetValue(callback, out errors); _errorsInCallbacks[callback] = (errors + 1); ErrorLog.LogApplicationError( eSpaceId, tenantId, "Error invoking callback " + callback.GetType().FullName + " on event " + evt.ToString() + ": " + e.Message, e, heContext, "Callback"); }
public override void Clear() { if (Callback != null) { ObjectPools.Instance.Release(Callback); Callback = null; } }
private AbstractCallback.EventListener NewCallbackListener(IDataReader reader, List <ICodeInjectionElement> injectionElements) { AbstractCallbackInvoke invoke = CreateCallbackInvoke(reader); CodeInjectionFactory.Locations location = (CodeInjectionFactory.Locations)Enum.Parse(typeof(CodeInjectionFactory.Locations), DataReaderUtils.SafeGet <string>(reader, "CallbackLocation")); AbstractCallback callback = CreateCallback(reader, location, invoke) as AbstractCallback; callback.HideInProvider = (reader["HIDE_IN_PROVIDER"] != DBNull.Value ? Convert.ToBoolean(reader["HIDE_IN_PROVIDER"]) : false); callback.IsLocalizable = (reader["IS_LOCALIZED"] != DBNull.Value ? Convert.ToBoolean(reader["IS_LOCALIZED"]) : false); injectionElements.Add(callback); return(CreateCallbackEventListener(reader, callback)); }
/// <summary> /// Queue next animation with name <param name="animationName"></param> /// </summary> /// <param name="animationName">Animation name</param> /// <returns>This object</returns> /// <exception cref="Exception">If this promise started already</exception> public AnimationPromise Show(string animationName) { if (_callback != null) { throw new Exception("Animation started already"); } _animationTask = Promises.Of((resolve, _) => { _callback = SubscribeOnAnimationFinished(animationName, resolve); _animObject.Queue(animationName); }); return(this); }
public EventBusSubscription(EventBus eventBus, AbstractCallback callback, string signal) { Stop = () => eventBus.Unsubscribe(signal, callback); }
private AbstractCallback.EventListener CreateCallbackEventListener(IDataReader reader, AbstractCallback callback) { CallbackEvent evt = (CallbackEvent)Enum.Parse(typeof(CallbackEvent), Convert.ToString(reader["CALLBACKNAME"])); int espaceId = (reader["ESPACEID"] == DBNull.Value? 0 : Convert.ToInt32(reader["ESPACEID"])); int tenantId = (reader["TENANTID"] == DBNull.Value? 0 : Convert.ToInt32(reader["TENANTID"])); if (evt == CallbackEvent.GetHtmlForUser && !(callback is Callbacks.ECT.ECTShowFeedbackCallback) && !(callback is Callbacks.ECT.ECTGetHtmlCallback)) { throw new InvalidOperationException("GetHtmlForUser must be used for ECT Callbacks only"); } if (evt.AffectsApplication()) { tenantId = 0; } return(callback.BuildEventListener(evt, espaceId, tenantId)); }