Пример #1
0
        public void Execute(ISiqiServer server)
        {
            MessageToken token = null;

            lock (this)
            {
                if (mQueue.Count > 0)
                {
                    token = mQueue.Dequeue();
                }
            }
            if (mUpDesks.Count > 0)
            {
                lock (mUpDesks)
                {
                    Protocol.RoomInfoDetail detail = new RoomInfoDetail();
                    detail.Desks    = new List <Protocol.DeskInfo>();
                    detail.RoomID   = ID;
                    detail.RoomName = Name;
                    detail.Success  = true;

                    foreach (IDesk item in mUpDesks)
                    {
                        detail.Desks.Add(item.GetInfo());
                    }
                    mUpDesks.Clear();
                    server.Send(detail, GetAgents());
                }
            }
            if (token != null)
            {
                OnExecute(token, server);
            }
        }
Пример #2
0
 protected virtual void OnExecute(MessageToken token, ISiqiServer server)
 {
     //添加处理逻辑
     if (token.Message is Protocol.SelectDesk)
     {
         SelectDesk(token.Message as Protocol.SelectDesk, token.UserAgent, server);
     }
 }
Пример #3
0
        public void Execute(ISiqiServer server)
        {
            MessageToken token = null;

            lock (this)
            {
                if (mQueue.Count > 0)
                {
                    token = mQueue.Dequeue();
                }
            }
            if (token != null)
            {
                OnExecute(token, server);
            }
        }
Пример #4
0
        private void SelectDesk(Protocol.SelectDesk e, IUserAgent agent, ISiqiServer server)
        {
            IDesk desk = Desks.FirstOrDefault(o => o.ID == e.Desk);

            Protocol.SelectDeskResponse response = new Protocol.SelectDeskResponse();
            response.Success = true;
            response.Seat    = e.Seat;
            response.Desk    = e.Desk;
            if (desk != null)
            {
                response.Message = desk.In(agent, e.Seat);
                response.Success = string.IsNullOrEmpty(response.Message);
            }
            else
            {
                response.Success = false;
                response.Message = "桌子编号错误!";
            }
            server.Send(response, agent);
        }
Пример #5
0
 protected virtual void OnExecute(MessageToken token, ISiqiServer server)
 {
     //添加处理逻辑
 }
Пример #6
0
 protected override void OnExecute(Protocol.Talk message, ISession session, IUserAgent agent, ISiqiServer server)
 {
     if (message.To != null)
     {
         IChannel channel = server.Application.Server.GetChannel(message.To);
         server.Send(message, channel);
     }
     else
     {
         message.From = agent.Name;
         server.Send(message, agent.Room.GetAgents());
     }
 }
Пример #7
0
 public void Execute(ISiqiServer server)
 {
     MessageToken token = null;
     lock (this)
     {
         if (mQueue.Count > 0)
             token = mQueue.Dequeue();
     }
     if (token != null)
         OnExecute(token, server);
 }
Пример #8
0
 protected virtual void OnExecute(MessageToken token, ISiqiServer server)
 {
     //添加处理逻辑
 }