private void ClientQueryServer(ConnectionlessMessageEventArgs e) { var msg = (QueryServerMessage)e.Message; if (!msg.ServerInfoOnly && !context.GetPermission(PermissionName.RequestChannelList)) { var denied = new PermissionDeniedMessage(GablarskiMessageType.QueryServer); e.Messenger.SendConnectionlessMessageAsync(denied, e.From); return; } var result = new QueryServerResultMessage(); if (!msg.ServerInfoOnly) { result.Channels = this.context.ChannelsProvider.GetChannels(); result.Users = this.users.ToList(); } result.ServerInfo = GetServerInfo(); e.Messenger.SendConnectionlessMessageAsync(result, e.From); }
public TReceive SendAndReceive <TReceive> (ClientMessage message, IHttpSession session, out PermissionDeniedMessage error) where TReceive : MessageBase { return(SendAndReceive <TReceive, PermissionDeniedMessage> (message, session, p => p.DeniedMessage == message.MessageType, out error)); }