private void btn_createRoom_Click(object sender, EventArgs e) { // MessageBox.Show(this.GetRealIpAddress().ToString()); RoomDAO roomDAO = new RoomDAO(); this.roomDTO = new RoomDTO(); if (txtbox_roomName.Text == "") { MessageBox.Show("방 이름을 입력하셔야 합니다.", "방 이름 입력", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // 폴더 생성하는 로직 추가 roomDTO.IpAddress = this.GetRealIpAddress().ToString(); // 현재 컴퓨터의 IP 주소를 구함 roomDTO.Name = this.txtbox_roomName.Text; roomDTO.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss"); roomDTO.Id = this.userDTO.Id; roomDAO.CreateRoom(roomDTO); // 방을 생성하는데 필요한 roomDTO를 보냄 this.DialogResult = DialogResult.OK; this.Close(); }
private void ShowAllRoomList() { // 처음 학생이든 교수자든 접속시 모든 방의 목록을 가져오는 함수 RoomDAO roomDAO = new RoomDAO(); ArrayList roomList = roomDAO.GetAllRoomList(); int nowRoomCnt = this.roomListPanel.Controls.Count; if (nowRoomCnt != roomList.Count) { this.roomListPanel.Controls.Clear(); foreach (RoomDTO roomDTO in roomList) { MetroTile tile = new MetroTile(); tile.Width = 141; tile.Height = 86; tile.Name = $"roomTile_{roomDTO.No}_{roomDTO.Name}"; tile.Text = roomDTO.Name; tile.Click += new EventHandler(this.roomTile_Click); // 방 생성시 학생이 입장이 가능하도록 이벤트 핸들러 설정 this.roomListPanel.Controls.Add(tile); } } }
private void roomTile_Click(object sender, EventArgs e) { // 해당 타일을 클릭하는 경우, 즉 학생이 접속하는 경우에 해당 Button joinRoom_tile = (MetroTile)sender; int joinRoomNo = Int32.Parse(joinRoom_tile.Name.Split('_')[1]); // 클릭한 타일의 Name 값에 방 번호가 저장되어 있음 if (this.userDTO.Accessno == 1) // 교수는 다른 방에 들어가지 못하도록 우선적으로 막음. { MessageBox.Show("학생만 다른 방에 들어갈 수 있습니다.", "방 들어가기", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } DialogResult stuFormResult; RoomDAO roomDAO = new RoomDAO(); RoomDTO joinRoomDTO = new RoomDTO(); joinRoomDTO = roomDAO.GetJoinRoomDTO(joinRoomNo); if (!joinRoomDTO.Name.Equals("")) { using (StudentDownloadForm studentDownloadForm = new StudentDownloadForm(userDTO, joinRoomDTO)) { stuFormResult = studentDownloadForm.ShowDialog(); } // 학생이 방에 들어가는 로직을 만들어야 함. // 여기는 학생이 로그인 시 userDTO를 같이 넘겨줘야함 } else { MessageBox.Show("해당 방은 없는 방입니다. 방 목록을 새로고침 합니다.", "알림", MessageBoxButtons.OK, MessageBoxIcon.Warning); ShowAllRoomList(); } }
private void btn_createRoom_Click(object sender, EventArgs e) { // 방을 생성하는 경우는 교수자만 생성이 가능하므로 해당 로직은 교수자 방 생성 로직 CreateRoom createRoomForm = new CreateRoom(this.userDTO); var result = createRoomForm.ShowDialog(); if (result == DialogResult.OK) { MetroTile tile = new MetroTile(); RoomDTO roomDTO = createRoomForm.GetRoomDTO(); tile.Width = 141; tile.Height = 86; tile.Name = $"roomTile_{roomDTO.No}_{roomDTO.Name}"; tile.Text = roomDTO.Name; tile.TextAlign = ContentAlignment.TopLeft; tile.Click += new EventHandler(this.roomTile_Click); // 방 생성시 학생이 입장이 가능하도록 이벤트 핸들러 설정 this.roomListPanel.Controls.Add(tile); // MessageBox.Show("방이 생성되었습니다.", "방 생성 완료", MessageBoxButtons.OK, MessageBoxIcon.Information); using (ProfessorUploadForm professorUploadForm = new ProfessorUploadForm()) { var professorFormResult = professorUploadForm.ShowDialog(); // 사용이 끝나고 나면 해당 방이 없어지는 구조 if (professorFormResult == DialogResult.OK) { this.roomListPanel.Controls.Remove(tile); // 내가 만든 것만 컨트롤을 지워버림 RoomDAO roomDAO = new RoomDAO(); roomDAO.RemoveRoom(roomDTO); // 데이터베이스 상에서도 지워버림 } } } }