using Prism.Events; using Prism.Services.Dialogs; using SWS.CAD.Event; using SWS.CAD.ViewModels.myViewModelBase; using SWS.Commons; using SWS.Model; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using Unity; using static Bricscad.Quad.QuadSelectionData; namespace SWS.CAD.ViewModels { public class DialogPreCheckInViewModel : DialogBase, IDialogAware { private ObservableCollection _listPro = new ObservableCollection(); /// /// 属性列表 /// public ObservableCollection listPro { get { return _listPro; } set { _listPro = value; RaisePropertyChanged(nameof(listPro)); } } IEventAggregator eventAggregator; public DialogPreCheckInViewModel() { title = "检入"; eventAggregator = GlobalObject.container.Resolve(); eventAggregator.GetEvent().Subscribe(CheckInResult, ThreadOption.UIThread, true); } public string Title => ""; public event Action RequestClose; public bool CanCloseDialog() { return true; } public void OnDialogClosed() { } private string _TagNumber; /// /// 选中的位号 /// public string TagNumber { get { return _TagNumber; } set { _TagNumber = value; RaisePropertyChanged(nameof(TagNumber)); } } private List handles = new List(); private ec_drawing_file objDwg; public async void OnDialogOpened(IDialogParameters parameters) { objDwg = parameters.GetValue(GlobalObject.dialogPar.info.ToString()); handles = parameters.GetValue>(GlobalObject.dialogPar.para1.ToString()); var lines= parameters.GetValue(GlobalObject.dialogPar.para2.ToString()); #region 添加属性 ObservableCollection listPropertys = new ObservableCollection(); var model = new propertyModel() { Id = "DrawingNo", DisplayText = "图号", GroupName = "常用", PropertyValue = "", ControlTypeName = PROPERTYType.TextBox,IsBasicGroup=true }; listPropertys.Add(model); model = new propertyModel() { Id = "DrawingFile", DisplayText = "图名", GroupName = "常用", PropertyValue = objDwg.DrawingFileName, ControlTypeName = PROPERTYType.TextBox, IsEnable = false, IsBasicGroup = true }; listPropertys.Add(model); model = new propertyModel() { Id = "PageNos", DisplayText = "页码", GroupName = "常用", PropertyValue = "", ControlTypeName = PROPERTYType.TextBox, IsBasicGroup = true }; listPropertys.Add(model); model = new propertyModel() { Id = "Cables", DisplayText = "电缆位号", GroupName = "常用", PropertyValue = "", ControlTypeName = PROPERTYType.TextBox, IsBasicGroup = true }; listPropertys.Add(model); model = new propertyModel() { Id = "IsMaterial", DisplayText = "是否影响填料函", GroupName = "常用", PropertyValue = "", ControlTypeName = PROPERTYType.CheckBox, IsBasicGroup = true }; listPropertys.Add(model); model = new propertyModel() { Id = "Remark", DisplayText = "修改内容", GroupName = "常用", PropertyValue = "", ControlTypeName = PROPERTYType.TextBox , IsBasicGroup = true }; listPropertys.Add(model); //List listType=new List(); //listType.Add(new KeyValueModel() { Key = "新增", Value = "新增" }); //listType.Add(new KeyValueModel() { Key = "修改", Value = "修改" }); //listType.Add(new KeyValueModel() { Key = "删除", Value = "删除" }); Dictionary listType = new Dictionary(); listType.Add("新增", "新增"); listType.Add("修改", "修改"); listType.Add("删除", "删除"); model = new propertyModel() { Id = "Type", DisplayText = "修改属性", GroupName = "常用", PropertyValue = "", ControlTypeName = PROPERTYType.ComboBox, Item = listType, IsBasicGroup = true }; listPropertys.Add(model); model = new propertyModel() { Id = "cloud", DisplayText = "关联云线", GroupName = "常用", PropertyValue = lines, ControlTypeName = PROPERTYType.TextBox , IsBasicGroup = true }; listPropertys.Add(model); model = new propertyModel() { Id = "CreateTime", DisplayText = "日期", GroupName = "常用", PropertyValue = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), ControlTypeName = PROPERTYType.TextBox, IsEnable = false, IsBasicGroup = true }; listPropertys.Add(model); model = new propertyModel() { Id = "CreateUserID", DisplayText = "系统修改人", GroupName = "常用", PropertyValue = GlobalObject.userInfo.userId, ControlTypeName = PROPERTYType.TextBox, IsEnable = false, IsBasicGroup = true }; listPropertys.Add(model); model = new propertyModel() { Id = "IsProcess", DisplayText = "是否影响生产设计", GroupName = "常用", PropertyValue = "", ControlTypeName = PROPERTYType.CheckBox, IsBasicGroup = true }; listPropertys.Add(model); //List listOtherDwg = new List(); //foreach (var name in GlobalObject.AllDwgName) //{ // listOtherDwg.Add(new KeyValueModel() { Key = name, Value=name }); //} Dictionary listOtherDwg = new Dictionary(); foreach (var name in GlobalObject.AllDwgName) { listOtherDwg.Add(name, name); } model = new propertyModel() { Id = "otherDwgIds", DisplayText = "涉及其他图纸名字", GroupName = "常用", PropertyValue = "", ControlTypeName = PROPERTYType.MultiSelectComboBox, Item = listOtherDwg , IsBasicGroup = true }; listPropertys.Add(model); //List listUser = new List(); //if (objDwg.AllUsersCanEdit != null) //{ // foreach (var user in objDwg.AllUsersCanEdit) // { // listUser.Add(new KeyValueModel() { Key = user, Value = user }); // } //} Dictionary listUser = new Dictionary(); if (objDwg.AllUsersCanEdit != null) { foreach (var user in objDwg.AllUsersCanEdit) { listUser.Add(user, user); } } model = new propertyModel() { Id = "NoticeUser", DisplayText = "平台通知对方", GroupName = "常用", PropertyValue = "", ControlTypeName = PROPERTYType.MultiSelectComboBox, Item = listUser, IsBasicGroup = true }; listPropertys.Add(model); model = new propertyModel() { Id = "ApproveByAdmin", DisplayText = "需要生产设计主管确认", GroupName = "常用", PropertyValue = "", ControlTypeName = PROPERTYType.CheckBox, IsBasicGroup = true }; listPropertys.Add(model); listPro = listPropertys; #endregion } public override void ExecuteOKCommandAsync(object para) { ec_drawing_syn syn = new ec_drawing_syn(); syn.FolderId = objDwg.FolderId; syn.DrawingFileID = objDwg.DrawingFileID; syn.DrawingNo = listPro[0].PropertyValue; syn.DrawingFile = listPro[1].PropertyValue; syn.PageNos = listPro[2].PropertyValue; syn.Cables = listPro[3].PropertyValue; if (string.IsNullOrEmpty(listPro[4].PropertyValue)) { syn.IsMaterial = 0; } else { syn.IsMaterial = bool.Parse(listPro[4].PropertyValue) ? 1 : 0; } syn.Remark = listPro[5].PropertyValue; syn.Type = listPro[6].PropertyValue; syn.cloud = listPro[7].PropertyValue; syn.CreateTime = DateTime.Parse(listPro[8].PropertyValue); syn.CreateUserID = listPro[9].PropertyValue; if (string.IsNullOrEmpty(listPro[10].PropertyValue)) { syn.IsProcess = 0; } else { syn.IsProcess = bool.Parse(listPro[10].PropertyValue) ? 1 : 0; } syn.otherDwgIds = listPro[11].PropertyValue; //syn.DrawingNo = listPro[12].PropertyValue; if (string.IsNullOrEmpty(listPro[13].PropertyValue)) { syn.ApproveByAdmin = 0; } else { syn.ApproveByAdmin = bool.Parse(listPro[13].PropertyValue) ? 1 : 0; } CheckInModel model = new CheckInModel(); model.handles = handles; model.dwgObj = objDwg; model.syn = syn; eventAggregator.GetEvent().Publish(model); } private void CheckInResult(bool flag) { if (flag) { IDialogParameters resPara = new Prism.Services.Dialogs.DialogParameters(); //resPara.Add(GlobalObject.dialogPar.info.ToString(), TagNumber); RequestClose.Invoke(new DialogResult(ButtonResult.Yes, resPara)); } } public override void ExecuteCloseCommand(object parameter) { if (parameter as string == "ClickNo") { DialogResult res = new DialogResult(ButtonResult.No); RequestClose.Invoke(res); } else { RequestClose.Invoke(new DialogResult(ButtonResult.Cancel)); } this.Dispose(); } } }