Example #1
0
        public async Task <int> Exit(string id)
        {
            var iret = 1;

            var roomid = GetUserRoomId(id);

            if (roomid == null)
            {
                return(iret);
            }

            //var tu_data = await tu.GetTableUser_Data();

            ITableRoom tr = GetTableRoom(roomid);

            if (tr == null)
            {
                iret = 3;
                return(iret);
            }
            iret = await tr.Exit(id);

            if (iret > 0)
            {
                roomid = string.Empty;
                this.SetUserRoomId(id, roomid);
            }

            return(iret);
        }
Example #2
0
        public ITableRoom GetTableRoom(string id)
        {
            ITableRoom itr = default;

            m_Dict_TableRoom.TryGetValue(id, out itr);
            return(itr);
        }
Example #3
0
        public async Task <int> Join(TableUser_Data user_data)
        {
            var        iret = 1;
            ITableRoom tr   = null;

            var roomid = GetUserRoomId(user_data.Id);

            if (roomid != null)
            {
                user_data.RoomId = roomid;
                //iret = -2;//已经在别的房间
                //return iret;
            }

            /*
             * var tu_data = GetTableUser_Data(user_data.Id);  //this.GetITableUser(user_data.Id);
             * if(tu_data == null)
             * {
             *  AddTableUser_Data(user_data);
             * }*/

            if (user_data.RoomId == string.Empty)
            {
                tr = await CreateTableRoom();
            }
            else
            {
                tr = GetTableRoom(user_data.RoomId);
                if (tr != null)
                {
                    iret = 2;//已经在房间中
                    return(iret);
                }
                else
                {
                    tr = await CreateTableRoom();
                }
            }

            iret = await tr.Join(user_data);

            if (iret > 0)
            {
                var trinfo = await tr.GetTableRoomInfo();

                SetUserRoomId(user_data.Id, trinfo.Id);
            }

            return(iret);
        }
Example #4
0
 public void SetTableRoom(string roomid, ITableRoom itr)
 {
     m_Dict_TableRoom[roomid] = itr;
 }