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");
        }
Пример #2
0
 public override void Clear()
 {
     if (Callback != null)
     {
         ObjectPools.Instance.Release(Callback);
         Callback = null;
     }
 }
Пример #3
0
        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);
 }
Пример #6
0
        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));
        }