コード例 #1
0
        public void pgHome_VMuktiEvent_Conference(object sender, VMuktiAPI.VMuktiEventArgs e)
        {
            try
            {
                VMukti.App.blnIsTwoPanel = true;
                if (!VMuktiAPI.VMuktiInfo.CurrentPeer.ConferenceUser.ContainsKey(int.Parse(e._args[0].ToString())))
                {

                    bool started = false;

                    List<string> lstParticipantUsers = new List<string>();

                    ClsConferenceUsersCollection objConfInfo = ClsConferenceUsersCollection.GetConfInfo(int.Parse(e._args[0].ToString()));


                    ClsConferenceUsers objConfStartedUser = new ClsConferenceUsers();


                    for (int CntConfUser = 0; CntConfUser < objConfInfo.Count; CntConfUser++)
                    {
                        if (objConfInfo[CntConfUser].Started)
                        {
                            objConfStartedUser = objConfInfo[CntConfUser];
                            started = true;
                            break;
                        }
                    }
                    if (!started)
                    {
                        objAmit.Visibility = Visibility.Collapsed;
                        objBuddies.btnClose_Click(null,null);
                        
                        System.Threading.Thread.Sleep(1000);
                       // ObjBuddy_CloseBuddy();
                        blOpenMExp = false;
                        btnMExp_Click(null, null);

                        ClsConferenceCollection objGetConfInfo = ClsConferenceCollection.GetUserConferences(int.Parse(e._args[0].ToString()));

                        objVMuktiGrid.LoadPage(objGetConfInfo[0].PageID, int.Parse(e._args[0].ToString()));
                        ClsConferenceUsers objUpdateStarted = new ClsConferenceUsers();
                        objUpdateStarted.UpdateStarted(int.Parse(e._args[0].ToString()), VMuktiAPI.VMuktiInfo.CurrentPeer.ID, true);
                        VMuktiAPI.VMuktiInfo.CurrentPeer.ConferenceUser.Add(int.Parse(e._args[0].ToString()), VMuktiAPI.VMuktiInfo.CurrentPeer.ID);

                        ClsConferenceUsersCollection objGetConParticipants = ClsConferenceUsersCollection.GetConfParticipants(int.Parse(e._args[0].ToString()));
                        for (int PartCnt = 0; PartCnt < objGetConParticipants.Count; PartCnt++)
                        {
                            ClsUserInfo objGetUserInfo = new ClsUserInfo().User_GetByID(objGetConParticipants[PartCnt].UserID);
                            lstParticipantUsers.Add(objGetUserInfo.DisplayName);
                        }
                        //ClsException.WriteToLogFile("lstParticipantUsers.Count " + lstParticipantUsers.Count.ToString());

                        if (lstParticipantUsers.Count > 0)
                        {
                            if (VMuktiAPI.VMuktiInfo.CurrentPeer.CurrPeerType == PeerType.NodeWithHttp)
                            {

                                App.chHttpSuperNodeService.svcEnterConf(VMuktiAPI.VMuktiInfo.CurrentPeer.DisplayName, lstParticipantUsers, int.Parse(e._args[0].ToString()), VMuktiAPI.VMuktiInfo.CurrentPeer.SuperNodeIP);
                            }
                            else
                            {
                                App.chNetP2PSuperNodeChannel.svcEnterConf(VMuktiAPI.VMuktiInfo.CurrentPeer.DisplayName, lstParticipantUsers, int.Parse(e._args[0].ToString()), VMuktiAPI.VMuktiInfo.CurrentPeer.SuperNodeIP);
                            }
                        }

                    }
                    else
                    {

                        if (objConfStartedUser != null)
                        {
                            ClsUserInfo objGetByID = new ClsUserInfo().User_GetByID(objConfStartedUser.UserID);
                            if (VMuktiAPI.VMuktiInfo.CurrentPeer.CurrPeerType == PeerType.NodeWithHttp)
                            {
                                App.chHttpSuperNodeService.svcJoinConf(VMuktiAPI.VMuktiInfo.CurrentPeer.DisplayName, objGetByID.DisplayName, int.Parse(e._args[0].ToString()), VMuktiAPI.VMuktiInfo.CurrentPeer.SuperNodeIP);
                            }
                            else
                            {
                                App.chNetP2PSuperNodeChannel.svcJoinConf(VMuktiAPI.VMuktiInfo.CurrentPeer.DisplayName, objGetByID.DisplayName, int.Parse(e._args[0].ToString()), VMuktiAPI.VMuktiInfo.CurrentPeer.SuperNodeIP);
                            }
                        }
                        VMuktiAPI.VMuktiInfo.CurrentPeer.ConferenceUser.Add(int.Parse(e._args[0].ToString()), objConfStartedUser.UserID);
                    }
                }
                else
                {
                    MessageBox.Show("Conference Already Started", "Conference", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK);
                }
            }
            catch (Exception ex)
            {
                VMuktiAPI.VMuktiHelper.ExceptionHandler(ex, "pgHome_VMuktiEvent_Conference()", "pgHome.xaml.cs");

            }
        }
コード例 #2
0
ファイル: TabItem.cs プロジェクト: jiangguang5201314/VMukti
        public void ClosePage()
        {
            try
            {
                int j = 0;
                int i = 0;

                

                for (i = 0; i < ((VMuktiGrid.ctlTab.TabControl)this.Content).Items.Count; i++)
                {
                    for (j = 0; j < ((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).CentralPanelContainer.Items.Count; j++)
                    {
                        if (((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).CentralPanelContainer.Items[j].GetType() == typeof(VMuktiGrid.CustomGrid.ctlPOD))
                        {
                            ((VMuktiGrid.CustomGrid.ctlPOD)((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).CentralPanelContainer.Items[j]).btnCloseFromPage_Click(null, null);
                        }
                    }
                    ((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).CentralPanelContainer.Items.Clear();

                    


                    

                    for (j = 0; j < ((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).LeftPanelContainer.Items.Count; j++)
                    {
                        if (((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).LeftPanelContainer.Items[j].GetType() == typeof(VMuktiGrid.CustomGrid.ctlPOD))
                        {
                            ((VMuktiGrid.CustomGrid.ctlPOD)((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).LeftPanelContainer.Items[j]).btnCloseFromPage_Click(null, null);
                        }
                    }
                    ((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).LeftPanelContainer.Items.Clear();



                    

                    for (j = 0; j < ((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).RightPanelContainer.Items.Count; j++)
                    {
                        if (((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).RightPanelContainer.Items[j].GetType() == typeof(VMuktiGrid.CustomGrid.ctlPOD))
                        {
                            ((VMuktiGrid.CustomGrid.ctlPOD)((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).RightPanelContainer.Items[j]).btnCloseFromPage_Click(null, null);
                        }
                    }
                    ((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).RightPanelContainer.Items.Clear();



                    for (j = 0; j < ((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).TopPanelContainer.Items.Count; j++)
                    {
                        if (((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).TopPanelContainer.Items[j].GetType() == typeof(VMuktiGrid.CustomGrid.ctlPOD))
                        {
                            ((VMuktiGrid.CustomGrid.ctlPOD)((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).TopPanelContainer.Items[j]).btnCloseFromPage_Click(null, null);
                        }
                    }
                    ((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).TopPanelContainer.Items.Clear();



                    for (j = 0; j < ((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).BottomPanelContainer.Items.Count; j++)
                    {
                        if (((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).BottomPanelContainer.Items[j].GetType() == typeof(VMuktiGrid.CustomGrid.ctlPOD))
                        {
                            ((VMuktiGrid.CustomGrid.ctlPOD)((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).BottomPanelContainer.Items[j]).btnCloseFromPage_Click(null, null);
                        }
                    }
                    ((VMuktiGrid.CustomGrid.ctlGrid)((VMuktiGrid.ctlTab.TabItem)((VMuktiGrid.ctlTab.TabControl)this.Content).Items[i]).Content).BottomPanelContainer.Items.Clear();

                }


                try
                {

                    List<int> lstKeyRemove = new List<int>();
                    int myKey;

                    foreach (KeyValuePair<int, int> kvp in VMuktiAPI.VMuktiInfo.CurrentPeer.ConferenceUser)
                    {
                        if (kvp.Key == this.ConfID)
                        {
                            if (kvp.Value == VMuktiAPI.VMuktiInfo.CurrentPeer.ID)
                            {

                                myKey = kvp.Key;
                                //update this entry from database UPDATE ConferenceUsers set Started='true' where ConfID='3' and UserID='3'
                                ClsConferenceUsers objUpdateStarted = new ClsConferenceUsers();
                                objUpdateStarted.UpdateStarted(kvp.Key, kvp.Value, false);

                                List<string> lstBuddyName = new List<string>();

                                if (((ctlMenu)this.Template.FindName("objMenu", this)) != null)
                                {
                                    lstBuddyName = ((ctlMenu)this.Template.FindName("objMenu", this)).GetBuddies();
                                }
                                if (lstBuddyName.Count > 0)
                                {
                                    if (VMuktiAPI.VMuktiInfo.CurrentPeer.CurrPeerType == PeerType.NodeWithHttp)
                                    {
                                        App.chHttpSuperNodeService.svcUnJoinConf(VMuktiAPI.VMuktiInfo.CurrentPeer.DisplayName, lstBuddyName, kvp.Key, VMuktiAPI.VMuktiInfo.CurrentPeer.SuperNodeIP);
                                    }
                                    else
                                    {
                                        App.chNetP2PSuperNodeChannel.svcUnJoinConf(VMuktiAPI.VMuktiInfo.CurrentPeer.DisplayName, lstBuddyName, kvp.Key, VMuktiAPI.VMuktiInfo.CurrentPeer.SuperNodeIP);
                                    }
                                }

                                //if possible tell other buddies to close this page of conference
                                //on buddy side open the window displaying "Thank You for attending Meeting"

                            }
                            else
                            {
                                //CALL WCF FUNCTION TO TELL HOST AND OTHER PARTICIPANT THAT U R LEAVING THE CONF

                                List<string> lstBuddyName = new List<string>();

                                if (((ctlMenu)this.Template.FindName("objMenu", this)) != null)
                                {
                                    lstBuddyName = ((ctlMenu)this.Template.FindName("objMenu", this)).GetBuddies();
                                }
                                if (lstBuddyName.Count > 0)
                                {
                                    if (VMuktiAPI.VMuktiInfo.CurrentPeer.CurrPeerType == PeerType.NodeWithHttp)
                                    {
                                        App.chHttpSuperNodeService.svcRemoveConf(VMuktiAPI.VMuktiInfo.CurrentPeer.DisplayName, lstBuddyName, kvp.Key, VMuktiAPI.VMuktiInfo.CurrentPeer.SuperNodeIP);                                        
                                    }
                                    else
                                    {
                                        App.chNetP2PSuperNodeChannel.svcRemoveConf(VMuktiAPI.VMuktiInfo.CurrentPeer.DisplayName, lstBuddyName, kvp.Key, VMuktiAPI.VMuktiInfo.CurrentPeer.SuperNodeIP);
                                    }
                                }
                            }

                            //remove this entry
                            //VMuktiAPI.VMuktiInfo.CurrentPeer.ConferenceUser.Remove(kvp.Key);
                            lstKeyRemove.Add(kvp.Key);
                        }
                    }

                    

                    for (int KCnt = 0; KCnt < lstKeyRemove.Count; KCnt++)
                    {
                        VMuktiAPI.VMuktiInfo.CurrentPeer.ConferenceUser.Remove(lstKeyRemove[KCnt]);
                    }


                }
                catch (Exception ex)
                {
                    VMuktiAPI.VMuktiHelper.ExceptionHandler(ex, "ClosePage()", "Controls\\VMuktiGrid\\Page\\TabItem.cs");
                }

                ((VMuktiGrid.ctlPage.TabControl)this.Parent).Items.Remove(this);
            }
            catch (Exception ex)
            {
                VMuktiAPI.VMuktiHelper.ExceptionHandler(ex, "ClosePage()--2", "Controls\\VMuktiGrid\\Page\\TabItem.cs");
            }
        }