Exemple #1
0
        public CashRequestJournalViewModel(
            CashRequestJournalFilterViewModel filterViewModel,
            IUnitOfWorkFactory unitOfWorkFactory,
            ICommonServices commonServices,
            IFileChooserProvider fileChooserProvider,
            IEmployeeRepository employeeRepository,
            CashRepository cashRepository,
            ConsoleInteractiveService consoleInteractiveService
            ) : base(filterViewModel, unitOfWorkFactory, commonServices)
        {
            this.unitOfWorkFactory         = unitOfWorkFactory ?? throw new ArgumentNullException(nameof(unitOfWorkFactory));
            this.fileChooserProvider       = fileChooserProvider ?? throw new ArgumentNullException(nameof(fileChooserProvider));
            this.employeeRepository        = employeeRepository ?? throw new ArgumentNullException(nameof(employeeRepository));
            this.cashRepository            = cashRepository ?? throw new ArgumentNullException(nameof(cashRepository));
            this.consoleInteractiveService = consoleInteractiveService ?? throw new ArgumentNullException(nameof(consoleInteractiveService));

            TabName = "Журнал заявок ДС";

            UpdateOnChanges(
                typeof(CashRequest),
                typeof(CashRequestSumItem),
                typeof(Subdivision),
                typeof(Employee)
                );
        }
Exemple #2
0
        public CashRequestViewModel(
            IEntityUoWBuilder uowBuilder,
            IUnitOfWorkFactory unitOfWorkFactory,
            ICommonServices commonServices,
            IFileChooserProvider fileChooserProvider,
            IEmployeeRepository employeeRepository,
            CashRepository cashRepository,
            ConsoleInteractiveService consoleInteractiveService
            ) : base(uowBuilder, unitOfWorkFactory, commonServices)
        {
            this.uowBuilder                = uowBuilder ?? throw new ArgumentNullException(nameof(uowBuilder));
            this.cashRepository            = cashRepository ?? throw new ArgumentNullException(nameof(cashRepository));
            this.unitOfWorkFactory         = unitOfWorkFactory ?? throw new ArgumentNullException(nameof(unitOfWorkFactory));
            this.consoleInteractiveService = consoleInteractiveService ?? throw new ArgumentNullException(nameof(consoleInteractiveService));
            var filterViewModel = new ExpenseCategoryJournalFilterViewModel {
                ExcludedIds    = CategoryRepository.ExpenseSelfDeliveryCategories(UoW).Select(x => x.Id),
                HidenByDefault = true
            };

            ExpenseCategoryAutocompleteSelectorFactory =
                new SimpleEntitySelectorFactory <ExpenseCategory, ExpenseCategoryViewModel>(
                    () =>
            {
                var expenseCategoryJournalViewModel =
                    new SimpleEntityJournalViewModel <ExpenseCategory, ExpenseCategoryViewModel>(
                        x => x.Name,
                        () => new ExpenseCategoryViewModel(
                            EntityUoWBuilder.ForCreate(),
                            unitOfWorkFactory,
                            ServicesConfig.CommonServices,
                            fileChooserProvider,
                            filterViewModel
                            ),
                        node => new ExpenseCategoryViewModel(
                            EntityUoWBuilder.ForOpen(node.Id),
                            unitOfWorkFactory,
                            ServicesConfig.CommonServices,
                            fileChooserProvider,
                            filterViewModel
                            ),
                        unitOfWorkFactory,
                        ServicesConfig.CommonServices
                        )
                {
                    SelectionMode = JournalSelectionMode.Single
                };
                expenseCategoryJournalViewModel.SetFilter(filterViewModel,
                                                          filter => Restrictions.Not(Restrictions.In("Id", filter.ExcludedIds.ToArray())));

                return(expenseCategoryJournalViewModel);
            });

            var expenseCategorySelectorFactory =
                CurrentEmployee = employeeRepository.GetEmployeeForCurrentUser(UoW);

            if (uowBuilder.IsNewEntity)
            {
                TabName = "Создание новой заявки на выдачу ДС";
            }
            else
            {
                TabName = $"{Entity.Title}";
            }

            int userId  = ServicesConfig.CommonServices.UserService.CurrentUserId;
            var isAdmin = ServicesConfig.CommonServices.UserService.GetCurrentUser(UoW).IsAdmin;

            IsAdminPanelVisible = isAdmin;

            var currentRole = getUserRole(userId);

            UserRole = currentRole;
            if (!dialogLoadedOnce)
            {
                savedUserRole    = UserRole;
                dialogLoadedOnce = true;
            }
            if (isAdmin)
            {
                UserRole = savedUserRole;
            }
            IsNewEntity = uowBuilder.IsNewEntity;
            ConfigureEntityChangingRelations();
        }