コード例 #1
0
        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);
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
 private bool CanAddPart(ProjectPartViewModel obj)
 {
     if (_currentModel != null && CurrentApps.Count == 0)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #4
0
 private bool CanCreateApp(ProjectPartViewModel obj)
 {
     if (_currentModel != null && _currentModel.Children.Count == 0)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #5
0
 private bool CanRenamePart(ProjectPartViewModel obj)
 {
     if (_currentModel == null)
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
コード例 #6
0
        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);
                }
            }
        }
コード例 #7
0
 private bool CanDeletePart(ProjectPartViewModel obj)
 {
     //不能是空结点
     //不能为根结点
     //不能有子结点
     //不能有测点与之关联
     if (_currentModel != null && _currentModel.ParentViewModel != null && _currentModel.Children.Count == 0 && CurrentApps.Count == 0)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #8
0
        //[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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
 private void HandleRefreshApps(ProjectPartViewModel model)
 {
     HandleRefreshApps(model, false);
 }
コード例 #13
0
 private void HandleCreateApp(ProjectPartViewModel model)
 {
     MainWindowViewModel.Instance.ShowCreateApp(DbContext, _currentModel.Entity, _currentApps);
 }
コード例 #14
0
        /// <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);
        }