public IMessage SyncProcessMessage(IMessage msg) { try { LogicalCallContext oldcctx = Message.PropagateCallContextFromMessageToThread(msg); if (this._delegate != null) { this._delegate(); } else { CallBackHelper @object = new CallBackHelper(this._eeData, true, this._targetDomainID); CrossContextDelegate crossContextDelegate = new CrossContextDelegate(@object.Func); crossContextDelegate(); } Message.PropagateCallContextFromThreadToMessage(msg, oldcctx); } catch (Exception e) { ReturnMessage returnMessage = new ReturnMessage(e, new ErrorMessage()); returnMessage.SetLogicalCallContext((LogicalCallContext)msg.Properties[Message.CallContextKey]); return(returnMessage); } return(this); }
private async Task HandleCallback(Update update) { if (update.Type == UpdateType.CallbackQuery) { var identifier = GetUserId(update); var caster = (int)CallBackHelper.Caster(update.CallbackQuery.Data); switch ((CallBack)caster) { case CallBack.Back: await navigator.TryPopPageAsync(identifier, update, NavigationType.PageToPage); return; case CallBack.RootPage: await navigator.PopToRootAsync(identifier, update); return; } await ResolveCallBackState(identifier, update, update.CallbackQuery.Data); } }
[System.Security.SecurityCritical] // auto-generated public IMessage SyncProcessMessage(IMessage msg) { Contract.Assert( Thread.CurrentContext.InternalContextID == _targetCtxID, "Transition message routed to wrong context"); try { LogicalCallContext oldcctx = Message.PropagateCallContextFromMessageToThread(msg); if (_delegate != null) { _delegate(); } else { // This is the cross appdomain case, so we need to construct // the delegate and call on it. CallBackHelper cb = new CallBackHelper( _eeData, true /*fromEE*/, _targetDomainID); CrossContextDelegate ctxDel = new CrossContextDelegate(cb.Func); ctxDel(); } Message.PropagateCallContextFromThreadToMessage(msg, oldcctx); } catch (Exception e) { ReturnMessage retMsg = new ReturnMessage(e, new ErrorMessage()); retMsg.SetLogicalCallContext( (LogicalCallContext) msg.Properties[Message.CallContextKey]); return retMsg; } return this; }