private async Task RegisterInternal(API.IUserShim ushim, Type cbType, IContextCallback refmatch) { var session = ushim.SessionId; if (typeof(IServerContextCallback).IsAssignableFrom(cbType)) { await RegisterInternalInternal(session, ServerCallbacks, CallbackContext.ContextServer, cbType, (IServerContextCallback)refmatch); } if (typeof(IChannelContextCallback).IsAssignableFrom(cbType)) { await RegisterInternalInternal(session, ChannelCallbacks, CallbackContext.ContextChannel, cbType, (IChannelContextCallback)refmatch); } if (typeof(IUserContextCallback).IsAssignableFrom(cbType)) { await RegisterInternalInternal(session, UserCallbacks, CallbackContext.ContextUser, cbType, (IUserContextCallback)refmatch); } }
public Task Register <TCallback>(API.IUserShim ushim) where TCallback : IContextCallback, new() { return(RegisterInternal(ushim, typeof(TCallback), null)); }
public Task Register(API.IUserShim user, IContextCallback callback) { return(RegisterInternal(user, callback.GetType(), callback)); }