private void HandleDeletePart(ProjectPartViewModel model) { model = _currentModel; var msg = new DialogMessage(string.Format("确定要删除部位:{0}吗?", model.PartName), result => { if (result == System.Windows.MessageBoxResult.Yes) { try { DbContext.DeleteObject(model.Entity); DbContext.SaveChanges(); //从视图中删除 model.ParentViewModel.Children.Remove(model); } catch (Exception ex) { Messenger.Default.Send <Exception>(ex); } } }); msg.Caption = "确定要删除吗?"; msg.Button = MessageBoxButton.YesNo; msg.Icon = MessageBoxImage.Question; Messenger.Default.Send <DialogMessage>(msg); }
private void HandleAddPart(ProjectPartViewModel model) { model = _currentModel; try { ProjectPart newPart = new ProjectPart(); newPart.Id = Guid.NewGuid(); newPart.PartName = "新部位"; newPart.ParentPart = model.ProjectPartID; DbContext.AddToProjectParts(newPart); DbContext.SaveChanges(); ProjectPartViewModel newModel = new ProjectPartViewModel(model, newPart, GetChildren); model.Children.Add(newModel); } catch (Exception ex) { Messenger.Default.Send <Exception>(ex); } }
private bool CanAddPart(ProjectPartViewModel obj) { if (_currentModel != null && CurrentApps.Count == 0) { return(true); } else { return(false); } }
private bool CanCreateApp(ProjectPartViewModel obj) { if (_currentModel != null && _currentModel.Children.Count == 0) { return(true); } else { return(false); } }
private bool CanRenamePart(ProjectPartViewModel obj) { if (_currentModel == null) { return(false); } else { return(true); } }
private void HandleRefreshApps(ProjectPartViewModel model, bool forceFromDB) { _currentModel = model; if (model != null) { if (model.Children != null && model.Children.Count > 0) { //has children CurrentApps.Clear(); } else { //get entity from cache IEnumerable <App> dataQuery = null; if (forceFromDB) { //clear cache foreach (var item in CurrentApps) { DbContext.Detach(item); } } else { var q1 = from i in DbContext.Entities where i.Entity is App select i.Entity; var q2 = from i in q1.OfType <App>() where i.ProjectPartID == model.ProjectPartID select i; if (q2.Count() != 0) { dataQuery = q2; //CurrentApps.Clear(); //CurrentApps.Load(q2); } } if (dataQuery == null) { dataQuery = from i in DbContext.Apps where i.ProjectPartID == model.ProjectPartID select i; } CurrentApps.Clear(); CurrentApps.Load(dataQuery); } } }
private bool CanDeletePart(ProjectPartViewModel obj) { //不能是空结点 //不能为根结点 //不能有子结点 //不能有测点与之关联 if (_currentModel != null && _currentModel.ParentViewModel != null && _currentModel.Children.Count == 0 && CurrentApps.Count == 0) { return(true); } else { return(false); } }
//[Conditional("DEBUG")] //private void InitialPart() //{ // ProjectPartViewModel root = new ProjectPartViewModel(); // root.PartName = "根节点"; // List<ProjectPartViewModel> list1 = new List<ProjectPartViewModel>(); // for (int i = 0; i < 3; i++) // { // ProjectPartViewModel levelone = new ProjectPartViewModel(); // levelone.PartName = "第一层" + i.ToString(); // List<ProjectPartViewModel> list2 = new List<ProjectPartViewModel>(); // for (int j = 0; j < 5; j++) // { // ProjectPartViewModel leveltwo = new ProjectPartViewModel(); // leveltwo.PartName = "第二层" + j.ToString(); // list2.Add(leveltwo); // } // levelone.Children=new ObservableCollection<ProjectPartViewModel>(list2); // list1.Add(levelone); // } // root.Children = new ObservableCollection<ProjectPartViewModel>(list1); // _fristLevel = new List<ProjectPartViewModel>() { root }; //} public ObservableCollection <ProjectPartViewModel> GetChildren(ProjectPartViewModel parent) { Guid?parentKey = null; if (parent != null) { //if entity is null,get the first level nodes parentKey = parent.Entity.Id; } var query = from i in DbContext.ProjectParts where i.ParentPart == parentKey select new ProjectPartViewModel(parent, i, GetChildren); var obc = new ObservableCollection <ProjectPartViewModel>(query); return(obc); }
private void HandleAttachApp(ProjectPartViewModel model) { var msg = new NotificationMessageAction <List <string> >("请将需要关联的测点名称粘贴到下面的列表中", (result) => { try { DbContext.UpdateAppsProjectByNames(_currentModel.ProjectPartID, result); //refresh current HandleRefreshApps(_currentModel, true); } catch (Exception ex) { Messenger.Default.Send <Exception>(ex); } }); Messenger.Default.Send <NotificationMessageAction <List <string> > >(msg); }
public static ProjectPartViewModel ToViewModel(this ProjectPart part) { var model = new ProjectPartViewModel(); model.Description = part.Description; model.Link = part.Link; model.Manufacturer = part.Manufacturer; model.Name = part.Name; model.PartNumber = part.PartNumber; model.Price = part.Price; model.ExtraCost = part.ExtraCost; model.ProjectID = part.ProjectID; model.ProjectName = part.Project?.Name; model.ProjectPartID = part.ProjectPartID; model.Quantity = part.Quantity; model.QuantityPurchased = part.QuantityPurchased; model.QuantityInstalled = part.QuantityInstalled; model.ExcludeFromTotal = part.ExcludeFromTotal; return(model); }
private void HandleRenamePart(ProjectPartViewModel model) { model = _currentModel; var msg = new NotificationMessageAction <string>("请输入新的名称", (result) => { if (result != null && result.Trim().Length != 0) { try { model.PartName = result.Trim(); DbContext.UpdateObject(model.Entity); DbContext.SaveChanges(); } catch (Exception ex) { Messenger.Default.Send <Exception>(ex); } } }); Messenger.Default.Send <NotificationMessageAction <string> >(msg); }
private void HandleRefreshApps(ProjectPartViewModel model) { HandleRefreshApps(model, false); }
private void HandleCreateApp(ProjectPartViewModel model) { MainWindowViewModel.Instance.ShowCreateApp(DbContext, _currentModel.Entity, _currentApps); }
/// <summary> /// convert part to project part list model /// </summary> /// <param name="part"></param> /// <returns></returns> public ProjectPartViewModel ConvertToListView(Part part) { ProjectPartViewModel model = new ProjectPartViewModel(); var _dynamicsPartRepository = new PartDynamicsRepository(); var _customerDynamicsRepository = new CustomerDynamicsRepository(); var _foundryDynamicsRepository = new FoundryDynamicsRepository(); var _htsNumberRepository = new HtsNumberRepository(); var _partTypeRepository = new PartTypeRepository(); var _partStatusRepository = new PartStatusRepository(); var dynamicsPart = _dynamicsPartRepository.GetPartMaster(part.Number); var dynamicsCustomer = _customerDynamicsRepository.GetCustomer(part.CustomerId); var dynamicsFoundry = _foundryDynamicsRepository.GetFoundry(part.FoundryId); var htsNumber = _htsNumberRepository.GetHtsNumber(part.HtsNumberId); var partType = _partTypeRepository.GetPartType(part.PartTypeId); var partStatus = _partStatusRepository.GetPartStatus(part.PartStatusId); model.PartId = part.PartId; model.PartNumber = (!string.IsNullOrEmpty(part.Number)) ? part.Number : "N/A"; model.PartDescription = (dynamicsPart != null && !string.IsNullOrEmpty(dynamicsPart.ITEMDESC)) ? dynamicsPart.ITEMDESC : "N/A"; model.CustomerId = part.CustomerId; model.CustomerName = (dynamicsCustomer != null && !string.IsNullOrEmpty(dynamicsCustomer.SHRTNAME)) ? dynamicsCustomer.SHRTNAME : "N/A"; model.FoundryId = part.FoundryId; model.FoundryName = (dynamicsFoundry != null && !string.IsNullOrEmpty(dynamicsFoundry.VENDSHNM)) ? dynamicsFoundry.VENDSHNM : "N/A"; model.HtsNumberId = part.HtsNumberId; model.HtsNumber = (htsNumber != null && !string.IsNullOrEmpty(htsNumber.Description)) ? htsNumber.Description + "(" + (htsNumber.DutyRate * 100).ToString() + "%)" : "N/A"; model.PartTypeId = part.PartTypeId; model.PartTypeDescription = (partType != null && !string.IsNullOrEmpty(partType.Description)) ? partType.Description : "N/A"; model.PartStatusId = part.PartStatusId; model.PartStatusDescription = (partStatus != null && !string.IsNullOrEmpty(partStatus.Description)) ? partStatus.Description : "N/A"; model.IsProject = false; if (_dynamicsPartRepository != null) { _dynamicsPartRepository.Dispose(); _dynamicsPartRepository = null; } if (_customerDynamicsRepository != null) { _customerDynamicsRepository.Dispose(); _customerDynamicsRepository = null; } if (_foundryDynamicsRepository != null) { _foundryDynamicsRepository.Dispose(); _foundryDynamicsRepository = null; } if (_htsNumberRepository != null) { _htsNumberRepository.Dispose(); _htsNumberRepository = null; } if (_partTypeRepository != null) { _partTypeRepository.Dispose(); _partTypeRepository = null; } if (_partStatusRepository != null) { _partStatusRepository.Dispose(); _partStatusRepository = null; } return(model); }