public UserSettingsViewModel(
            IEntityUoWBuilder uowBuilder,
            IUnitOfWorkFactory unitOfWorkFactory,
            ICommonServices commonServices,
            IEmployeeService employeeService,
            ISubdivisionParametersProvider subdivisionParametersProvider,
            ISubdivisionJournalFactory subdivisionJournalFactory,
            ICounterpartyJournalFactory counterpartySelectorFactory,
            ISubdivisionRepository subdivisionRepository,
            INomenclatureFixedPriceRepository nomenclatureFixedPriceRepository)
            : base(uowBuilder, unitOfWorkFactory, commonServices)
        {
            _employeeService = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            _subdivisionParametersProvider    = subdivisionParametersProvider ?? throw new ArgumentNullException(nameof(subdivisionParametersProvider));
            _subdivisionRepository            = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository));
            _nomenclatureFixedPriceRepository =
                nomenclatureFixedPriceRepository ?? throw new ArgumentNullException(nameof(nomenclatureFixedPriceRepository));
            InteractiveService = commonServices.InteractiveService;
            SubdivisionSelectorDefaultFactory =
                (subdivisionJournalFactory ?? throw new ArgumentNullException(nameof(subdivisionJournalFactory)))
                .CreateDefaultSubdivisionAutocompleteSelectorFactory();
            CounterpartySelectorFactory =
                (counterpartySelectorFactory ?? throw new ArgumentNullException(nameof(counterpartySelectorFactory)))
                .CreateCounterpartyAutocompleteSelectorFactory();

            SetPermissions();

            if (UserIsCashier)
            {
                ConfigureCashSorting();
            }
        }
        private void CreateNewDependencies()
        {
            _cashDistributionCommonOrganisationProvider =
                new CashDistributionCommonOrganisationProvider(new OrganizationParametersProvider(new ParametersProvider()));

            _subdivisionParametersProvider = new SubdivisionParametersProvider(new ParametersProvider());
            _wageCalculationRepository     = new WageCalculationRepository();
            _employeeRepository            = new EmployeeRepository();
            _warehouseRepository           = new WarehouseRepository();
            _routeListRepository           = new RouteListRepository(new StockRepository(), new BaseParametersProvider(new ParametersProvider()));
        }
Example #3
0
        public EmployeesJournalViewModel(
            EmployeeFilterViewModel filterViewModel,
            IAuthorizationServiceFactory authorizationServiceFactory,
            IEmployeeWageParametersFactory employeeWageParametersFactory,
            IEmployeeJournalFactory employeeJournalFactory,
            ISubdivisionJournalFactory subdivisionJournalFactory,
            IEmployeePostsJournalFactory employeePostsJournalFactory,
            ICashDistributionCommonOrganisationProvider cashDistributionCommonOrganisationProvider,
            ISubdivisionParametersProvider subdivisionParametersProvider,
            IWageCalculationRepository wageCalculationRepository,
            IEmployeeRepository employeeRepository,
            IWarehouseRepository warehouseRepository,
            IRouteListRepository routeListRepository,
            UserSettings userSettings,
            IValidationContextFactory validationContextFactory,
            IPhonesViewModelFactory phonesViewModelFactory,
            DriverApiUserRegisterEndpoint driverApiUserRegisterEndpoint,
            ICommonServices commonServices,
            IUnitOfWorkFactory unitOfWorkFactory,
            IAttachmentsViewModelFactory attachmentsViewModelFactory) : base(filterViewModel, unitOfWorkFactory, commonServices)
        {
            TabName = "Журнал сотрудников";

            _authorizationServiceFactory =
                authorizationServiceFactory ?? throw new ArgumentNullException(nameof(authorizationServiceFactory));
            _authorizationService          = _authorizationServiceFactory.CreateNewAuthorizationService();
            _employeeWageParametersFactory =
                employeeWageParametersFactory ?? throw new ArgumentNullException(nameof(employeeWageParametersFactory));
            _employeeJournalFactory      = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            _subdivisionJournalFactory   = subdivisionJournalFactory ?? throw new ArgumentNullException(nameof(subdivisionJournalFactory));
            _employeePostsJournalFactory =
                employeePostsJournalFactory ?? throw new ArgumentNullException(nameof(employeePostsJournalFactory));
            _cashDistributionCommonOrganisationProvider =
                cashDistributionCommonOrganisationProvider ??
                throw new ArgumentNullException(nameof(cashDistributionCommonOrganisationProvider));
            _subdivisionParametersProvider = subdivisionParametersProvider ?? throw new ArgumentNullException(nameof(subdivisionParametersProvider));
            _wageCalculationRepository     = wageCalculationRepository ?? throw new ArgumentNullException(nameof(wageCalculationRepository));
            _employeeRepository            = employeeRepository ?? throw new ArgumentNullException(nameof(employeeRepository));
            _validationContextFactory      = validationContextFactory ?? throw new ArgumentNullException(nameof(validationContextFactory));
            _phonesViewModelFactory        = phonesViewModelFactory ?? throw new ArgumentNullException(nameof(phonesViewModelFactory));
            _driverApiUserRegisterEndpoint = driverApiUserRegisterEndpoint ?? throw new ArgumentNullException(nameof(driverApiUserRegisterEndpoint));
            _attachmentsViewModelFactory   = attachmentsViewModelFactory ?? throw new ArgumentNullException(nameof(attachmentsViewModelFactory));
            _warehouseRepository           = warehouseRepository ?? throw new ArgumentNullException(nameof(warehouseRepository));
            _routeListRepository           = routeListRepository ?? throw new ArgumentNullException(nameof(routeListRepository));
            _userSettings = userSettings ?? throw new ArgumentNullException(nameof(userSettings));

            UpdateOnChanges(typeof(Employee));
        }
        public EmployeeViewModel(
            IAuthorizationService authorizationService,
            IEmployeeWageParametersFactory employeeWageParametersFactory,
            IEmployeeJournalFactory employeeJournalFactory,
            ISubdivisionJournalFactory subdivisionJournalFactory,
            IEmployeePostsJournalFactory employeePostsJournalFactory,
            ICashDistributionCommonOrganisationProvider commonOrganisationProvider,
            ISubdivisionParametersProvider subdivisionParametersProvider,
            IWageCalculationRepository wageCalculationRepository,
            IEmployeeRepository employeeRepository,
            IUnitOfWorkGeneric <Employee> uowGeneric,
            ICommonServices commonServices,
            IValidationContextFactory validationContextFactory,
            IPhonesViewModelFactory phonesViewModelFactory,
            IWarehouseRepository warehouseRepository,
            IRouteListRepository routeListRepository,
            DriverApiUserRegisterEndpoint driverApiUserRegisterEndpoint,
            UserSettings userSettings,
            IUserRepository userRepository,
            BaseParametersProvider baseParametersProvider,
            IAttachmentsViewModelFactory attachmentsViewModelFactory,
            bool traineeToEmployee = false,
            INavigationManager navigationManager = null
            ) : base(commonServices?.InteractiveService, navigationManager)
        {
            _authorizationService         = authorizationService ?? throw new ArgumentNullException(nameof(authorizationService));
            EmployeeWageParametersFactory =
                employeeWageParametersFactory ?? throw new ArgumentNullException(nameof(employeeWageParametersFactory));
            EmployeeJournalFactory         = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            EmployeePostsJournalFactory    = employeePostsJournalFactory ?? throw new ArgumentNullException(nameof(employeePostsJournalFactory));
            SubdivisionJournalFactory      = subdivisionJournalFactory ?? throw new ArgumentNullException(nameof(subdivisionJournalFactory));
            _subdivisionParametersProvider = subdivisionParametersProvider ?? throw new ArgumentNullException(nameof(subdivisionParametersProvider));
            _wageCalculationRepository     = wageCalculationRepository ?? throw new ArgumentNullException(nameof(wageCalculationRepository));
            _employeeRepository            = employeeRepository ?? throw new ArgumentNullException(nameof(employeeRepository));
            _warehouseRepository           = warehouseRepository ?? throw new ArgumentNullException(nameof(warehouseRepository));
            _routeListRepository           = routeListRepository ?? throw new ArgumentNullException(nameof(routeListRepository));
            _driverApiUserRegisterEndpoint = driverApiUserRegisterEndpoint ?? throw new ArgumentNullException(nameof(driverApiUserRegisterEndpoint));
            _userSettings           = userSettings ?? throw new ArgumentNullException(nameof(userSettings));
            UoWGeneric              = uowGeneric ?? throw new ArgumentNullException(nameof(uowGeneric));
            _commonServices         = commonServices ?? throw new ArgumentNullException(nameof(commonServices));
            _userRepository         = userRepository ?? throw new ArgumentNullException(nameof(userRepository));
            _baseParametersProvider = baseParametersProvider ?? throw new ArgumentNullException(nameof(baseParametersProvider));

            if (commonOrganisationProvider == null)
            {
                throw new ArgumentNullException(nameof(commonOrganisationProvider));
            }

            if (validationContextFactory == null)
            {
                throw new ArgumentNullException(nameof(validationContextFactory));
            }

            if (phonesViewModelFactory == null)
            {
                throw new ArgumentNullException(nameof(phonesViewModelFactory));
            }

            ConfigureValidationContext(validationContextFactory);

            PhonesViewModel = phonesViewModelFactory.CreateNewPhonesViewModel(UoW);

            if (Entity.Id == 0)
            {
                Entity.OrganisationForSalary = commonOrganisationProvider.GetCommonOrganisation(UoW);
                FillHiddenCategories(traineeToEmployee);

                TabName = "Новый сотрудник";
            }
            else
            {
                TabName = Entity.GetPersonNameWithInitials();
            }

            AttachmentsViewModel = (attachmentsViewModelFactory ?? throw new ArgumentNullException(nameof(attachmentsViewModelFactory)))
                                   .CreateNewAttachmentsViewModel(Entity.ObservableAttachments);

            if (Entity.Phones == null)
            {
                Entity.Phones = new List <Phone>();
            }

            Entity.PropertyChanged += OnEntityPropertyChanged;

            organizations = UoW.GetAll <Organization>().ToList();

            CanRegisterMobileUser = string.IsNullOrWhiteSpace(Entity.AndroidLogin) && string.IsNullOrWhiteSpace(Entity.AndroidPassword);

            _employeePermissionSet = _commonServices.CurrentPermissionService.ValidateEntityPermission(typeof(Employee));

            if (!_employeePermissionSet.CanRead)
            {
                AbortOpening(PermissionsSettings.GetEntityReadValidateResult(typeof(Employee)));
            }

            SetPermissions();
        }
Example #5
0
        public ComplaintsJournalViewModel(
            IUnitOfWorkFactory unitOfWorkFactory,
            ICommonServices commonServices,
            IUndeliveredOrdersJournalOpener undeliveredOrdersJournalOpener,
            IEmployeeService employeeService,
            ICounterpartyJournalFactory counterpartySelectorFactory,
            IRouteListItemRepository routeListItemRepository,
            ISubdivisionParametersProvider subdivisionParametersProvider,
            ComplaintFilterViewModel filterViewModel,
            IFileDialogService fileDialogService,
            ISubdivisionRepository subdivisionRepository,
            IReportViewOpener reportViewOpener,
            IGtkTabsOpener gtkDialogsOpener,
            INomenclatureRepository nomenclatureRepository,
            IUserRepository userRepository,
            IOrderSelectorFactory orderSelectorFactory,
            IEmployeeJournalFactory employeeJournalFactory,
            ICounterpartyJournalFactory counterpartyJournalFactory,
            IDeliveryPointJournalFactory deliveryPointJournalFactory,
            ISubdivisionJournalFactory subdivisionJournalFactory,
            ISalesPlanJournalFactory salesPlanJournalFactory,
            INomenclatureJournalFactory nomenclatureSelector,
            IEmployeeSettings employeeSettings,
            IUndeliveredOrdersRepository undeliveredOrdersRepository) : base(filterViewModel, unitOfWorkFactory, commonServices)
        {
            this._unitOfWorkFactory         = unitOfWorkFactory ?? throw new ArgumentNullException(nameof(unitOfWorkFactory));
            this._commonServices            = commonServices ?? throw new ArgumentNullException(nameof(commonServices));
            _undeliveredOrdersJournalOpener = undeliveredOrdersJournalOpener ?? throw new ArgumentNullException(nameof(undeliveredOrdersJournalOpener));
            _employeeService               = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            _counterpartySelectorFactory   = counterpartySelectorFactory ?? throw new ArgumentNullException(nameof(counterpartySelectorFactory));
            _fileDialogService             = fileDialogService ?? throw new ArgumentNullException(nameof(fileDialogService));
            _subdivisionRepository         = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository));
            _routeListItemRepository       = routeListItemRepository ?? throw new ArgumentNullException(nameof(routeListItemRepository));
            _subdivisionParametersProvider = subdivisionParametersProvider ?? throw new ArgumentNullException(nameof(subdivisionParametersProvider));
            _reportViewOpener              = reportViewOpener ?? throw new ArgumentNullException(nameof(reportViewOpener));
            _gtkDlgOpener                = gtkDialogsOpener ?? throw new ArgumentNullException(nameof(gtkDialogsOpener));
            _nomenclatureRepository      = nomenclatureRepository ?? throw new ArgumentNullException(nameof(nomenclatureRepository));
            _userRepository              = userRepository ?? throw new ArgumentNullException(nameof(userRepository));
            _orderSelectorFactory        = orderSelectorFactory ?? throw new ArgumentNullException(nameof(orderSelectorFactory));
            _employeeJournalFactory      = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            _counterpartyJournalFactory  = counterpartyJournalFactory ?? throw new ArgumentNullException(nameof(counterpartyJournalFactory));
            _deliveryPointJournalFactory = deliveryPointJournalFactory ?? throw new ArgumentNullException(nameof(deliveryPointJournalFactory));
            _subdivisionJournalFactory   = subdivisionJournalFactory ?? throw new ArgumentNullException(nameof(subdivisionJournalFactory));
            _salesPlanJournalFactory     = salesPlanJournalFactory ?? throw new ArgumentNullException(nameof(salesPlanJournalFactory));
            _nomenclatureSelector        = nomenclatureSelector ?? throw new ArgumentNullException(nameof(nomenclatureSelector));
            _employeeSettings            = employeeSettings ?? throw new ArgumentNullException(nameof(employeeSettings));
            _undeliveredOrdersRepository =
                undeliveredOrdersRepository ?? throw new ArgumentNullException(nameof(undeliveredOrdersRepository));

            TabName = "Журнал рекламаций";

            RegisterComplaints();

            var threadLoader = DataLoader as ThreadDataLoader <ComplaintJournalNode>;

            threadLoader.MergeInOrderBy(x => x.Id, true);

            FinishJournalConfiguration();

            FilterViewModel.SubdivisionParametersProvider = subdivisionParametersProvider;
            FilterViewModel.EmployeeService = employeeService;

            var currentUserSettings        = userRepository.GetUserSettings(UoW, commonServices.UserService.CurrentUserId);
            var defaultSubdivision         = currentUserSettings.DefaultSubdivision;
            var currentEmployeeSubdivision = employeeService.GetEmployeeForUser(UoW, commonServices.UserService.CurrentUserId).Subdivision;

            FilterViewModel.CurrentUserSubdivision = currentEmployeeSubdivision;

            if (FilterViewModel.SubdivisionParametersProvider.GetOkkId() == currentEmployeeSubdivision.Id)
            {
                FilterViewModel.ComplaintStatus = ComplaintStatuses.Checking;
            }
            else
            {
                if (currentUserSettings.UseEmployeeSubdivision)
                {
                    FilterViewModel.Subdivision = currentEmployeeSubdivision;
                }
                else
                {
                    FilterViewModel.Subdivision = defaultSubdivision;
                }

                FilterViewModel.ComplaintStatus = currentUserSettings.DefaultComplaintStatus;
            }

            UpdateOnChanges(
                typeof(Complaint),
                typeof(ComplaintGuiltyItem),
                typeof(ComplaintResultOfCounterparty),
                typeof(ComplaintResultOfEmployees),
                typeof(Subdivision),
                typeof(ComplaintDiscussion),
                typeof(DeliveryPoint),
                typeof(Fine),
                typeof(Order),
                typeof(RouteList),
                typeof(RouteListItem),
                typeof(ComplaintObject)
                );
            this.DataLoader.ItemsListUpdated += (sender, e) => CurrentObjectChanged?.Invoke(this, new CurrentObjectChangedArgs(null));

            DataLoader.PostLoadProcessingFunc = BeforeItemsUpdated;
        }