using Prism.Dialogs; using SWS.CAD.Models; using SWS.CAD.Services; using SWS.CAD.ViewModels.myViewModelBase; using SWS.CAD.Views; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Threading.Tasks; using System.Windows.Input; using Telerik.Windows.Controls; using Unity; using System.Windows; using static SWS.CAD.Services.WireGroupService; using SWS.CAD.Views.SignalManagementViews; using Prism.Ioc; using Telerik.Windows.Data; using System.Data; using DryIoc; namespace SWS.CAD.ViewModels { public class DialogSignalManagementViewModel : DialogBase, IDialogAware { #region 属性 private ObservableCollection _smInfos = new ObservableCollection(); /// /// 表格数据源 /// public ObservableCollection smInfos { get { return _smInfos; } set { _smInfos = value; RaisePropertyChanged(nameof(smInfos)); } } private QueryableCollectionView _smInfosView; /// /// 可筛选的的集合视图 /// public QueryableCollectionView smInfosView { get { return _smInfosView; } set { _smInfosView = value; RaisePropertyChanged(nameof(smInfosView)); } } private SignalManagementInfo _SelectedSmInfo; /// /// 选中行 /// public SignalManagementInfo SelectedSmInfo { get { return _SelectedSmInfo; } set { _SelectedSmInfo = value; RaisePropertyChanged(nameof(SelectedSmInfo)); } } /// /// 信号接口服务 /// WireGroupService _wireGroupService; private string _count; /// /// 表格数据数量 /// public string count { get { return _count; } set { _count = value; RaisePropertyChanged(nameof(count)); } } private string _pojectName; /// /// 表格名 /// public string pojectName { get { return _pojectName; } set { _pojectName = value; RaisePropertyChanged(nameof(pojectName)); } } public DialogSignalNotice SignalNoticeView { get; set; } private string _ButtonContent = "回收站"; /// /// 回收站按钮文本 /// public string ButtonContent { get { return _ButtonContent; } set { _ButtonContent = value; RaisePropertyChanged(nameof(ButtonContent)); } } private string _SearchText; /// /// 搜索框文本 /// public string SearchText { get { return _SearchText; } set { _SearchText = value; RaisePropertyChanged(nameof(SearchText)); } } private System.Windows.Visibility _IsButtonVisibility = Visibility.Hidden; /// /// 控制关联母线按钮显示隐藏 /// public System.Windows.Visibility IsButtonVisibility { get { return _IsButtonVisibility; } set { _IsButtonVisibility = value; RaisePropertyChanged(nameof(IsButtonVisibility)); } } private Visibility _IsChannelButtonVisibility = Visibility.Hidden; /// /// 控制关联通道按钮显示隐藏 /// public Visibility IsChannelButtonVisibility { get { return _IsChannelButtonVisibility; } set { _IsChannelButtonVisibility = value; RaisePropertyChanged(nameof(IsChannelButtonVisibility)); } } private ec_Wire_Group _IsAssociated; /// /// 通道是否关联信号 /// public ec_Wire_Group IsAssociated { get { return _IsAssociated; } set { _IsAssociated = value; RaisePropertyChanged(nameof(IsAssociated)); } } #region 下拉列表 private List _GroupOthers; /// /// 绑定组别列表 /// public List GroupOthers { get { return _GroupOthers; } set { _GroupOthers = value; RaisePropertyChanged(nameof(GroupOthers)); } } private List _BelongingMajors = new List { "E", "M" }; /// /// 绑定归属专业 /// public List BelongingMajors { get { return _BelongingMajors; } set { _BelongingMajors = value; RaisePropertyChanged(nameof(BelongingMajors)); } } private List _InOrOuts = new List { "input", "output" }; /// /// 绑定IO类型 /// public List InOrOuts { get { return _InOrOuts; } set { _InOrOuts = value; RaisePropertyChanged(nameof(InOrOuts)); } } private List _IO_Types = new List { "ON/OFF", "NO", "NC", "4-20mA", "PT100", "Pulse", "N/A" }; /// /// 绑定信号类型 /// public List IO_Types { get { return _IO_Types; } set { _IO_Types = value; RaisePropertyChanged(nameof(IO_Types)); } } private List _AL_GRPs; /// /// 绑定AL_GRP /// public List AL_GRPs { get { return _AL_GRPs; } set { _AL_GRPs = value; RaisePropertyChanged(nameof(AL_GRPs)); } } private List _BL_GRPs; /// /// 绑定BL_GRP /// public List BL_GRPs { get { return _BL_GRPs; } set { _BL_GRPs = value; RaisePropertyChanged(nameof(BL_GRPs)); } } private List _Suppliers; /// /// 绑定供应商 /// public List Suppliers { get { return _Suppliers; } set { _Suppliers = value; RaisePropertyChanged(nameof(Suppliers)); } } private List _WHCPUs; /// /// 绑定WHCPU /// public List WHCPUs { get { return _WHCPUs; } set { _WHCPUs = value; ECRCPUs = value; ShipOfficeCPUs = value; RaisePropertyChanged(nameof(WHCPUs)); } } private List _ECRCPUs; /// /// 绑定ECRCPU /// public List ECRCPUs { get { return _ECRCPUs; } set { _ECRCPUs = value; RaisePropertyChanged(nameof(ECRCPUs)); } } private List _ShipOfficeCPUs; /// /// 绑定ShipOfficeCPU /// public List ShipOfficeCPUs { get { return _ShipOfficeCPUs; } set { _ShipOfficeCPUs = value; RaisePropertyChanged(nameof(ShipOfficeCPUs)); } } private WireGroups _Ent; /// /// 新增或修改的列表 /// public WireGroups Ent { get { return _Ent; } set { _Ent = value; } } #endregion #endregion public DialogSignalManagementViewModel() { title = "信号管理"; _wireGroupService = GlobalObject.container.Resolve(); var serv = GlobalObject.container.Resolve(); GroupOthers = Task.Run(() => serv.GetDetails("be_Signal_Group")).Result; Suppliers = Task.Run(() => serv.GetDetails("Maker")).Result; WHCPUs = Task.Run(() => serv.GetDetails("Alarm")).Result; Ent = new WireGroups(); Ent.Signals = new List(); } public DialogCloseListener RequestClose { get; } public bool CanCloseDialog() { return true; } public void OnDialogClosed() { } private List signals; public async void OnDialogOpened(IDialogParameters parameters) { try { IsBusy = true; BusyContent = "加载中..."; signals = await _wireGroupService.GetSignals(GlobalObject.curProject.ProjectId, false); IsBusy = false; count = signals.Count.ToString(); signals = signals.Where(s => s.Status != WireGroupStatusEnum.deleted).ToList(); SetBaseData(signals); count = smInfos.Count.ToString() + "/" + count; pojectName = GlobalObject.curProject.ProjectName + " | " + GlobalObject.curProject.ShipNameCN; //关联母线按钮是否显示 string FromWhichPage = parameters.GetValue(GlobalObject.dialogPar.para1.ToString()); if (FromWhichPage!=null) { if (FromWhichPage.Equals("关联母线")) { IsButtonVisibility = Visibility.Visible; } if (FromWhichPage.Equals("关联通道")) { IsChannelButtonVisibility = Visibility.Visible; } } IsAssociated = parameters.GetValue(GlobalObject.dialogPar.info.ToString()); } catch (Exception) { } } public override void ExecuteOKCommandAsync(object para) { Prism.Dialogs.DialogParameters res = new Prism.Dialogs.DialogParameters(); //res.Add(GlobalObject.dialogPar.info.ToString(), $"{TextInfo}"); RequestClose.Invoke(res, ButtonResult.Yes); } public override void ExecuteCloseCommand(object parameter) { if (smInfos.Any(s => s.IsModified == true)) { MessageBoxResult resultMessage = MessageBox.Show("修改未保存,是否取消修改", "KunHengCAD", MessageBoxButton.OKCancel, MessageBoxImage.Question); if (resultMessage != MessageBoxResult.OK) { return; } } if (parameter as string == "ClickNo") { RequestClose.Invoke(ButtonResult.No); } else { RequestClose.Invoke(ButtonResult.Cancel); } this.Dispose(); } #region 页面按钮事件 public ICommand StatusButtonCmd => new DelegateCommand(StatusButton_Click); /// /// 显示状态按钮 /// /// public virtual async void StatusButton_Click(object parameter) { smInfos = new ObservableCollection(); IsBusy = true; BusyContent = "查询中..."; signals = await _wireGroupService.GetSignals(GlobalObject.curProject.ProjectId, false); IsBusy = false; count = signals.Count.ToString(); signals = signals.Where(s => s.Status != WireGroupStatusEnum.deleted).ToList(); if (!parameter.Equals("All")) { signals = signals.Where(s => s.Status.ToString().Equals(parameter)).ToList(); SetBaseData(signals, 1); } else { SetBaseData(signals); } count = smInfos.Count.ToString() + "/" + count; } public ICommand ButtonCmd => new DelegateCommand(Button_Click); /// /// 页面右侧按钮 /// /// public virtual async void Button_Click(object parameter) { if (!_smInfos.Any()) { return; } int index = _smInfos.IndexOf(_SelectedSmInfo);//当前选中项在源数据集合中的索引 #region 新增信号按钮 if (parameter.Equals("新增信号")) { if (index != -1 || SelectedSmInfo.type != "虚拟点") { var newEntity = new SignalManagementInfo(); newEntity.BelongingMajor = "M"; newEntity.type = "信号"; newEntity.Status = "New"; newEntity.GroupOthers = GroupOthers; newEntity.Suppliers = Suppliers; newEntity.IsModified = true; //订阅事件以更新数据。 newEntity.GroupOtherChanged += (sender, e) => UpdateParametersValue((SignalManagementInfo)sender); // 添加新行到选中行下方 _smInfos.Insert(index == -1 ? 0 : index + 1, newEntity); //重新排序 int i = 0; foreach (var item in _smInfos) { i++; item.serialNumber = i.ToString(); foreach (var item2 in item.ChildSignals) { i++; item2.serialNumber = i.ToString(); } } SelectedSmInfo = newEntity; } else { // 显示消息框 MessageBox.Show("请选择信号节点!", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return; } } #endregion #region 新增虚拟点 if (parameter.Equals("新增虚拟点")) { if (index == -1 || SelectedSmInfo.type.Equals("虚拟点")) { MessageBox.Show("请选择信号节点!", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return; } else { var newEntity = new SignalManagementInfo(); newEntity.BelongingMajor = SelectedSmInfo.BelongingMajor; newEntity.type = "虚拟点"; newEntity.Status = "New"; newEntity.ParentID = SelectedSmInfo.Wire_Group_ID; newEntity.GroupOthers = GroupOthers; newEntity.GroupOther = SelectedSmInfo.GroupOther; newEntity.Suppliers = Suppliers; newEntity.IsModified = true; //订阅事件以更新数据。 newEntity.ParametersChanged += (sender, e) => UpdateParametersValue((SignalManagementInfo)sender); // 添加新行到选中行下方 //smInfos.Insert(index + 1, newEntity); SelectedSmInfo.ChildSignals.Add(newEntity); //重新排序 int i = 0; foreach (var item in smInfos) { i++; item.serialNumber = i.ToString(); foreach (var item2 in item.ChildSignals) { i++; item2.serialNumber = i.ToString(); } } SelectedSmInfo = newEntity; } } #endregion #region 信号转虚拟点 if (parameter.Equals("信号转虚拟点")) { if (SelectedSmInfo != null) { if (SelectedSmInfo.type.Equals("信号")) { Prism.Dialogs.DialogParameters para = new Prism.Dialogs.DialogParameters(); para.Add(GlobalObject.dialogPar.para1.ToString(), smInfos); var _dialogService = GlobalObject._prismContainer.Resolve(); _dialogService.ShowDialog(nameof(DialogSignalSelect), para, (RES) => { if (RES.Result == ButtonResult.Yes) { var signal = RES.Parameters.GetValue(GlobalObject.dialogPar.para1.ToString()); SelectedSmInfo.ParentID = signal.SignalId; SelectedSmInfo.type = "虚拟点"; SelectedSmInfo.Group_Name = SelectedSmInfo.Group_Name + (string.IsNullOrEmpty(SelectedSmInfo.Code) ? "" : "_" + SelectedSmInfo.Code); SelectedSmInfo.IsModified = true; var tempSmInfo = SelectedSmInfo; smInfos.Remove(SelectedSmInfo); //var signalindex = smInfos.IndexOf(smInfos.FirstOrDefault(s => s.Wire_Group_ID == signal.SignalId)) + 1; //smInfos.Insert(signalindex, tempSmInfo); smInfos.FirstOrDefault(s => s.Wire_Group_ID == signal.SignalId).ChildSignals.Add(tempSmInfo); var i = 0; foreach (var item in smInfos) { i++; item.serialNumber = i.ToString(); foreach (var item2 in item.ChildSignals) { i++; item2.serialNumber = i.ToString(); } } SelectedSmInfo = tempSmInfo; } else if (RES.Result == ButtonResult.No) { } }); } else if (SelectedSmInfo.type.Equals("虚拟点")) { var parentSmif = smInfos.FirstOrDefault(s => s.Wire_Group_ID == SelectedSmInfo.ParentID); SelectedSmInfo.type = "信号"; SelectedSmInfo.ParentID = ""; //SelectedSmInfo.Code = ""; SelectedSmInfo.Group_Name = SelectedSmInfo.Group_Name.Split('_')[0]; SelectedSmInfo.IsModified = true; var tempSmInfo = SelectedSmInfo; parentSmif.ChildSignals.Remove(SelectedSmInfo); var signalindex = smInfos.IndexOf(parentSmif); //signalindex = smInfos.IndexOf(smInfos.Skip(signalindex).Where(s => s.type.Equals("信号")).First()); smInfos.Insert(signalindex + 1, tempSmInfo); var i = 0; foreach (var item in smInfos) { i++; item.serialNumber = i.ToString(); foreach (var item2 in item.ChildSignals) { i++; item2.serialNumber = i.ToString(); } } SelectedSmInfo = tempSmInfo; } } } #endregion #region 删除 if (parameter.Equals("删除")) { if (SelectedSmInfo != null) { //RadWindow.Alert("Start time: " + this.StartTime + "\nEnd time: " + this.EndTime); // 显示消息框 MessageBoxResult result = MessageBox.Show("确定准备删除选择的一行数据", "KunHengCAD", MessageBoxButton.OKCancel, MessageBoxImage.Question); if (result == MessageBoxResult.OK) { //id为空表示新增的未保存所以直接删除,不为空表示数据库已存在只修改状态 if (string.IsNullOrEmpty(SelectedSmInfo.Wire_Group_ID)) { smInfos.Remove(SelectedSmInfo); } else { Prism.Dialogs.DialogParameters x = new Prism.Dialogs.DialogParameters(); x.Add(GlobalObject.dialogPar.title.ToString(), "提示"); x.Add(GlobalObject.dialogPar.info.ToString(), "请输入删除的原因:"); var _dialogService = GlobalObject._prismContainer.Resolve(); _dialogService.ShowDialog(nameof(DialogInput), x, (RES) => { if (RES.Result == ButtonResult.Yes) { var Reason = RES.Parameters.GetValue(GlobalObject.dialogPar.info.ToString()); if (string.IsNullOrEmpty(Reason)) { MessageBox.Show("您输入的信息为空!"); } else { List histories = new List() { new ActionHistory() { ActionTime= DateTime.Now, ActionType = Models.Action.准备删除, reason = Reason } }; SelectedSmInfo.ActionHistorys = histories; SelectedSmInfo.Status = "ToDelete"; SelectedSmInfo.IsModified = true; if (SelectedSmInfo.type.Equals("虚拟点")) { SelectedSmInfo.GroupOther = ""; } } } else if (RES.Result == ButtonResult.No) { } }); } } } else { // 显示消息框 MessageBox.Show("请选择要准备删除的信号!", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); } } #endregion #region 撤销删除 if (parameter.Equals("撤销删除")) { if (SelectedSmInfo != null && SelectedSmInfo.Status == "ToDelete") { List histories = new List() { new ActionHistory() { ActionTime= DateTime.Now, ActionType = Models.Action.撤销删除, } }; SelectedSmInfo.ActionHistorys = histories; SelectedSmInfo.Status = "New"; SelectedSmInfo.IsModified = true; } else { MessageBox.Show("只有待删除的信号才能撤销删除"); } } #endregion #region 彻底删除 if (parameter.Equals("彻底删除")) { if (SelectedSmInfo != null) { List Signals = new List() { new ec_Wire_Group() { Group_Name = SelectedSmInfo.Group_Name, Wire_Group_ID = SelectedSmInfo.Wire_Group_ID } }; WireGroups ent = new WireGroups(); ent.Signals = Signals; string message = await _wireGroupService.CanSaveSignals(ent, Models.Action.删除); if (message != "OK") { // 显示消息框 MessageBox.Show(message, "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return; } else { List histories = new List() { new ActionHistory() { ActionTime= DateTime.Now, ActionType = Models.Action.删除, reason = "" } }; SelectedSmInfo.ActionHistorys = histories; SelectedSmInfo.Status = "deleted"; SelectedSmInfo.DeleteFlg = true; SelectedSmInfo.IsModified = true; SignalManagementInfo tempsmif = new SignalManagementInfo(); tempsmif = SelectedSmInfo; if (SelectedSmInfo.type.Equals("信号")) { smInfos.Remove(SelectedSmInfo); smInfos.Add(tempsmif); } else { var parentSmif = smInfos.FirstOrDefault(s => s.Wire_Group_ID == SelectedSmInfo.ParentID); parentSmif.ChildSignals.Remove(SelectedSmInfo); smInfos.Add(tempsmif); } } } } #endregion #region 还原信号 if (parameter.Equals("还原信号")) { if (SelectedSmInfo != null) { Prism.Dialogs.DialogParameters x = new Prism.Dialogs.DialogParameters(); x.Add(GlobalObject.dialogPar.title.ToString(), "提示"); x.Add(GlobalObject.dialogPar.info.ToString(), "请输入还原信号的原因:"); var _dialogService = GlobalObject._prismContainer.Resolve(); _dialogService.ShowDialog(nameof(DialogInput), x, (RES) => { if (RES.Result == ButtonResult.Yes) { var Reason = RES.Parameters.GetValue(GlobalObject.dialogPar.info.ToString()); if (string.IsNullOrEmpty(Reason)) { MessageBox.Show("您输入的信息为空!"); } else { List histories = new List() { new ActionHistory() { ActionTime= DateTime.Now, ActionType = Models.Action.回收站恢复, reason = Reason } }; SelectedSmInfo.ActionHistorys = histories; SelectedSmInfo.Status = "New"; SelectedSmInfo.DeleteFlg = false; SelectedSmInfo.IsModified = true; SignalManagementInfo tempsmif = new SignalManagementInfo(); tempsmif = SelectedSmInfo; if (SelectedSmInfo.Equals("信号")) { smInfos.Remove(SelectedSmInfo); smInfos.Add(tempsmif); } else { var parentSmif = smInfos.FirstOrDefault(s => s.Wire_Group_ID == SelectedSmInfo.ParentID); parentSmif.ChildSignals.Remove(SelectedSmInfo); smInfos.Add(tempsmif); } } } else if (RES.Result == ButtonResult.No) { } }); } } #endregion #region 审核 if (parameter.Equals("审核")) { if (SelectedSmInfo != null) { List Signals = new List() { new ec_Wire_Group() { Group_Name = SelectedSmInfo.Group_Name, Wire_Group_ID = SelectedSmInfo.Wire_Group_ID } }; WireGroups ent = new WireGroups(); ent.Signals = Signals; string message = await _wireGroupService.CanSaveSignals(ent, Models.Action.审核); if (message != "OK") { // 显示消息框 MessageBox.Show(message, "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return; } else { List histories = new List() { new ActionHistory() { ActionTime= DateTime.Now, ActionType = Models.Action.审核, reason = "" } }; SelectedSmInfo.ActionHistorys = histories; SelectedSmInfo.Status = "Confirmed"; SelectedSmInfo.IsModified = true; } } } #endregion #region 重新打开 if (parameter.Equals("重新打开")) { if (SelectedSmInfo != null) { var messageBoxResult = MessageBox.Show("确定重新打开选中的一行数据?", "KunHengCAD", MessageBoxButton.OKCancel, MessageBoxImage.Question); if (messageBoxResult == MessageBoxResult.OK) { if (SelectedSmInfo.Status == "Confirmed") { Prism.Dialogs.DialogParameters x = new Prism.Dialogs.DialogParameters(); x.Add(GlobalObject.dialogPar.title.ToString(), "提示"); x.Add(GlobalObject.dialogPar.info.ToString(), "请输入重新打开改信号的原因:"); var _dialogService = GlobalObject._prismContainer.Resolve(); _dialogService.ShowDialog(nameof(DialogInput), x, (RES) => { if (RES.Result == ButtonResult.Yes) { var Reason = RES.Parameters.GetValue(GlobalObject.dialogPar.info.ToString()); if (string.IsNullOrEmpty(Reason)) { MessageBox.Show("输入的信息不能为空!"); } else { List histories = new List() { new ActionHistory() { ActionTime= DateTime.Now, ActionType = Models.Action.重新打开, reason = Reason } }; SelectedSmInfo.ActionHistorys = histories; SelectedSmInfo.Status = "Reopen"; SelectedSmInfo.IsModified = true; } } else if (RES.Result == ButtonResult.No) { } }); } else { // 显示消息框 MessageBox.Show("只有已审核的信号才能重新打开", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return; } } else { return; } } } #endregion #region 关联通道 if (parameter.Equals("关联通道")) { if (SelectedSmInfo == null) { System.Windows.MessageBox.Show("您未选择关联信号", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return; } else { if (!SelectedSmInfo.Status.Equals("New") || SelectedSmInfo.Status.Equals("Reopen")) { System.Windows.MessageBox.Show("只有新增或重新打开的信号才能关联,请重新选择!", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return; } else { if (IsAssociated != null) { MessageBoxResult result = System.Windows.MessageBox.Show("已关联的信号:" + IsAssociated.Group_Name + "是否确认被覆盖?", "KunHengCAD", MessageBoxButton.OKCancel, MessageBoxImage.Warning); if (result == MessageBoxResult.OK) { List WireGroups = new List(); WireGroups.Add(SelectedSmInfo.to_ec_Wire_Group(signals)); Prism.Dialogs.DialogParameters res = new Prism.Dialogs.DialogParameters(); res.Add(GlobalObject.dialogPar.para1.ToString(), WireGroups); RequestClose.Invoke(res, ButtonResult.Yes); this.Dispose(); } else { return; } } } } } #endregion #region 关联母线 if (parameter.Equals("关联母线")) { if (SelectedSmInfo == null) { System.Windows.MessageBox.Show("您未选择关联信号", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return; } else { if (!SelectedSmInfo.CommunicationPoint) { System.Windows.MessageBox.Show("只有通讯信号才能关联,请重新选择!", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return; } else { List WireGroupIds = new List(); WireGroupIds.Add(SelectedSmInfo); Prism.Dialogs.DialogParameters res = new Prism.Dialogs.DialogParameters(); res.Add(GlobalObject.dialogPar.para1.ToString(), WireGroupIds); RequestClose.Invoke(res, ButtonResult.Yes); this.Dispose(); } } } #endregion } public ICommand HeadButtonCmd => new DelegateCommand(HeadButton_Click); /// /// 页面右侧按钮 /// /// public virtual async void HeadButton_Click(object parameter) { #region 保存按钮 if (parameter.Equals("保存")) { //新增或者修改的集合 List updatals = new List(); foreach (var item in smInfos) { if (item.IsModified) { updatals.Add(item); } foreach (var item2 in item.ChildSignals) { if (item2.IsModified) { updatals.Add(item2); } } } //updatals = smInfos.Where(s => s.IsModified == true).ToList(); foreach (var item in updatals) { //保存的为信号时才判断组别 if (item.type == "信号") { if (string.IsNullOrEmpty(item.GroupOther)) { // 显示消息框 MessageBox.Show("组别不能为空", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return; } } else if (item.type == "虚拟点") { if (string.IsNullOrEmpty(item.Code)) { MessageBox.Show("Code列不能为空", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return; } } Ent.Signals.Add(item.to_ec_Wire_Group(signals)); } //保存 var data = await _wireGroupService.SaveSignals(Ent); if (data != null && data.Count != 0) { //foreach (var item in data) //{ //} smInfos = new ObservableCollection(); IsBusy = true; BusyContent = "保存中..."; signals = await _wireGroupService.GetSignals(GlobalObject.curProject.ProjectId, false); IsBusy = false; count = signals.Count.ToString(); if (ButtonContent.Equals("回收站")) { signals = signals.Where(s => s.Status != WireGroupStatusEnum.deleted).ToList(); } else { signals = signals.Where(s => s.Status == WireGroupStatusEnum.deleted).ToList(); } SetBaseData(signals); count = smInfos.Count.ToString() + "/" + count; Ent.Signals.Clear(); // 显示消息框 MessageBox.Show("保存成功", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Information); } else { } } #endregion #region 退出按钮 if (parameter.Equals("退出")) { if (smInfos.Any(s => s.IsModified == true)) { MessageBoxResult resultMessage = MessageBox.Show("修改未保存,是否取消修改", "KunHengCAD", MessageBoxButton.OKCancel, MessageBoxImage.Question); if (resultMessage != MessageBoxResult.OK) { return; } } RequestClose.Invoke(ButtonResult.Cancel); this.Dispose(); } #endregion #region 通知消息 if (parameter.Equals("通知信息")) { //RadWindow window = new RadWindow(); //window.Content = new DialogSignalNotice(); //window.WindowStartupLocation = WindowStartupLocation.CenterOwner; //window.Header = "通知消息"; ////window.CanClose = false; //window.Show(); //打开窗体 Prism.Dialogs.DialogParameters para = new Prism.Dialogs.DialogParameters(); var _dialogService = GlobalObject._prismContainer.Resolve(); _dialogService.ShowDialog(nameof(DialogSignalNotice), para, (RES) => { if (RES.Result == ButtonResult.Yes) { } else if (RES.Result == ButtonResult.No) { } }); } #endregion #region 历史记录 if (parameter.Equals("历史记录")) { if (SelectedSmInfo != null) { //打开窗体 Prism.Dialogs.DialogParameters para = new Prism.Dialogs.DialogParameters(); para.Add(GlobalObject.dialogPar.para1.ToString(), SelectedSmInfo); var _dialogService = GlobalObject._prismContainer.Resolve(); _dialogService.ShowDialog(nameof(DialogSignalPropertyhisAndLogs), para, (RES) => { if (RES.Result == ButtonResult.Yes) { } else if (RES.Result == ButtonResult.No) { } }); } } #endregion #region 回收站 if (parameter.Equals("回收站")) { switch (ButtonContent) { case "回收站": ButtonContent = "显示全部"; break; case "显示全部": ButtonContent = "回收站"; break; } smInfos = new ObservableCollection(); IsBusy = true; BusyContent = "查询中..."; signals = await _wireGroupService.GetSignals(GlobalObject.curProject.ProjectId, false); IsBusy = false; count = signals.Count.ToString(); if (ButtonContent.Equals("回收站")) { signals = signals.Where(s => s.Status != WireGroupStatusEnum.deleted).ToList(); } else { signals = signals.Where(s => s.Status == WireGroupStatusEnum.deleted).ToList(); } SetBaseData(signals); count = smInfos.Count.ToString() + "/" + count; } #endregion #region 搜索 if (parameter.Equals("搜索框")) { PerformSearch(); } #endregion } public ICommand EditEndCmd => new DelegateCommand(EditEnd); /// /// 编辑结束事件 /// /// public virtual void EditEnd(object parameter) { //做个标记表示该项修改过 SelectedSmInfo.IsModified = true; } #endregion #region 方法 /// /// 设置数据 /// 0是初始化数据,1是查询数据 /// public void SetBaseData(List signals, int model = 0) { int index = 0; foreach (var signal in signals) { if (model == 0) { if (string.IsNullOrEmpty(signal.ParentID)) { index++; SignalManagementInfo info = new SignalManagementInfo(); info.serialNumber = index.ToString(); SetEntData(info, signal); smInfos.Add(info); foreach (var signal2 in signals) { if (signal.Wire_Group_ID.Equals(signal2.ParentID)) { index++; SignalManagementInfo info2 = new SignalManagementInfo(); info2.serialNumber = index.ToString(); SetEntData(info2, signal2); info.ChildSignals.Add(info2); info.ChildSignalsView = new QueryableCollectionView(info.ChildSignals); info.IsExpandable = true; } } } } else { index++; SignalManagementInfo info = new SignalManagementInfo(); info.serialNumber = index.ToString(); SetEntData(info, signal); smInfos.Add(info); } } smInfosView = new QueryableCollectionView(smInfos); } public void SetEntData(SignalManagementInfo info, ec_Wire_Group signal) { info.Wire_Group_ID = signal.Wire_Group_ID; info.ParentID = signal.ParentID; info.Status = signal.Status.ToString(); info.type = string.IsNullOrEmpty(signal.ParentID) ? "信号" : "虚拟点"; info.Group_Name = signal.Group_Name; info.Group_Desc_EN = signal.Group_Desc_EN; info.Group_Desc = signal.Group_Desc; info.BelongingMajor = signal.ElecOnly ? "E" : "M"; info.GroupOthers = GroupOthers; info.GroupOther = GroupOthers.Where(g => g.DataItemCode == signal.Signal_Group).Select(g => g.DataItemName).FirstOrDefault(); info.Signal_SeqNo = signal.Signal_SeqNo; info.Code = signal.Code; info.InOrOut = signal.InOrOut; info.IO_Type = signal.IO_Type; info.Range_Min = signal.Range_Min; info.Range_Max = signal.Range_Max; info.Unit = signal.Unit; info.Alarm_LL = signal.Alarm_LL; info.Alarm_L = signal.Alarm_L; info.Alarm_H = signal.Alarm_H; info.Alarm_HH = signal.Alarm_HH; info.SENSOR_CODE = signal.SENSOR_CODE; info.CommunicationPoint = signal.CommunicationPoint; info.SeriousType = signal.SeriousType; info.AL_GRP = signal.AL_GRP; info.BL_GRP = signal.BL_GRP; info.Time_Delay = signal.Time_Delay; info.Suppliers = Suppliers; info.Supplier = Suppliers.Where(g => g.DataItemCode == signal.Supplier).Select(g => g.DataItemName).FirstOrDefault(); info.EquipName = signal.EquipName; info.VDR_Record = signal.VDR_Record; info.WHConsole = signal.WHConsole; //info.WHCPU = signal.WHCPU; foreach (var item in signal.WHCPU.Split('|')) { info.WHCPUs.Add(WHCPUs.Where(e => e.DataItemCode.Equals(item.Trim())).FirstOrDefault()); } info.ECRConsole = signal.ECRConsole; //info.ECRCPU = signal.ECRCPU; foreach (var item in signal.ECRCPU.Split('|')) { info.ECRCPUs.Add(ECRCPUs.Where(e => e.DataItemCode.Equals(item.Trim())).FirstOrDefault()); } info.ShipOfficeConsole = signal.ShipOfficeConsole; //info.ShipOfficeCPU = signal.ShipOfficeCPU; foreach (var item in signal.ShipOfficeCPU.Split('|')) { info.ShipOfficeCPUs.Add(ShipOfficeCPUs.Where(e => e.DataItemCode.Equals(item.Trim())).FirstOrDefault()); } info.SLD = signal.SLD; info.SHD = signal.SHD; info.SafetyDelay = signal.SafetyDelay; info.AutoCtrl = signal.AutoCtrl; info.AssociatedCableInfo = (signal.CableName == "" || signal.CableName == null ? "" : "电缆位号:" + signal.CableName) + (signal.CableSetName == null ? "" : " 电缆对:" + signal.CableSetName); info.AssociatedChannelInfo = (signal.PanelName == null ? "" : "采集箱:" + signal.PanelName) + (signal.StripName == null ? "" : "端子排:" + signal.StripName) + (signal.ChannelName == null ? "" : " 通道:" + signal.ChannelName); info.Remarks = signal.Remarks; info.DeleteFlg = signal.DeleteFlg; //订阅事件以更新数据。 info.ParametersChanged += (sender, e) => UpdateParametersValue((SignalManagementInfo)sender); } /// /// 选择组别改变时修改Group_Name和Code() /// /// private async void UpdateParametersValue(SignalManagementInfo item) { if (item.type == "信号") { //获取当前组别的可用编码 string group = GroupOthers.Where(e => e.DataItemName.Equals(item.GroupOther)).Select(e => e.DataItemCode).FirstOrDefault(); if (string.IsNullOrEmpty(item.Signal_SeqNo))//编码列为空时才通过接口获取可用编码 { var seq = await _wireGroupService.GetNextAvailableSeq(group); int count = smInfos.Where(s => s.IsModified == true && string.IsNullOrEmpty(s.Wire_Group_ID)).ToList().Count; if (count > 1) { seq = (double.Parse(seq) + count - 1).ToString(); } item.Signal_SeqNo = seq.ToString(); } item.Group_Name = group + item.Signal_SeqNo; } else if (item.type == "虚拟点") { if (string.IsNullOrEmpty(item.Group_Name)) { string Group_Name = smInfos.Where(e => e.Wire_Group_ID == item.ParentID).Select(e => e.Group_Name).FirstOrDefault(); item.Group_Name = Group_Name + "_" + item.Code; } else { item.Group_Name = item.Group_Name.Split('_')[0] + "_" + item.Code; } } } /// /// 搜索方法 /// private void PerformSearch() { smInfosView.FilterDescriptors.Clear(); if (!string.IsNullOrEmpty(SearchText)) { var compositeFilter = new CompositeFilterDescriptor { LogicalOperator = FilterCompositionLogicalOperator.Or }; foreach (var prop in typeof(SignalManagementInfo).GetProperties()) { if (prop.PropertyType == typeof(string)) { compositeFilter.FilterDescriptors.Add(new FilterDescriptor { Member = prop.Name, Operator = FilterOperator.Contains, Value = SearchText.ToLower(), IsCaseSensitive = false }); } } smInfosView.FilterDescriptors.Add(compositeFilter); } } #endregion } public class SignalManagementInfo : DialogBase { public event EventHandler GroupOtherChanged; public event EventHandler CodeChanged; public event EventHandler ParametersChanged; #region 表格字段 private string _Wire_Group_ID; /// /// ID /// public string Wire_Group_ID { get { return _Wire_Group_ID; } set { _Wire_Group_ID = value; RaisePropertyChanged(nameof(Wire_Group_ID)); } } private string _ParentID; /// /// 如果有值表示其为虚拟点 /// public string ParentID { get { return _ParentID; } set { _ParentID = value; } } private string _Status; /// /// 状态 /// public string Status { get { return _Status; } set { _Status = value; RaisePropertyChanged(nameof(Status)); } } private string _serialNumber; /// /// 序号 /// public string serialNumber { get { return _serialNumber; } set { _serialNumber = value; RaisePropertyChanged(nameof(serialNumber)); } } private string _type; /// /// 类型 /// public string type { get { return _type; } set { _type = value; RaisePropertyChanged(nameof(type)); } } private string _Group_Name; /// /// CH.NO /// public string Group_Name { get { return _Group_Name; } set { _Group_Name = value; RaisePropertyChanged(nameof(Group_Name)); } } private string _Group_Desc_EN; /// /// 英文描述 /// public string Group_Desc_EN { get { return _Group_Desc_EN; } set { _Group_Desc_EN = value; RaisePropertyChanged(nameof(Group_Desc_EN)); } } private string _Group_Desc; /// /// 中文描述 /// public string Group_Desc { get { return _Group_Desc; } set { _Group_Desc = value; RaisePropertyChanged(nameof(Group_Desc)); } } private string _BelongingMajor; /// /// 归属专业 /// public string BelongingMajor { get { return _BelongingMajor; } set { _BelongingMajor = value; RaisePropertyChanged(nameof(BelongingMajor)); } } private string _GroupOther; /// /// 组别 /// public string GroupOther { get { return _GroupOther; } set { _GroupOther = value; RaisePropertyChanged(nameof(GroupOther)); ParametersChanged?.Invoke(this, EventArgs.Empty); } } private List _GroupOthers; /// /// 组别列表 /// public List GroupOthers { get { return _GroupOthers; } set { _GroupOthers = value; RaisePropertyChanged(nameof(GroupOthers)); } } private string _Signal_SeqNo; /// /// 编码 /// public string Signal_SeqNo { get { return _Signal_SeqNo; } set { _Signal_SeqNo = value; RaisePropertyChanged(nameof(Signal_SeqNo)); } } private string _Code; /// /// Code /// public string Code { get { return _Code; } set { _Code = value; RaisePropertyChanged(nameof(Code)); ParametersChanged?.Invoke(this, EventArgs.Empty); } } private string _InOrOut; /// /// IO类型 /// public string InOrOut { get { return _InOrOut; } set { _InOrOut = value; RaisePropertyChanged(nameof(InOrOut)); } } private string _IO_Type; /// /// 信号类型 /// public string IO_Type { get { return _IO_Type; } set { _IO_Type = value; RaisePropertyChanged(nameof(IO_Type)); } } private string _Range_Min; /// /// Range_Min /// public string Range_Min { get { return _Range_Min; } set { _Range_Min = value; RaisePropertyChanged(nameof(Range_Min)); } } private string _Range_Max; /// /// Range_Max /// public string Range_Max { get { return _Range_Max; } set { _Range_Max = value; RaisePropertyChanged(nameof(Range_Max)); } } private string _Unit; /// /// 单位 /// public string Unit { get { return _Unit; } set { _Unit = value; RaisePropertyChanged(nameof(Unit)); } } private string _Alarm_LL; public string Alarm_LL { get { return _Alarm_LL; } set { _Alarm_LL = value; RaisePropertyChanged(nameof(Alarm_LL)); } } private string _Alarm_L; public string Alarm_L { get { return _Alarm_L; } set { _Alarm_L = value; RaisePropertyChanged(nameof(Alarm_L)); } } private string _Alarm_H; public string Alarm_H { get { return _Alarm_H; } set { _Alarm_H = value; RaisePropertyChanged(nameof(Alarm_H)); } } private string _Alarm_HH; public string Alarm_HH { get { return _Alarm_HH; } set { _Alarm_HH = value; RaisePropertyChanged(nameof(Alarm_HH)); } } private string _SENSOR_CODE; public string SENSOR_CODE { get { return _SENSOR_CODE; } set { _SENSOR_CODE = value; RaisePropertyChanged(nameof(SENSOR_CODE)); } } private bool _CommunicationPoint; /// /// 是否是通讯点 /// public bool CommunicationPoint { get { return _CommunicationPoint; } set { _CommunicationPoint = value; RaisePropertyChanged(nameof(CommunicationPoint)); } } private string _SeriousType; public string SeriousType { get { return _SeriousType; } set { _SeriousType = value; RaisePropertyChanged(nameof(SeriousType)); } } private string _AL_GRP; public string AL_GRP { get { return _AL_GRP; } set { _AL_GRP = value; RaisePropertyChanged(nameof(AL_GRP)); } } private string _BL_GRP; public string BL_GRP { get { return _BL_GRP; } set { _BL_GRP = value; RaisePropertyChanged(nameof(BL_GRP)); } } private string _Time_Delay; public string Time_Delay { get { return _Time_Delay; } set { _Time_Delay = value; RaisePropertyChanged(nameof(Time_Delay)); } } private string _Supplier; /// /// 供应商 /// public string Supplier { get { return _Supplier; } set { _Supplier = value; RaisePropertyChanged(nameof(Supplier)); } } private string _EquipName; /// /// 设备名 /// public string EquipName { get { return _EquipName; } set { _EquipName = value; RaisePropertyChanged(nameof(EquipName)); } } private bool _VDR_Record; public bool VDR_Record { get { return _VDR_Record; } set { _VDR_Record = value; RaisePropertyChanged(nameof(VDR_Record)); } } private string _WHConsole; public string WHConsole { get { return _WHConsole; } set { _WHConsole = value; RaisePropertyChanged(nameof(WHConsole)); } } private ObservableCollection _WHCPU = new ObservableCollection(); public ObservableCollection WHCPU { get { return _WHCPU; } set { _WHCPU = value; WHCPUs.AddRange(value); RaisePropertyChanged(nameof(WHCPU)); } } private ObservableCollection _WHCPUs = new ObservableCollection(); public ObservableCollection WHCPUs { get { return _WHCPUs; } set { _WHCPUs = value; OnPropertyChanged(nameof(WHCPUs)); } } private string _ECRConsole; public string ECRConsole { get { return _ECRConsole; } set { _ECRConsole = value; RaisePropertyChanged(nameof(ECRConsole)); } } private string _ECRCPU; public string ECRCPU { get { return _ECRCPU; } set { _ECRCPU = value; RaisePropertyChanged(nameof(ECRCPU)); } } private ObservableCollection _ECRCPUs = new ObservableCollection(); public ObservableCollection ECRCPUs { get { return _ECRCPUs; } set { _ECRCPUs = value; RaisePropertyChanged(nameof(ECRCPUs)); } } private string _ShipOfficeConsole; public string ShipOfficeConsole { get { return _ShipOfficeConsole; } set { _ShipOfficeConsole = value; RaisePropertyChanged(nameof(ShipOfficeConsole)); } } private string _ShipOfficeCPU; public string ShipOfficeCPU { get { return _ShipOfficeCPU; } set { _ShipOfficeCPU = value; RaisePropertyChanged(nameof(ShipOfficeCPU)); } } private ObservableCollection _ShipOfficeCPUs = new ObservableCollection(); public ObservableCollection ShipOfficeCPUs { get { return _ShipOfficeCPUs; } set { _ShipOfficeCPUs = value; RaisePropertyChanged(nameof(ShipOfficeCPUs)); } } private bool _SLD; public bool SLD { get { return _SLD; } set { _SLD = value; RaisePropertyChanged(nameof(SLD)); } } private bool _SHD; public bool SHD { get { return _SHD; } set { _SHD = value; RaisePropertyChanged(nameof(SHD)); } } private string _SafetyDelay; /// /// 安保延迟 /// public string SafetyDelay { get { return _SafetyDelay; } set { _SafetyDelay = value; RaisePropertyChanged(nameof(SafetyDelay)); } } private string _AutoCtrl; /// /// 自动控制 /// public string AutoCtrl { get { return _AutoCtrl; } set { _AutoCtrl = value; RaisePropertyChanged(nameof(AutoCtrl)); } } private string _AssociatedCableInfo; /// /// 关联电缆信息 /// public string AssociatedCableInfo { get { return _AssociatedCableInfo; } set { _AssociatedCableInfo = value; RaisePropertyChanged(nameof(AssociatedCableInfo)); } } private string _AssociatedChannelInfo; /// /// 关联通道信息 /// public string AssociatedChannelInfo { get { return _AssociatedChannelInfo; } set { _AssociatedChannelInfo = value; RaisePropertyChanged(nameof(AssociatedChannelInfo)); } } private string _Remarks; /// /// 备注 /// public string Remarks { get { return _Remarks; } set { _Remarks = value; RaisePropertyChanged(nameof(Remarks)); } } private List _Suppliers; /// /// 绑定供应商 /// public List Suppliers { get { return _Suppliers; } set { _Suppliers = value; RaisePropertyChanged(nameof(Suppliers)); } } #region 扩展字段 private bool _IsModified; /// /// 是否修改 /// public bool IsModified { get { return _IsModified; } set { _IsModified = value; RaisePropertyChanged(nameof(IsModified)); } } private bool _IsExpanded = false; /// /// 是否展开 /// public bool IsExpanded { get { return _IsExpanded; } set { _IsExpanded = value; RaisePropertyChanged(nameof(IsExpanded)); } } private bool _IsExpandable; /// /// 是否可展开 /// public bool IsExpandable { get { return _IsExpandable; } set { _IsExpandable = value; RaisePropertyChanged(nameof(IsExpandable)); } } private List _ActionHistorys; /// /// 操作历史 /// public List ActionHistorys { get { return _ActionHistorys; } set { _ActionHistorys = value; } } private bool _DeleteFlg; /// /// 删除标记 /// public bool DeleteFlg { get { return _DeleteFlg; } set { _DeleteFlg = value; } } private ObservableCollection _ChildSignals = new ObservableCollection(); public ObservableCollection ChildSignals { get { return _ChildSignals; } set { _ChildSignals = value; RaisePropertyChanged(nameof(ChildSignals)); } } private QueryableCollectionView _ChildSignalsView; /// /// 虚拟点集合视图 /// public QueryableCollectionView ChildSignalsView { get { return _ChildSignalsView; } set { _ChildSignalsView = value; RaisePropertyChanged(nameof(ChildSignalsView)); } } #endregion #endregion #region 方法 /// /// 将表格对象转换为数据模型类 /// /// public ec_Wire_Group to_ec_Wire_Group(List sigals) { ec_Wire_Group ent; if (string.IsNullOrEmpty(Wire_Group_ID)) { ent = new ec_Wire_Group(); } else { ent = sigals.Where(e => e.Wire_Group_ID.Equals(Wire_Group_ID)).First(); } switch (Status) { case "ToDelete": ent.Status = WireGroupStatusEnum.ToDelete; break; case "New": ent.Status = WireGroupStatusEnum.New; break; case "Used": ent.Status = WireGroupStatusEnum.Used; break; case "Confirmed": ent.Status = WireGroupStatusEnum.Confirmed; break; case "Reopen": ent.Status = WireGroupStatusEnum.Reopen; break; case "deleted": ent.Status = WireGroupStatusEnum.deleted; break; } ent.Wire_Group_ID = Wire_Group_ID; ent.ParentID = ParentID; ent.Group_Name = Group_Name; ent.Group_Desc_EN = Group_Desc_EN; ent.Group_Desc = Group_Desc; ent.ElecOnly = BelongingMajor.Equals("E") ? true : false; if (GroupOther == null) { ent.Signal_Group = ""; } else { ent.Signal_Group = GroupOthers.Where(g => g.DataItemName == GroupOther).Select(g => g.DataItemCode).FirstOrDefault(); } ent.Signal_SeqNo = Signal_SeqNo; ent.Code = Code; ent.InOrOut = InOrOut; ent.IO_Type = IO_Type; ent.Range_Min = Range_Min; ent.Range_Max = Range_Max; ent.Unit = Unit; ent.Alarm_LL = Alarm_LL; ent.Alarm_L = Alarm_L; ent.Alarm_H = Alarm_H; ent.Alarm_HH = Alarm_HH; ent.SENSOR_CODE = SENSOR_CODE; ent.CommunicationPoint = CommunicationPoint; ent.SeriousType = SeriousType; ent.AL_GRP = AL_GRP; ent.BL_GRP = BL_GRP; ent.Time_Delay = Time_Delay; ent.Supplier = Suppliers.Where(g => g.DataItemName == Supplier).Select(g => g.DataItemCode).FirstOrDefault(); ent.EquipName = EquipName; ent.VDR_Record = VDR_Record; ent.WHConsole = WHConsole; ent.WHCPU = ""; foreach (var item in WHCPUs) { if (item != null) { ent.WHCPU = ent.WHCPU + item.DataItemCode + "|"; } } ent.ECRConsole = ECRConsole; ent.ECRCPU = ""; foreach (var item in ECRCPUs) { if (item != null) { ent.ECRCPU = ent.ECRCPU + item.DataItemCode + "|"; } } ent.ShipOfficeConsole = ShipOfficeConsole; ent.ShipOfficeCPU = ""; foreach (var item in ShipOfficeCPUs) { if (item != null) { ent.ShipOfficeCPU = ent.ShipOfficeCPU + item.DataItemCode + "|"; } } ent.SLD = SLD; ent.SHD = SHD; ent.SafetyDelay = SafetyDelay; ent.AutoCtrl = AutoCtrl; if (string.IsNullOrEmpty(AssociatedCableInfo)) { //// 使用正则表达式匹配模式,并提取每组数据 //var matches = Regex.Matches(AssociatedCableInfo, @"电缆位号:(.*?)\s电缆对:(.*)"); // if (matches.Count > 0) // 确保至少有一个匹配项 // { // string cableNumber = matches[0].Groups[1].Value; // 第一个冒号后的值 // string cableSet = matches[0].Groups[2].Value; // 第二个冒号后的值 // } ent.CableName = ""; ent.CableSetName = ""; } else { ent.CableName = AssociatedCableInfo.Split(' ')[0].Split(':')[1]; ent.CableSetName = (AssociatedCableInfo.Split(' ').Count() > 1) ? AssociatedCableInfo.Split(' ')[1].Split(':')[1] : ""; } if (string.IsNullOrEmpty(AssociatedChannelInfo)) { ent.PanelName = ""; ent.StripName = ""; ent.ChannelName = ""; } else { ent.PanelName = AssociatedChannelInfo.Split(' ')[0].Split(':')[1]; ent.StripName = (AssociatedChannelInfo.Split(' ').Count() > 1) ? AssociatedChannelInfo.Split(' ')[1].Split(':')[1] : ""; ent.ChannelName = (AssociatedChannelInfo.Split(' ').Count() > 2) ? AssociatedChannelInfo.Split(' ')[2].Split(':')[2] : ""; } ent.Remarks = Remarks; ent.ActionHistorys = ActionHistorys; ent.DeleteFlg = DeleteFlg; return ent; } #endregion } }