Beispiel #1
0
        /// <summary> 删除状态信息 </summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public static bool DeleteMemberState(long number,TalkControl.EnumUserLineStatus uState)
        {
            DB_Talk.BLL.Data_MemberState memberBLL = new DB_Talk.BLL.Data_MemberState();

            List<DB_Talk.Model.Data_MemberState> lstMember = new List<DB_Talk.Model.Data_MemberState>();

            lstMember = memberBLL.GetModelList(string.Format("i_Number={0} and i_State={1}", number, uState.GetHashCode()));
            if (lstMember.Count > 0)
            {
                return memberBLL.Delete(lstMember[0].ID);
            }
            return false;
        }
Beispiel #2
0
        /// <summary> 删除状态信息 </summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public static bool DeleteMemberState(long number)
        {
            DB_Talk.BLL.Data_MemberState memberBLL = new DB_Talk.BLL.Data_MemberState();

            List<DB_Talk.Model.Data_MemberState> lstMember = new List<DB_Talk.Model.Data_MemberState>();

            try
            {
                if (Pub._isDBOnline == true)
                {
                    lstMember = memberBLL.GetModelList("i_Number=" + number);
                    if (lstMember.Count > 0)
                    {
                        return memberBLL.Delete(lstMember[0].ID);
                    }
                }
            }
            catch (Exception)
            {
                return false;
            }
            return false;
        }
Beispiel #3
0
        /// <summary>根据自已和对方号码得到号码状态</summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public static DB_Talk.Model.Data_MemberState GetMemberModelBySelf(long selfNumber, TalkControl.EnumUserLineStatus uState)
        {
            DB_Talk.BLL.Data_MemberState memberBLL = new DB_Talk.BLL.Data_MemberState();

            List<DB_Talk.Model.Data_MemberState> lstMember = new List<DB_Talk.Model.Data_MemberState>();

            lstMember = memberBLL.GetModelList(string.Format("(i_Number={0} or i_PeerNumber={0}) and i_State={1}", selfNumber, uState.GetHashCode()));
            if (lstMember.Count > 0)
            {
                return lstMember[0];
            }
            return null;
        }
Beispiel #4
0
        /// <summary>得到号码状态</summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public static DB_Talk.Model.Data_MemberState GetMemberModel(long dispatchNumber, long number, TalkControl.EnumUserLineStatus uState)
        {
            DB_Talk.BLL.Data_MemberState memberBLL = new DB_Talk.BLL.Data_MemberState();

            List<DB_Talk.Model.Data_MemberState> lstMember = new List<DB_Talk.Model.Data_MemberState>();

            lstMember = memberBLL.GetModelList(string.Format("i_Number={0} and i_State={1} and i_dispatchNumber={2}", number, uState.GetHashCode(), dispatchNumber));
            if (lstMember.Count > 0)
            {
                return lstMember[0];
            }
            return null;
        }
Beispiel #5
0
        /// <summary>
        /// 写用户状态
        /// </summary>
        /// <param name="number"></param>
        /// <param name="?"></param>
        /// <returns></returns>
        public static bool WriteMemberState(long dispatchNumber, long number, long peerNumber, TalkControl.EnumUserLineStatus uState)
        {
            DB_Talk.BLL.Data_MemberState memberBLL = new DB_Talk.BLL.Data_MemberState();

            List<DB_Talk.Model.Data_MemberState> lstMember = new List<DB_Talk.Model.Data_MemberState>();

            lstMember = memberBLL.GetModelList(string.Format("i_Number={0} and i_State={1} and i_dispatchNumber={2}", number, uState.GetHashCode(), dispatchNumber));
            if (lstMember.Count > 0)
            {
                lstMember[0].i_State = uState.GetHashCode();
                lstMember[0].i_PeerNumber = peerNumber;
                lstMember[0].i_DispatchNumber = dispatchNumber;
                return memberBLL.Update(lstMember[0]);
            }
            else
            {
                DB_Talk.Model.Data_MemberState model = new DB_Talk.Model.Data_MemberState();
                model.i_Number = number;
                model.i_State = uState.GetHashCode();
                model.i_PeerNumber = peerNumber;
                model.i_DispatchNumber = dispatchNumber;
                if ((new DB_Talk.BLL.Data_MemberState()).Add(model) > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
        /// <summary>恢复用户状态</summary>
        private void RestoreMemberState()
        {

            ///从数据库读取上次的状态信息
            List<DB_Talk.Model.Data_MemberState> lstMember = new DB_Talk.BLL.Data_MemberState().GetModelList("");
            foreach (DB_Talk.Model.Data_MemberState item in lstMember)
            {

                TalkControl.EnumUserLineStatus state = (TalkControl.EnumUserLineStatus)item.i_State;
                if (state == TalkControl.EnumUserLineStatus.Insert)
                {
                    Pub.DeleteMemberState(item.i_Number.Value, state);
                }

                if (state == TalkControl.EnumUserLineStatus.Listen)
                {
                    if (Pub._memberManage.GetMemberState(item.i_Number.Value) == TalkControl.EnumUserLineStatus.Busy &&
                        (Pub._memberManage.GetMemberState(item.i_DispatchNumber.Value) == TalkControl.EnumUserLineStatus.Busy
                        || Pub._memberManage.GetMemberState(item.i_DispatchNumber.Value) == TalkControl.EnumUserLineStatus.HookOn)
                        )
                    {
                        Pub._memberManage.UpdateMemberState(item.i_Number.Value, state);
                        Pub._meetingManage.UpdateMeetingMemberState(item.i_Number.Value, state);

                        Pub._memberManage.UpdateMemberState(item.i_PeerNumber, state);
                        Pub._meetingManage.UpdateMeetingMemberState(item.i_PeerNumber, state);
                    }
                    else
                    {
                        Pub.DeleteMemberState(item.i_Number.Value);
                    }
                }

                if (state == TalkControl.EnumUserLineStatus.Record)
                {
                    SingleUserControl sc = Pub._memberManage.GetSingleControl(item.i_Number.Value);
                    if (sc != null)
                    {
                        if (sc.UserLineStatus == TalkControl.EnumUserLineStatus.Busy && sc.UserRecordStatus == TalkControl.EnumRecordStatus.ON)
                        {
                            Pub._memberManage.UpdateMemberState(item.i_Number.Value, state);
                            Pub._meetingManage.UpdateMeetingMemberState(item.i_Number.Value, state);

                            Pub._memberManage.UpdateMemberState(item.i_PeerNumber, state);
                            Pub._meetingManage.UpdateMeetingMemberState(item.i_PeerNumber, state);
                        }
                        else
                        {
                            Pub.DeleteMemberState(item.i_Number.Value);
                        }
                    }
                }

            }
        }