public ArrayList GetAllRoomList() { ArrayList roomList = new ArrayList(); createConnection(); comm.CommandText = "SELECT * FROM room"; //모든 현재 생성된 방의 목록을 가져옴 using (myReader = comm.ExecuteReader()) { while (myReader.Read()) { RoomDTO roomDTO = new RoomDTO(); roomDTO.No = Int32.Parse(myReader["no"].ToString()); roomDTO.Name = myReader["name"].ToString(); roomDTO.Id = myReader["id"].ToString(); roomDTO.CreateTime = myReader["createtime"].ToString(); roomDTO.IpAddress = myReader["ipaddress"].ToString(); roomList.Add(roomDTO); } } comm.Dispose(); conn.Close(); return(roomList); }
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 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(); } }
public void RemoveRoom(RoomDTO roomDTO) { createConnection(); comm.CommandText = "DELETE FROM room WHERE id=@id"; comm.Parameters.AddWithValue("@id", roomDTO.Id); comm.ExecuteNonQuery(); comm.Dispose(); conn.Close(); }
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); // 데이터베이스 상에서도 지워버림 } } } }
public void CreateRoom(RoomDTO roomDTO) { createConnection(); comm.CommandText = "SELECT MAX(no) FROM room"; int maxRoomno = 0; using (myReader = comm.ExecuteReader()) { while (myReader.Read()) { maxRoomno = (myReader.IsDBNull(0)) ? 1 : Int32.Parse(myReader["MAX(no)"].ToString()); } } // 방 번호 할당 roomDTO.No = maxRoomno + 1; comm.CommandText = "INSERT INTO room VALUES(@no, @name, @id, @createtime, @ipaddress)"; comm.Parameters.AddWithValue("@no", roomDTO.No); comm.Parameters.AddWithValue("@name", roomDTO.Name); comm.Parameters.AddWithValue("@id", roomDTO.Id); comm.Parameters.AddWithValue("@createtime", roomDTO.CreateTime); comm.Parameters.AddWithValue("@ipaddress", roomDTO.IpAddress); int result = this.comm.ExecuteNonQuery(); if (result > -1) { MessageBox.Show("방이 정상적으로 생성이 되었습니다.", "방 생성 완료", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("error : 방이 생성되지 않았습니다.", "방 생성 실패", MessageBoxButtons.OK, MessageBoxIcon.Error); } comm.Dispose(); conn.Close(); }
public RoomDTO GetJoinRoomDTO(int roomNo) { createConnection(); comm.CommandText = "SELECT * FROM room WHERE no = @no"; comm.Parameters.AddWithValue("@no", roomNo); using (myReader = comm.ExecuteReader()) { RoomDTO roomDTO = new RoomDTO(); if (myReader.Read()) { roomDTO.No = Int32.Parse(myReader["no"].ToString()); roomDTO.Id = myReader["id"].ToString(); roomDTO.Name = myReader["name"].ToString(); roomDTO.CreateTime = myReader["createtime"].ToString(); roomDTO.IpAddress = myReader["ipaddress"].ToString(); } return(roomDTO); } }
public StudentDownloadForm(UserDTO userDTO, RoomDTO joinRoomDTO) { InitializeComponent(); this.userDTO = userDTO; // 학생 정보를 가지고 옴 this.joinRoomDTO = joinRoomDTO; }