public ResponseMessage GetPlayerInRoom(int ID_room) { string query = "SELECT * from room_list where id =" + ID_room; room_list room_ = db.Database.SqlQuery <room_list>(query).FirstOrDefault(); return(new ResponseMessage("Lấy dữ liêu thành công", db.GetListPlayerInRoom(ID_room).ToList(), room_.owner_id)); }
private void DoInBackground() { DatabaseGameBaiEntities db = new DatabaseGameBaiEntities(); try { while (true) { string nhan = reader.ReadLine(); if (nhan.ToLower() == "cmd_exit") { //var client = new RestClient(""); Console.WriteLine("Disconnect " + socket.RemoteEndPoint); socket.Close(); break; } PlayerModel playerModel = JsonConvert.DeserializeObject <PlayerModel>(nhan); UServer server = new UServer(); room_list room = db.room_list.Where(e => e.id == id_room).FirstOrDefault(); switch (playerModel.cmd.ToLower()) { //làm mới lại danh sách phòng chơi case "refresh_listroom": server.ID = ID; server.key = "refresh_listroom"; server.value = JsonConvert.SerializeObject(playerModel); SendAllNotInRoom(JsonConvert.SerializeObject(server)); break; case "join_room": if (Program.inRooms.ContainsKey(playerModel.ID_room)) { Program.inRooms[playerModel.ID_room].listPlayer.Add(ID); Console.WriteLine(ID + " da vào phong " + playerModel.ID_room); } else { //List<int> players = new List<int>(); Program.inRooms.Add(playerModel.ID_room, new Room(new List <int>() { ID })); Console.WriteLine(ID + " da tao phong " + playerModel.ID_room); } server.ID = ID; server.key = "join_room"; server.value = JsonConvert.SerializeObject(playerModel); id_room = playerModel.ID_room; SendAllRoom(playerModel.ID_room, JsonConvert.SerializeObject(server)); server.key = "refresh_listroom"; server.value = JsonConvert.SerializeObject(playerModel); SendAllNotInRoom(JsonConvert.SerializeObject(server)); break; //case "update": // server.ID = ID; // server.key = "update"; // server.value = JsonConvert.SerializeObject(playerModel); // SendAllRoom(id_room, JsonConvert.SerializeObject(server)); // break; case "leave_room": if (Program.inRooms.ContainsKey(playerModel.ID_room)) { Program.inRooms[playerModel.ID_room].listPlayer.Remove(playerModel.ID_player); server.ID = ID; server.value = JsonConvert.SerializeObject(playerModel); id_room = playerModel.ID_room; if (Program.inRooms[playerModel.ID_room].isPlaying) { db.truTien(room.bet_money * room.current_player, playerModel.ID_player); db.SaveChanges(); foreach (var item in Program.inRooms[id_room].listPlayer) { db.congTien(room.bet_money + (int)(room.bet_money * 10 / 100), item); db.SaveChanges(); player player = db.players.Where(e => e.id == item).FirstOrDefault(); } server.key = "end_game"; } else { server.key = "leave_room"; } SendAllRoom(playerModel.ID_room, JsonConvert.SerializeObject(server)); server.key = "refresh_listroom"; server.value = JsonConvert.SerializeObject(playerModel); SendAllNotInRoom(JsonConvert.SerializeObject(server)); } if (Program.inRooms[playerModel.ID_room].listPlayer.Count < 1) { Program.inRooms.Remove(playerModel.ID_room); } break; case "login": if (!Program.clients.ContainsKey(ID)) { Console.WriteLine("login succses!: " + socket.RemoteEndPoint); ID = playerModel.ID_player; Program.clients.Add(ID, this); Console.WriteLine(ID + ":" + nhan); //Console.WriteLine("pos:" + Program.clients[ID].ID); } server.ID = ID; server.key = "succses"; server.value = "true"; Send(JsonConvert.SerializeObject(server)); //Console.WriteLine(JsonConvert.SerializeObject(server)); //SendAll(JsonConvert.SerializeObject(server)); stream.ReadTimeout = -1; break; case "chat_all": server.ID = ID; server.key = "chat_all"; server.value = JsonConvert.SerializeObject(playerModel); Send(JsonConvert.SerializeObject(server)); SendAll(JsonConvert.SerializeObject(server)); break; case "checkroom": server.ID = ID; server.key = "checkroom"; server.value = "true"; Send(JsonConvert.SerializeObject(server)); //Console.WriteLine(JsonConvert.SerializeObject(server)); //SendAll(JsonConvert.SerializeObject(server)); break; case "win": if (Program.inRooms[id_room].isPlaying) { db.congTien(room.bet_money * room.current_player, playerModel.ID_player); db.SaveChanges(); } server.ID = ID; server.key = playerModel.cmd.ToLower(); server.value = JsonConvert.SerializeObject(playerModel); SendAllRoom(id_room, JsonConvert.SerializeObject(server)); Program.inRooms[playerModel.ID_room].isPlaying = false; //List<PlayerMoneyModel> listMoneywin = new List<PlayerMoneyModel>(); //foreach (var item in Program.inRooms[id_room].listPlayer) //{ // player player = db.players.Where(e => e.id == item).FirstOrDefault(); // listMoneywin.Add(new PlayerMoneyModel(player.id, player.money)); //} DataPackedPlayerMoney dataPackedWin = new DataPackedPlayerMoney(); //dataPackedWin.message = listMoneywin; dataPackedWin.sumMoneyWin = (double)(room.bet_money * room.current_player); server.ID = ID; server.key = "update"; server.value = JsonConvert.SerializeObject(dataPackedWin); SendAllRoom(id_room, JsonConvert.SerializeObject(server)); break; case "start_game": if (ID == room.owner_id && Program.inRooms.ContainsKey(id_room)) { List <PlayerMoneyModel> listMoney = new List <PlayerMoneyModel>(); foreach (var item in Program.inRooms[id_room].listPlayer) { db.truTien(room.bet_money, item); db.SaveChanges(); player player = db.players.Where(e => e.id == item).FirstOrDefault(); listMoney.Add(new PlayerMoneyModel(player.id, player.money)); } //playerModel.message = JsonConvert.SerializeObject(listMoney); server.ID = ID; server.key = playerModel.cmd.ToLower(); server.value = JsonConvert.SerializeObject(playerModel); SendAllRoom(id_room, JsonConvert.SerializeObject(server)); Program.inRooms[playerModel.ID_room].isPlaying = true; //cập nhập tiền của player DataPackedPlayerMoney dataPacked = new DataPackedPlayerMoney(); dataPacked.message = listMoney; server.ID = ID; server.key = "update"; server.value = JsonConvert.SerializeObject(dataPacked); SendAllRoom(id_room, JsonConvert.SerializeObject(server)); } break; default: server.ID = ID; server.key = playerModel.cmd.ToLower(); server.value = JsonConvert.SerializeObject(playerModel); if (playerModel.cmd.StartsWith("all_")) { SendAll(JsonConvert.SerializeObject(server)); } else if (playerModel.cmd.StartsWith("lby_")) { SendAllNotInRoom(JsonConvert.SerializeObject(server)); } else { SendAllRoom(id_room, JsonConvert.SerializeObject(server)); } break; } //SendAll(nhan); Program.Logs(JsonConvert.SerializeObject(Program.inRooms)); //writer.WriteLine("hello " + nhan); } } catch (Exception e) { Program.ErrorLogs(e); Program.clients.Remove(ID); Program.inRooms.Remove(id_room); Console.WriteLine("Disconnect " + socket.RemoteEndPoint); if (socket.Connected) { socket.Close(); Console.WriteLine("stop:" + ID); } Program.Logs(JsonConvert.SerializeObject(Program.inRooms)); } }