예제 #1
0
        private void btn_rtn_message_Click(object sender, EventArgs e)
        {
            String rtnName = lb_userNm.Text.IndexOf(";") > -1 ? lb_userNm.Text.Split(';')[0] : lb_userNm.Text;

            String         _memberid = "F" + MainProg.getUserInfoByKey("MEMBERNAME", rtnName).MEMBERID;
            MessageFormBox mfb       = new MessageFormBox(_memberid, null, lb_cindex.Text);

            mfb.Show();
        }
예제 #2
0
        //로그인 memberid, 선택된 유저, 처리구분 kb
        public void RunApp(String userId, String selectUserList, String kb)
        {
            Hashtable      _param = new Hashtable();
            UserDetailInfo udll   = new UserDetailInfo();

            udll = MainProg.getUserInfoByKey("MEMBERID", userId.Substring(1));

            //메세지보내기
            if (kb.Equals("sendMessage"))
            {
                //MessageFormBox mfb = new MessageFormBox(userId, selectUserList, client, null);
                MessageFormBox mfb = new MessageFormBox(userId, selectUserList, null);
                mfb.Show();
            }
            //유저정보보기
            else if (kb.Equals("viewUserInfo"))
            {
                //선택한 유저 정보 가져오기
                UserInfo uif = new UserInfo(udll);
                uif.Show();
            }
            //채팅하기
            else if (kb.Equals("sendChat"))
            {
                List <String> _ru = new List <string>();

                int _personCnt = 0;

                if (selectUserList != null && selectUserList.Length > 0)
                {
                    String[] rcvUsrId = selectUserList.Split('^');

                    //체크박스로 선택한 사람들
                    foreach (String item in rcvUsrId)
                    {
                        //체크안되고 선택되어진 인원 중복 제외
                        if (!item.Equals(userId) && item.Length > 0)
                        {
                            String memberId = MainProg.getUserInfoByKey("MEMBERID", item.Substring(1)).MEMBERID;
                            if (presentSessionList.Contains(memberId))
                            {
                                ++_personCnt;
                                //유저실제아이디로 치환(SESSION_KEY값)
                                _ru.Add(memberId);
                            }
                        }
                    }
                    //채팅 선택되어진 사람(체크박스없이)
                    if (presentSessionList.Contains(udll.MEMBERID))
                    {
                        ++_personCnt;
                        //유저실제아이디로 치환(SESSION_KEY값)
                        _ru.Add(udll.MEMBERID);
                    }
                }
                else
                {
                    if (presentSessionList.Contains(udll.MEMBERID))
                    {
                        ++_personCnt;
                        //유저실제아이디로 치환(SESSION_KEY값)
                        _ru.Add(udll.MEMBERID);
                    }
                }

                //로그인된사람이 하나도 없으면 채팅불가
                if (_personCnt < 1)
                {
                    MessageBox.Show("로그인 된 참여자가 존재하지 않습니다.");
                    return;
                }

                //채팅창 만든사람
                _ru.Add(_userId);

                //채팅창을 오픈
                ChatForm cf = new ChatForm(true, null, _userId, _ru);

                //채팅창에 받은 메세지를 넘겨줄 수 있도록 처리(MAINFORM => CHATFORM)
                this.DataSendEvent += new DataPushEventHandler(cf.SetActiveValue);
                cf.DataSendEvent   += new DataGetEventHandlder(this.DataAction);

                cf.Show();
            }
        }
예제 #3
0
        //데이터 받았을 때 발생하는 이벤트
        void OnReceive(Client sender, int msgType, byte[] buff)
        {
            string  s        = System.Text.Encoding.UTF8.GetString(buff);
            JObject jObject  = JObject.Parse(s);
            int     packetID = (int)jObject["PacketID"];

            PacketResponse response = new PacketResponse((PacketID)packetID, s);

            if (packetID == (int)PacketID.PacketID_Connect_Req)
            {
                PacketData_ConnectReq req = response.Parsing <PacketData_ConnectReq>();
                String _connetedUsers     = String.Empty;
                Invoke((MethodInvoker) delegate
                {
                    //처음 실행시 가져오는 전체유저정보취득
                    MainProg.Instance.getUserLIst(req.userList);

                    //처음 실행시 가져오는 공지사항
                    if (req.noticeList != null)
                    {
                        ShowBoard(true, req.noticeList);
                    }

                    //처음 실행시 가져오는 읽지 않은 메세지
                    if (req.messageList != null)
                    {
                        getReadMessage(req.messageList);
                    }

                    //로그인한 사람 저장
                    presentSessionList = req.presentSessionList;
                });
                foreach (String users in presentSessionList)
                {
                    _connetedUsers += "F" + users + "^";
                }

                //로그인하면 화면 처리(로그인한사람)
                this.Invoke(new Action(() => { webBrowser1.Document.InvokeScript("onLineMark", new object[] { _connetedUsers }); }));
            }
            else if (packetID == (int)PacketID.PacketID_DisConnect_Req)
            {
                PacketData_DisConnectReq req = response.Parsing <PacketData_DisConnectReq>();
                String _connetedUsers        = String.Empty;

                _connetedUsers += "F" + req.userId + "^";

                //로그아웃이나 종료하면 화면 처리(로그인한사람)
                this.Invoke(new Action(() => { webBrowser1.Document.InvokeScript("offLineMark", new object[] { _connetedUsers }); }));
            }
            //공지사항 보기
            else if (packetID == (int)PacketID.PacketID_Notice_Detail)
            {
                PacketData_NoticeDetail req = response.Parsing <PacketData_NoticeDetail>();
                Invoke((MethodInvoker) delegate
                {
                    //ShowBoard(false);
                    //수정을 눌렀을 때
                    if (req.noticeProcess.Equals("U"))
                    {
                        NoticeWrite ni = new NoticeWrite(req.noticeDetail, req.noticeNum);
                        //    ni.DataPushEvent_Sub += new NoticeWrite.Sub_DataPushEventHandler(ShowBoard);
                        ni.Show();
                    }
                    else
                    {
                        NoticeView nv = new NoticeView(req.noticeDetail);
                        nv.Show();
                    }
                });
            }
            //공지사항 등록 및 수정시
            else if (packetID == (int)PacketID.PacketID_Send_Notice)
            {
                PacketData_SendNotice req = response.Parsing <PacketData_SendNotice>();
                Invoke((MethodInvoker) delegate
                {
                    if (req.noticeProcess.Equals("D"))
                    {
                        ShowBoard(false, req.noticeList);
                    }
                    else
                    {
                        ShowBoard(true, req.noticeList);
                    }

                    //NoticeView nv = new NoticeView(req.boardNo.ToString());
                    //nv.Show();
                });
            }
            //공지사항 찾기
            else if (packetID == (int)PacketID.PacketID_Notice_Find)
            {
                PacketData_NoticeFind req = response.Parsing <PacketData_NoticeFind>();
                Invoke((MethodInvoker) delegate
                {
                    ShowBoard(false, req.noticeList);
                });
            }
            //메세지 관리함 보기
            else if (packetID == (int)PacketID.PacketID_Message_Mng)
            {
                PacketData_MessageMng req = response.Parsing <PacketData_MessageMng>();
                Invoke((MethodInvoker) delegate
                {
                    Form fc = Application.OpenForms["MessageMng"];

                    if (fc != null)
                    {
                        DataSendMessageEvent(req.messageList, null, "1");
                    }
                    else
                    {
                        MessageMng mv = new MessageMng(req.messageList);

                        this.DataSendMessageEvent += new DataPushMessageEventHandler(mv.SetActiveValue);
                        mv.DataSendMessageEvent   += new DataGetMessageEventHandlder(this.DataMessageAction);
                        mv.ShowDialog();
                    }
                });
            }
            //메세지 상세보기
            else if (packetID == (int)PacketID.PacketID_Message_Detail)
            {
                PacketData_MessageDetail req = response.Parsing <PacketData_MessageDetail>();
                Invoke((MethodInvoker) delegate
                {
                    DataSendMessageEvent(req.messageDetail, req.messageReaderDetail, null);
                });
            }
            //메세지 찾기
            else if (packetID == (int)PacketID.PacketID_Message_Search)
            {
                PacketData_MessageSearch req = response.Parsing <PacketData_MessageSearch>();
                Invoke((MethodInvoker) delegate
                {
                    DataSendMessageEvent(req.messageList, null, "1");
                });
            }
            //메세지 회신쓰기
            else if (packetID == (int)PacketID.PacketID_Message_ReWrite)
            {
                PacketData_MessageReWrite req = response.Parsing <PacketData_MessageReWrite>();
                Invoke((MethodInvoker) delegate
                {
                    //DataSendMessageEvent(req.messageDetail, null, "1");
                    MessageFormBox mfb = new MessageFormBox(req.rcvUser, null, req.messageDetail);
                    mfb.Show();
                });
            }

            //메세지 받기
            else if (packetID == (int)PacketID.PacketID_Send_Msg)
            {
                PacketData_SendMessage req = response.Parsing <PacketData_SendMessage>();
                Invoke((MethodInvoker) delegate
                {
                    //MessageView mv = new MessageView(req.boardNo.ToString());
                    Form fc = Application.OpenForms["MessageMng"];

                    if (fc != null)
                    {
                        PacketData_MessageMng req_2 = new PacketData_MessageMng();
                        Hashtable _param            = new Hashtable();
                        _param.Add("MESSAGE_KB", "1");
                        _param.Add("REGI_ID", MainProg.GetUserId());
                        req_2.criInfo = _param;
                        req_2.process = "1";
                        MainProg.client.Send(req_2);
                    }

                    MessageView mv = new MessageView(req.messageDetail, req.userId, req.boardNo);
                    mv.Show();
                });
            }
            //채팅방 만들기
            else if (packetID == (int)PacketID.PacketID_Make_Room)
            {
                PacketData_MakeRoom req = response.Parsing <PacketData_MakeRoom>();
                Invoke((MethodInvoker) delegate
                {
                    if (!_userId.Equals(req.makeUserId))
                    {
                        ChatForm cf = new ChatForm(false, req, _userId, null);

                        this.DataSendEvent += new DataPushEventHandler(cf.SetActiveValue);
                        cf.DataSendEvent   += new DataGetEventHandlder(this.DataAction);

                        cf.Show();
                    }
                });
            }
            //방없애기
            else if (packetID == (int)PacketID.PacketID_Close_Room)
            {
                PacketData_CloseRoom req = response.Parsing <PacketData_CloseRoom>();
                Invoke((MethodInvoker) delegate
                {
                    DataSendEvent("close_theRoom", req.roomNo, req.userId);
                });
            }
            //방채팅
            else if (packetID == (int)PacketID.PacketID_Room_Msg)
            {
                PacketData_SendRoomMessage req = response.Parsing <PacketData_SendRoomMessage>();
                Invoke((MethodInvoker) delegate
                {
                    rb2.Text += req.message;
                    DataSendEvent(req.message, req.roomNo, req.sendUserId);
                });
            }
            //조직도 Reload
            else if (packetID == (int)PacketID.PacketID_ReloadGroup)
            {
                //화면 리로드 처리
                webBrowser1.Refresh();
            }
            //else
            //{
            //    RecvConnectAck(sender, response);
            //}
        }