private void CreateAddWriteoffItemCommand() { AddWriteoffItemCommand = new DelegateCommand( () => { var fuelTypeJournalViewModel = new SimpleEntityJournalViewModel <FuelType, FuelTypeViewModel>(x => x.Name, () => new FuelTypeViewModel(EntityUoWBuilder.ForCreate(), unitOfWorkFactory, commonServices), (node) => new FuelTypeViewModel(EntityUoWBuilder.ForOpen(node.Id), unitOfWorkFactory, commonServices), QS.DomainModel.UoW.UnitOfWorkFactory.GetDefaultFactory, commonServices ); fuelTypeJournalViewModel.SetRestriction(() => { return(Restrictions.Not(Restrictions.In(Projections.Id(), Entity.ObservableFuelWriteoffDocumentItems.Select(x => x.FuelType.Id).ToArray()))); }); fuelTypeJournalViewModel.SelectionMode = JournalSelectionMode.Single; fuelTypeJournalViewModel.OnEntitySelectedResult += (sender, e) => { var node = e.SelectedNodes.FirstOrDefault(); if (node == null) { return; } Entity.AddNewWriteoffItem(UoW.GetById <FuelType>(node.Id)); }; TabParent.AddSlaveTab(this, fuelTypeJournalViewModel); }, () => CanEdit ); AddWriteoffItemCommand.CanExecuteChangedWith(this, x => CanEdit); }
private void CreateAddWriteoffItemCommand() { AddWriteoffItemCommand = new DelegateCommand( () => { var fuelTypeJournalViewModel = new SimpleEntityJournalViewModel <FuelType, FuelTypeViewModel>(x => x.Name, () => new FuelTypeViewModel(EntityUoWBuilder.ForCreate(), unitOfWorkFactory, commonServices), (node) => new FuelTypeViewModel(EntityUoWBuilder.ForOpen(node.Id), unitOfWorkFactory, commonServices), QS.DomainModel.UoW.UnitOfWorkFactory.GetDefaultFactory, commonServices ); fuelTypeJournalViewModel.SetRestriction(() => { return(Restrictions.Not(Restrictions.In(Projections.Id(), Entity.ObservableFuelWriteoffDocumentItems.Select(x => x.FuelType.Id).ToArray()))); }); fuelTypeJournalViewModel.SelectionMode = JournalSelectionMode.Single; fuelTypeJournalViewModel.OnEntitySelectedResult += (sender, e) => { var node = e.SelectedNodes.FirstOrDefault(); if (node == null) { return; } Entity.AddNewWriteoffItem(UoW.GetById <FuelType>(node.Id)); }; var fuelTypePermissionSet = commonServices.PermissionService.ValidateUserPermission(typeof(FuelType), commonServices.UserService.CurrentUserId); if (fuelTypePermissionSet.CanRead && !fuelTypePermissionSet.CanUpdate) { var viewAction = new JournalAction("Просмотр", (selected) => selected.Any(), (selected) => true, (selected) => { var tab = fuelTypeJournalViewModel.GetTabToOpen(typeof(FuelType), selected.First().GetId()); fuelTypeJournalViewModel.TabParent.AddTab(tab, fuelTypeJournalViewModel); } ); (fuelTypeJournalViewModel.NodeActions as IList <IJournalAction>)?.Add(viewAction); } TabParent.AddSlaveTab(this, fuelTypeJournalViewModel); }, () => CanEdit ); AddWriteoffItemCommand.CanExecuteChangedWith(this, x => CanEdit); }