public async Task <IHttpActionResult> AddRoom([FromBody] AddRoomViewModel addRoomViewModel)
        {
            Room room = new Room()
            {
                ColorRoom   = "blue",
                StickerRoom = "like",
                PathAvatar  = "",
                NameRoom    = ""
            };
            ApplicationUser user = context.Users.Find(addRoomViewModel.UserCreate);

            if (user == null)
            {
                return(BadRequest());
            }
            context.Rooms.Add(room);
            foreach (var item in addRoomViewModel.ListUserId)
            {
                var u = context.Users.Find(item);
                if (u != null)
                {
                    UserJoinRoom userJoinRoom = new UserJoinRoom()
                    {
                        Room   = room,
                        User   = u,
                        UserId = item
                    };
                    context.UserJoinRooms.Add(userJoinRoom);
                }
            }
            await context.SaveChangesAsync();

            return(Ok());
        }
        public async Task <IHttpActionResult> RemoveUserFromRoom([FromBody] UserRoomViewModel model)
        {
            UserJoinRoom userJoinRoom = context.UserJoinRooms.Where(t => t.UserId == model.UserId && t.Room.Id == model.IdRoom).First();

            if (userJoinRoom != null)
            {
                context.UserJoinRooms.Remove(userJoinRoom);
            }
            await context.SaveChangesAsync();

            return(Ok());
        }
예제 #3
0
        private void Receive(string data)
        {
            try
            {
                string[] vars   = data.Split('|');
                int      opcode = int.Parse(vars[0]);

                ClientPacket receivePacket = null;

                switch (opcode)
                {
                case 1: receivePacket = new AuthenticateUserTicket(); break;

                case 2: receivePacket = new UserJoinRoom(); break;

                case 3: receivePacket = new UserClickTile(); break;

                case 4: receivePacket = new UserPendingPlayers(); break;

                case 5: receivePacket = new InteractItem(); break;

                case 6: receivePacket = new RequestNavigatorRoom(); break;

                case 7: receivePacket = new ComposeInventoryRequest(); break;

                case 8: receivePacket = new InventoryPoseItem(); break;

                case 9: receivePacket = new InventoryPoseItemOnTile(); break;

                case 10: receivePacket = new PickItem(); break;
                }

                if (receivePacket != null)
                {
                    receivePacket.Client = this;
                    receivePacket.data   = vars;
                    new Thread(receivePacket.ExecuteAllThePacket).Start();
                }
                else if (ConfigManager.GetBool("connection.missing.packet"))
                {
                    Logger.Warn($"Received unknown packet. [{data}]");
                }
            }
            catch (Exception e)
            {
                Logger.Error("Error received data from GC => " + e.ToString());
            }
        }
        public IHttpActionResult AddUserToRoom([FromBody] RoomViewModel model)
        {
            var joinExist = context.UserJoinRooms.FirstOrDefault(t => t.UserId.Equals(model.IdUser) && t.RoomId == model.IdRoom);
            var user      = context.Users.Find(model.IdUser);

            if (joinExist == null && user != null)
            {
                var userJoinRoom = new UserJoinRoom()
                {
                    UserId           = model.IdUser,
                    RoomId           = model.IdRoom,
                    NickName         = user.FullName,
                    LastInterractive = DateTime.Now
                };
                context.UserJoinRooms.Add(userJoinRoom);
                context.SaveChanges();
            }
            return(Ok());
        }