public IEntityAutocompleteSelectorFactory CreateDefaultIncomeCategoryAutocompleteSelectorFactory()
        {
            var incomeCategoryFilter = new IncomeCategoryJournalFilterViewModel();
            var commonServices       = ServicesConfig.CommonServices;
            IFileChooserProvider chooserIncomeProvider = new FileChooser();
            var employeeJournalFactory    = new EmployeeJournalFactory();
            var subdivisionJournalFactory = new SubdivisionJournalFactory();
            var incomeFactory             = new IncomeCategorySelectorFactory();

            return(new IncomeCategoryAutoCompleteSelectorFactory(
                       commonServices,
                       incomeCategoryFilter,
                       chooserIncomeProvider,
                       employeeJournalFactory,
                       subdivisionJournalFactory,
                       incomeFactory));
        }
        public IEntityAutocompleteSelectorFactory CreateSimpleIncomeCategoryAutocompleteSelectorFactory()
        {
            var commonServices            = ServicesConfig.CommonServices;
            var employeeJournalFactory    = new EmployeeJournalFactory();
            var subdivisionJournalFactory = new SubdivisionJournalFactory();
            var incomeFactory             = new IncomeCategorySelectorFactory();

            var incomeCategoryAutocompleteSelectorFactory =
                new SimpleEntitySelectorFactory <IncomeCategory, IncomeCategoryViewModel>(
                    () =>
            {
                var incomeCategoryJournalViewModel =
                    new SimpleEntityJournalViewModel <IncomeCategory, IncomeCategoryViewModel>(
                        x => x.Name,
                        () => new IncomeCategoryViewModel(
                            EntityUoWBuilder.ForCreate(),
                            UnitOfWorkFactory.GetDefaultFactory,
                            commonServices,
                            employeeJournalFactory,
                            subdivisionJournalFactory,
                            incomeFactory
                            ),
                        node => new IncomeCategoryViewModel(
                            EntityUoWBuilder.ForOpen(node.Id),
                            UnitOfWorkFactory.GetDefaultFactory,
                            commonServices,
                            employeeJournalFactory,
                            subdivisionJournalFactory,
                            incomeFactory
                            ),
                        UnitOfWorkFactory.GetDefaultFactory,
                        commonServices
                        )
                {
                    SelectionMode = JournalSelectionMode.Single
                };
                return(incomeCategoryJournalViewModel);
            });

            return(incomeCategoryAutocompleteSelectorFactory);
        }