Ejemplo n.º 1
0
        private void InitChannelItems()
        {
            try
            {
                mListChannelItems.Clear();
                var voiceItem = ListBoxVoiceServers.SelectedItem as ResourceObjectItem;
                if (voiceItem == null)
                {
                    return;
                }
                var voice = voiceItem.Info;
                if (voice == null)
                {
                    return;
                }
                long voiceObjID = voice.ObjID;
                var  channels   = mListChannelObjects.Where(c => c.ParentObjID == voiceObjID).ToList();
                for (int i = 0; i < channels.Count; i++)
                {
                    var channel = channels[i];

                    ResourceObjectItem channelItem = new ResourceObjectItem();
                    channelItem.Info      = channel;
                    channelItem.ObjID     = channel.ObjID;
                    channelItem.ObjType   = channel.ObjType;
                    channelItem.Display   = string.Format("[{0}]{1}", channel.Name, channel.FullName);
                    channelItem.IsChecked = false;
                    mListChannelItems.Add(channelItem);
                }
            }
            catch (Exception ex)
            {
                ShowException(ex.Message);
            }
        }
Ejemplo n.º 2
0
        private void InitVoiceItems()
        {
            try
            {
                mListVoiceItems.Clear();
                for (int i = 0; i < mListVoiceObjects.Count; i++)
                {
                    var voice = mListVoiceObjects[i];

                    ResourceObjectItem item = new ResourceObjectItem();
                    item.Info      = voice;
                    item.ObjID     = voice.ObjID;
                    item.ObjType   = voice.ObjType;
                    item.Display   = string.Format("[{0}]{1}", voice.Name, voice.FullName);
                    item.IsChecked = false;
                    mListVoiceItems.Add(item);
                }
            }
            catch (Exception ex)
            {
                ShowException(ex.Message);
            }
        }
Ejemplo n.º 3
0
        private void SetResourceItemState(ResourceObjectItem item)
        {
            try
            {
                if (StrategyItem == null)
                {
                    return;
                }
                if (item == null)
                {
                    return;
                }
                int objType = item.ObjType;
                if (objType == S2106Consts.RESOURCE_VOICESERVER)
                {
                    #region 录音服务器

                    ListBoxVoiceServers.SelectedItem = item;
                    var voice = item.Info;
                    if (voice == null)
                    {
                        return;
                    }
                    int voiceID;
                    if (!int.TryParse(voice.Name, out voiceID))
                    {
                        return;
                    }
                    if (item.IsChecked == true)
                    {
                        //如果录音服务器勾上,则勾选所有该服务器下的通道
                        for (int i = 0; i < mListChannelItems.Count; i++)
                        {
                            var channelItem = mListChannelItems[i];
                            channelItem.IsChecked = true;
                            var channel = channelItem.Info;
                            if (channel == null)
                            {
                                continue;
                            }
                            int channelID;
                            if (!int.TryParse(channel.Name, out channelID))
                            {
                                continue;
                            }
                            var temp =
                                StrategyItem.ListChannels.FirstOrDefault(
                                    c => c.VoiceID == voiceID && c.ChannelID == channelID);
                            if (temp == null)
                            {
                                //添加
                                temp           = new RecoverChannelInfo();
                                temp.VoiceID   = voiceID;
                                temp.ChannelID = channelID;
                                temp.Extension = channel.FullName;
                                temp.VoiceIP   = voice.FullName;
                                StrategyItem.ListChannels.Add(temp);
                            }
                        }
                    }
                    if (item.IsChecked == false)
                    {
                        //如果取消勾选录音服务器,则取消勾选该服务器下的所有通道
                        for (int i = 0; i < mListChannelItems.Count; i++)
                        {
                            var channelItem = mListChannelItems[i];
                            channelItem.IsChecked = false;
                            var channel = channelItem.Info;
                            if (channel == null)
                            {
                                continue;
                            }
                            int channelID;
                            if (!int.TryParse(channel.Name, out channelID))
                            {
                                continue;
                            }
                            var temp =
                                StrategyItem.ListChannels.FirstOrDefault(
                                    c => c.VoiceID == voiceID && c.ChannelID == channelID);
                            if (temp != null)
                            {
                                //移除
                                StrategyItem.ListChannels.Remove(temp);
                            }
                        }
                    }

                    #endregion
                }
                if (objType == S2106Consts.RESOURCE_VOICECHANNEL)
                {
                    #region 通道

                    ListBoxChannels.SelectedItem = item;
                    var channel = item.Info;
                    if (channel == null)
                    {
                        return;
                    }
                    int channelID;
                    if (!int.TryParse(channel.Name, out channelID))
                    {
                        return;
                    }
                    long voiceObjID = channel.ParentObjID;
                    var  voiceItem  = mListVoiceItems.FirstOrDefault(v => v.ObjID == voiceObjID);
                    if (voiceItem == null)
                    {
                        return;
                    }
                    var voice = voiceItem.Info;
                    if (voice == null)
                    {
                        return;
                    }
                    int voiceID;
                    if (!int.TryParse(voice.Name, out voiceID))
                    {
                        return;
                    }
                    var temp =
                        StrategyItem.ListChannels.FirstOrDefault(c => c.ChannelID == channelID && c.VoiceID == voiceID);
                    if (item.IsChecked == true)
                    {
                        if (temp == null)
                        {
                            //添加
                            temp           = new RecoverChannelInfo();
                            temp.VoiceID   = voiceID;
                            temp.ChannelID = channelID;
                            temp.Extension = channel.FullName;
                            temp.VoiceIP   = voice.FullName;
                            StrategyItem.ListChannels.Add(temp);
                        }
                    }
                    if (item.IsChecked == false)
                    {
                        if (temp != null)
                        {
                            //移除
                            StrategyItem.ListChannels.Remove(temp);
                        }
                    }

                    //设置Voice项的选中状态
                    bool isExist = false;
                    bool isAll   = true;
                    for (int i = 0; i < mListChannelItems.Count; i++)
                    {
                        var channelItem = mListChannelItems[i];
                        if (channelItem.IsChecked == true)
                        {
                            isExist = true;
                        }
                        if (channelItem.IsChecked == false)
                        {
                            isAll = false;
                        }
                    }
                    if (isAll)
                    {
                        voiceItem.IsChecked = true;
                    }
                    else if (isExist)
                    {
                        voiceItem.IsChecked = null;
                    }
                    else
                    {
                        voiceItem.IsChecked = false;
                    }

                    #endregion
                }
            }
            catch (Exception ex)
            {
                ShowException(ex.Message);
            }
        }