コード例 #1
0
 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);
 }
コード例 #2
0
        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);
        }