Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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);
                }
            }
        }
Exemplo n.º 3
0
        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();
            }
        }
Exemplo n.º 4
0
        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); // 데이터베이스 상에서도 지워버림
                    }
                }
            }
        }