// constructor public CreateRoomModel() { listRoomModel = ListRoomModel.GetInstance(); userInfo = UserInfo.GetInstance(); socket = SocketAPI.GetInstance().GetSocket(); isCreated = false; }
// constructor public ListRoomViewModel() { socket = SocketAPI.GetInstance().GetSocket(); currentRoom = new RoomModel(); listRoomModel = ListRoomModel.GetInstance(); ItemSelectedCommand = new DelegateCommand <RoomModel>(HandleSelectedItem); AddMemberCommand = new DelegateCommand(AddMember); HandleSocket(); }
// constructor public LoginModel() { isAuthenticated = false; InputEmail = ""; InputPassword = ""; listRoomModel = ListRoomModel.GetInstance(); socket = SocketAPI.GetInstance().GetSocket(); socket.On(Socket.EVENT_CONNECT, () => { Debug.Log("Client connected to server"); }) .On(Socket.EVENT_DISCONNECT, () => { Debug.Log("Client disconnected to server"); }); socket.Connect(); }
// method private void HandleSelectedItem(RoomModel obj) { currentRoom = obj; //emit to server to get message socket.Emit("room_change", obj.ID); int index = ListRoomModel.GetInstance().GetIndexByValue("ID", obj.ID); ListRoomModel.GetInstance().List[index].DisplayNewMessage = "Hidden"; ListRoomModel.GetInstance().List[index].NotifyChanged("DisplayNewMessage"); ListRoomModel.GetInstance().NotifyChanged("List"); //clear data in list message ListMessageModel.GetInstance().Clear(); // clear list task ListTaskModel.GetInstance().Clear(); }
// public void Insert(ListRoomModel model) { QuanLyPhongTroDBContext db = new QuanLyPhongTroDBContext(); Room r = new Room(); r.idRoom = GetNextID(); r.nameroom = model.tenPhong; r.price = model.gia; r.address = model.diaChi; r.location = model.viTri; if (model.hinhAnh != null) { r.image = model.hinhAnh; } r.status = "empty"; r.phone = model.soDienThoai; db.Rooms.Add(r); db.SaveChanges(); }
private void HandleSocket() { //socket.On("room_change", (roomId) => //{ // currentRoom = ListRoomModel.GetInstance().GetRoomById(roomId.ToString()); // RoomName = currentRoom.Name; // Debug.LogOutput("Selected room: " + "room id: " + currentRoom.ID + " room name: " + RoomName); //}); socket.On("init_message", (args) => { // handle data JObject content = (JObject)args; string id = content.GetValue("id").ToString(); string messageid = content.GetValue("message_id").ToString(); string sender = content.GetValue("sender").ToString(); string message = content.GetValue("message").ToString(); string imgstring = content.GetValue("imgstring").ToString(); string filename = content.GetValue("filename").ToString(); string filestring = content.GetValue("filestring").ToString(); long timestamp = Convert.ToInt64(content.GetValue("timestamp")); Application.Current.Dispatcher.Invoke((Action) delegate { //if user is in the room that occur event, display message if (currentRoom.ID.Equals(id)) { MessageModel msg = new MessageModel(id, messageid, message, sender, imgstring, filestring, filename, timestamp); listMessageModel.AddWithCheck(msg, "MessageID"); Debug.LogOutput("Room: " + currentRoom.Name + " Message >> " + msg.Message); } }); }); socket.On("new_message", (arg) => { Application.Current.Dispatcher.Invoke((Action) delegate { // handle data JObject content = (JObject)arg; string id = content.GetValue("id").ToString(); if (currentRoom.ID.Equals(id)) { return; } // find room has the id int index = ListRoomModel.GetInstance().GetIndexByValue("ID", id); ListRoomModel.GetInstance().List[index].DisplayNewMessage = "Visible"; ListRoomModel.GetInstance().List[index].NotifyChanged("DisplayNewMessage"); ListRoomModel.GetInstance().NotifyChanged("List"); SystemSounds.Beep.Play(); }); }); socket.On("is_typing", (arg) => { JObject data = (JObject)arg; string sender = data.GetValue("sender").ToString(); string roomId = data.GetValue("room_id").ToString(); //if user is not in the room that occur event, then return if (!currentRoom.ID.Equals(roomId)) { return; } //check and add to senderstyping foreach (string sd in sendersTyping) { if (sd.Equals(sender)) { return; } } sendersTyping.Add(sender); NotifyChanged("TypingMessage"); }); socket.On("done_typing", (arg) => { JObject data = (JObject)arg; string sender = data.GetValue("sender").ToString(); string roomId = data.GetValue("room_id").ToString(); //if user is not in the room that occur event, then return if (!currentRoom.ID.Equals(roomId)) { return; } sendersTyping.Remove(sender); NotifyChanged("TypingMessage"); }); }