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); } }
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); } }
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); } }