示例#1
0
        public UnallocatedBalancesJournalViewModel(
            IUnitOfWorkFactory unitOfWorkFactory,
            IInteractiveService interactiveService,
            IPaymentsRepository paymentsRepository,
            INavigationManager navigationManager,
            ICurrentPermissionService currentPermissionService,
            IDeliveryScheduleParametersProvider deliveryScheduleParametersProvider,
            ILifetimeScope scope,
            IDeleteEntityService deleteEntityService = null,
            params Action <UnallocatedBalancesJournalFilterViewModel>[] filterParams)
            : base(unitOfWorkFactory, interactiveService, navigationManager, deleteEntityService, currentPermissionService)
        {
            if (navigationManager == null)
            {
                throw new ArgumentNullException(nameof(navigationManager));
            }
            if (currentPermissionService == null)
            {
                throw new ArgumentNullException(nameof(currentPermissionService));
            }

            _paymentsRepository = paymentsRepository ?? throw new ArgumentNullException(nameof(paymentsRepository));

            _closingDocumentDeliveryScheduleId =
                (deliveryScheduleParametersProvider ?? throw new ArgumentNullException(nameof(deliveryScheduleParametersProvider)))
                .ClosingDocumentDeliveryScheduleId;
            _scope = scope ?? throw new ArgumentNullException(nameof(scope));

            TabName = "Журнал нераспределенных балансов";

            CreateFilter(filterParams);
            CreateAutomaticallyAllocationAction();
        }
示例#2
0
        public AdditionalLoadingSettingsViewModel(
            ILifetimeScope scope,
            IUnitOfWorkFactory unitOfWorkFactory,
            INavigationManager navigation,
            ICommonServices commonServices,
            IDeliveryRulesParametersProvider deliveryRulesParametersProvider)
            : base(unitOfWorkFactory, navigation)
        {
            if (scope == null)
            {
                throw new ArgumentNullException(nameof(scope));
            }
            if (commonServices == null)
            {
                throw new ArgumentNullException(nameof(commonServices));
            }
            _deliveryRulesParametersProvider = deliveryRulesParametersProvider ??
                                               throw new ArgumentNullException(nameof(deliveryRulesParametersProvider));
            _interactiveService          = commonServices.InteractiveService;
            _nomenclatureSelectorFactory = scope.Resolve <INomenclatureJournalFactory>();

            CanEdit = commonServices.CurrentPermissionService
                      .ValidateEntityPermission(typeof(AdditionalLoadingNomenclatureDistribution)).CanUpdate;

            BottlesCount            = _deliveryRulesParametersProvider.BottlesCountForFlyer;
            FastDeliveryMaxDistance = _deliveryRulesParametersProvider.MaxDistanceToLatestTrackPointKm;
            FlyerAdditionEnabled    = _deliveryRulesParametersProvider.AdditionalLoadingFlyerAdditionEnabled;

            Initialize();
        }
        public CounterpartyTalkViewModel(
            INavigationManager navigation,
            ITdiCompatibilityNavigation tdinavigation,
            IUnitOfWorkFactory unitOfWorkFactory,
            RouteListRepository routedListRepository,
            IInteractiveService interactiveService,
            MangoManager manager) : base(navigation, manager)
        {
            this.NavigationManager = navigation ?? throw new ArgumentNullException(nameof(navigation));
            this.tdiNavigation     = tdinavigation ?? throw new ArgumentNullException(nameof(navigation));

            this.routedListRepository = routedListRepository;
            this.interactiveService   = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
            UoW = unitOfWorkFactory.CreateWithoutRoot();

            if (ActiveCall.CounterpartyIds.Any())
            {
                var clients = UoW.GetById <Counterparty>(ActiveCall.CounterpartyIds);
                foreach (Counterparty client in clients)
                {
                    CounterpartyOrderViewModel model = new CounterpartyOrderViewModel(client, unitOfWorkFactory, tdinavigation, routedListRepository, this.MangoManager);
                    CounterpartyOrdersModels.Add(model);
                }
                currentCounterparty = CounterpartyOrdersModels.FirstOrDefault().Client;
            }
            else
            {
                throw new InvalidProgramException("Открыт диалог разговора с имеющимся контрагентом, но ни одного id контрагента не найдено.");
            }
        }
        public WayBillGeneratorViewModel(
            IUnitOfWorkFactory unitOfWorkFactory,
            IInteractiveService interactiveService,
            INavigationManager navigation,
            IWayBillDocumentRepository wayBillDocumentRepository,
            RouteGeometryCalculator calculator,
            IEmployeeJournalFactory employeeJournalFactory,
            IDocTemplateRepository docTemplateRepository,
            IFileChooserProvider fileChooserProvider) : base(unitOfWorkFactory, interactiveService, navigation)
        {
            EntityAutocompleteSelectorFactory = employeeJournalFactory?.CreateEmployeeAutocompleteSelectorFactory()
                                                ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            _fileChooser = fileChooserProvider ?? throw new ArgumentNullException(nameof(fileChooserProvider));

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

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

            Entity = new WayBillDocumentGenerator(
                UnitOfWorkFactory.CreateWithoutRoot(), wayBillDocumentRepository, calculator, docTemplateRepository);

            TabName = "Путевые листы для ФО";
            CreateCommands();
        }
示例#5
0
        public UpdateProcessViewModel(
            INavigationManager navigation,
            UpdateConfiguration configuration,
            IMySQLProvider mySQLProvider,
            IApplicationInfo applicationInfo,
            ParametersService parametersService,
            IInteractiveService interactive,
            IGuiDispatcher guiDispatcher) : base(navigation)
        {
            this.configuration     = configuration ?? throw new ArgumentNullException(nameof(configuration));
            SQLProvider            = mySQLProvider;
            this.applicationInfo   = applicationInfo ?? throw new ArgumentNullException(nameof(applicationInfo));
            this.parametersService = parametersService ?? throw new ArgumentNullException(nameof(parametersService));
            this.interactive       = interactive ?? throw new ArgumentNullException(nameof(interactive));
            this.guiDispatcher     = guiDispatcher ?? throw new ArgumentNullException(nameof(guiDispatcher));

            FileName = System.IO.Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
                "Резервные копии",
                String.Format("{0}{1:yyMMdd-HHmm}.sql", applicationInfo.ProductName, DateTime.Now)
                );

            IsModal = true;

            //FIXME Здесь проверка micro_updates оставлена для совместимости и возможности корректного обновления со старых версий программ. Удаление сделает невозможным начать обновление с установленного микроапдейта.
            dbVersion = this.parametersService.micro_updates != null?this.parametersService.micro_updates(typeof(Version)) : this.parametersService.version(typeof(Version));

            hops  = configuration.GetHopsToLast(dbVersion).ToArray();
            Title = String.Format("Обновление: {0} → {1}",
                                  dbVersion.VersionToShortString(),
                                  hops.Last().Destination.VersionToShortString());
        }
        public SmsSendPanelView(
            ICommonServices commonServices,
            ISmsPaymentRepository smsPaymentRepository,
            IFastPaymentRepository fastPaymentRepository,
            IFastPaymentParametersProvider fastPaymentParametersProvider)
        {
            if (commonServices == null)
            {
                throw new ArgumentNullException(nameof(commonServices));
            }
            _smsPaymentRepository          = smsPaymentRepository ?? throw new ArgumentNullException(nameof(smsPaymentRepository));
            _fastPaymentRepository         = fastPaymentRepository ?? throw new ArgumentNullException(nameof(fastPaymentRepository));
            _fastPaymentParametersProvider =
                fastPaymentParametersProvider ?? throw new ArgumentNullException(nameof(fastPaymentParametersProvider));
            var currentPermissionService = commonServices.CurrentPermissionService;

            _interactiveService = commonServices.InteractiveService;
            _phoneFormatter     = new PhoneFormatter(PhoneFormat.BracketWithWhitespaceLastTen);

            Build();
            _orderPermissionResult = currentPermissionService.ValidateEntityPermission(typeof(Order));
            _canSendSmsForAdditionalOrderStatuses =
                currentPermissionService.ValidatePresetPermission("can_send_sms_for_additional_order_statuses");
            _canSendSmsForPayFromYookassa  = currentPermissionService.ValidatePresetPermission("can_send_sms_for_pay_from_yookassa");
            _canSendSmsForPayFromSbpByCard = currentPermissionService.ValidatePresetPermission("can_send_sms_for_pay_from_sbp_by_card");
            Configure();
        }
示例#7
0
        public void CreateDefaultWageParameter_IfInstanceOfEmployeeIsNotNew_ThenDoNothing()
        {
            //arrange
            IWageParametersProvider    wageParametersProvider    = Substitute.For <IWageParametersProvider>();
            IWageCalculationRepository wageCalculationRepository = Substitute.For <IWageCalculationRepository>();
            var employee = new Employee {
                Id = 1
            };

            employee.WageParameters.Add(
                new EmployeeWageParameter()
            {
                StartDate         = new DateTime(2000, 01, 01),
                WageParameterItem = new FixedWageParameterItem()
            }
                );
            IInteractiveService interactiveService = Substitute.For <IInteractiveService>();

            //act
            employee.CreateDefaultWageParameter(wageCalculationRepository, wageParametersProvider, interactiveService);

            //assert
            Assert.That(employee.ObservableWageParameters.Count(), Is.EqualTo(1));
            Assert.That(
                employee.ObservableWageParameters
                .FirstOrDefault()
                .StartDate,
                Is.EqualTo(new DateTime(2000, 01, 01))
                );
        }
        public UpdateProcessViewModel(
            INavigationManager navigation,
            UpdateConfiguration configuration,
            IMySQLProvider mySQLProvider,
            IApplicationInfo applicationInfo,
            ParametersService parametersService,
            IInteractiveService interactive,
            IGuiDispatcher guiDispatcher) : base(navigation)
        {
            this.configuration     = configuration ?? throw new ArgumentNullException(nameof(configuration));
            SQLProvider            = mySQLProvider;
            this.applicationInfo   = applicationInfo ?? throw new ArgumentNullException(nameof(applicationInfo));
            this.parametersService = parametersService ?? throw new ArgumentNullException(nameof(parametersService));
            this.interactive       = interactive ?? throw new ArgumentNullException(nameof(interactive));
            this.guiDispatcher     = guiDispatcher ?? throw new ArgumentNullException(nameof(guiDispatcher));

            FileName = System.IO.Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
                "Резервные копии",
                String.Format("{0}{1:yyMMdd-HHmm}.sql", applicationInfo.ProductName, DateTime.Now)
                );

            IsModal = true;

            dbVersion = GetCurrentDBVersion();
            hops      = configuration.GetHopsToLast(dbVersion).ToArray();
            Title     = String.Format("Обновление: {0} → {1}",
                                      dbVersion.VersionToShortString(),
                                      hops.Last().Destination.VersionToShortString());
        }
        public MessagesJournalViewModel(IUnitOfWorkFactory unitOfWorkFactory, IInteractiveService interactiveService, INavigationManager navigation, ProstorSmsService prostorSmsService, WorkOrder workOrder = null) : base(unitOfWorkFactory, interactiveService, navigation)
        {
            this.prostorSmsService = prostorSmsService ?? throw new ArgumentNullException(nameof(prostorSmsService));

            if (workOrder != null && workOrder.Id > 0)
            {
                onlyOrderId = workOrder.Id;
                TabName     = $"Cообщения по заказу №{workOrder.Id} на {workOrder.Date:D} в {workOrder.Hour} часов";
            }
            else
            {
                TabName = "Отправленные сообщения";
            }


            var dataLoader = new ThreadDataLoader <MessagesJournalNode>(unitOfWorkFactory);

            dataLoader.AddQuery(ItemsQuery);
            DataLoader = dataLoader;

            //Обход проблемы с тем что SelectionMode одновременно управляет и выбором в журнале, и самим режмиом журнала.
            //То есть создает действие выбора. Удалить после того как появится рефакторинг действий журнала.
            SelectionMode = JournalSelectionMode.Multiple;
            NodeActionsList.Clear();
            CreateActions();

            UpdateOnChanges(typeof(SentMessage));
        }
        public AutomaticallyAllocationBalanceWindowViewModel(
            IInteractiveService interactiveService,
            INavigationManager navigationManager,
            IPaymentsRepository paymentsRepository,
            IOrderRepository orderRepository,
            IUnitOfWorkFactory uowFactory,
            UnallocatedBalancesJournalNode selectedUnallocatedBalancesNode,
            IList <UnallocatedBalancesJournalNode> loadedNodes,
            int closingDocumentDeliveryScheduleId) : base(navigationManager)
        {
            if (navigationManager == null)
            {
                throw new ArgumentNullException(nameof(navigationManager));
            }

            _interactiveService = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
            _paymentsRepository = paymentsRepository ?? throw new ArgumentNullException(nameof(paymentsRepository));
            _orderRepository    = orderRepository ?? throw new ArgumentNullException(nameof(orderRepository));
            _uow = (uowFactory ?? throw new ArgumentNullException(nameof(uowFactory))).CreateWithoutRoot();
            _selectedUnallocatedBalancesNode =
                selectedUnallocatedBalancesNode ?? throw new ArgumentNullException(nameof(selectedUnallocatedBalancesNode));
            _loadedNodes = loadedNodes ?? throw new ArgumentNullException(nameof(loadedNodes));
            _closingDocumentDeliveryScheduleId = closingDocumentDeliveryScheduleId;
            Resizable      = false;
            Deletable      = false;
            WindowPosition = WindowGravity.None;
        }
示例#11
0
        public EmployeeProcessingJournalViewModel(IUnitOfWorkFactory unitOfWorkFactory, IInteractiveService interactiveService, INavigationManager navigationManager,
                                                  IDeleteEntityService deleteEntityService, ILifetimeScope autofacScope,
                                                  NormRepository normRepository, BaseParameters baseParameters, IDataBaseInfo dataBaseInfo,
                                                  ICurrentPermissionService currentPermissionService = null)
            : base(unitOfWorkFactory, interactiveService, navigationManager, deleteEntityService, currentPermissionService)
        {
            UseSlider           = false;
            Title               = "Корректировка сотрудников";
            this.interactive    = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
            this.normRepository = normRepository ?? throw new ArgumentNullException(nameof(normRepository));
            this.baseParameters = baseParameters ?? throw new ArgumentNullException(nameof(baseParameters));
            this.dataBaseInfo   = dataBaseInfo ?? throw new ArgumentNullException(nameof(dataBaseInfo));
            AutofacScope        = autofacScope;
            JournalFilter       = Filter = AutofacScope.Resolve <EmployeeFilterViewModel>(new TypedParameter(typeof(JournalViewModelBase), this));

            //Обход проблемы с тем что SelectionMode одновременно управляет и выбором в журнале, и самим режимом журнала.
            //То есть создает действие выбора. Удалить после того как появится рефакторинг действий журнала.
            SelectionMode = JournalSelectionMode.Multiple;
            NodeActionsList.Clear();
            CreateActions();

            (DataLoader as ThreadDataLoader <EmployeeProcessingJournalNode>).PostLoadProcessingFunc = delegate(System.Collections.IList items, uint addedSince) {
                foreach (EmployeeProcessingJournalNode item in items)
                {
                    if (Results.ContainsKey(item.Id))
                    {
                        item.Result = Results[item.Id];
                    }
                }
            };
        }
示例#12
0
        public WayBillGeneratorViewModel(
            IUnitOfWorkFactory unitOfWorkFactory,
            IInteractiveService interactiveService,
            INavigationManager navigation,
            IWayBillDocumentRepository wayBillDocumentRepository,
            RouteGeometryCalculator calculator,
            EntityAutocompleteSelectorFactory <EmployeesJournalViewModel> entityAutocompleteSelectorFactory
            )
            : base(unitOfWorkFactory, interactiveService, navigation)
        {
            this.entityAutocompleteSelectorFactory = entityAutocompleteSelectorFactory ?? throw new ArgumentNullException(nameof(entityAutocompleteSelectorFactory));

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

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

            this.Entity = new WayBillDocumentGenerator(UnitOfWorkFactory.CreateWithoutRoot(), wayBillDocumentRepository, calculator);
            TabName     = "Путевые листы для ФО";
            CreateCommands();
        }
示例#13
0
        public void CreateDefaultWageParameter_IfInstanceOfEmployeeIsNewAndCategoryOfEmployeeIsOffice_ThenCreateManualWageParameter()
        {
            //arrange
            IWageParametersProvider    wageParametersProvider    = Substitute.For <IWageParametersProvider>();
            IWageCalculationRepository wageCalculationRepository = Substitute.For <IWageCalculationRepository>();
            var employee = new Employee {
                WageCalculationRepository = wageCalculationRepository,
                Category = EmployeeCategory.office
            };
            WageDistrictLevelRates levelRates = Substitute.For <WageDistrictLevelRates>();

            wageCalculationRepository.DefaultLevelForNewEmployees(null).ReturnsForAnyArgs(levelRates);
            IInteractiveService interactiveService = Substitute.For <IInteractiveService>();

            //act
            employee.CreateDefaultWageParameter(wageCalculationRepository, wageParametersProvider, interactiveService);

            //assert
            Assert.That(employee.ObservableWageParameters.Count(), Is.EqualTo(1));
            Assert.That(
                employee.ObservableWageParameters
                .FirstOrDefault()
                .WageParameterItem
                .WageParameterItemType,
                Is.EqualTo(WageParameterItemTypes.Manual)
                );
        }
 public UserCreateDbController(INavigationManager navigation, ILifetimeScope autofacScope, IInteractiveService interactive, IGuiDispatcher guiDispatcher)
 {
     this.navigation    = navigation ?? throw new ArgumentNullException(nameof(navigation));
     this.autofacScope  = autofacScope ?? throw new ArgumentNullException(nameof(autofacScope));
     this.interactive   = interactive ?? throw new ArgumentNullException(nameof(interactive));
     this.guiDispatcher = guiDispatcher ?? throw new ArgumentNullException(nameof(guiDispatcher));
 }
        public StockBalanceJournalViewModel(
            IUnitOfWorkFactory unitOfWorkFactory,
            IInteractiveService interactiveService,
            INavigationManager navigation,
            ILifetimeScope autofacScope,
            FeaturesService featuresService) : base(unitOfWorkFactory, interactiveService, navigation)
        {
            AutofacScope  = autofacScope;
            JournalFilter = Filter = AutofacScope.Resolve <StockBalanceFilterViewModel>(
                new TypedParameter(typeof(JournalViewModelBase), this));

            var dataLoader = new ThreadDataLoader <StockBalanceJournalNode>(unitOfWorkFactory);

            dataLoader.AddQuery(ItemsQuery);
            DataLoader = dataLoader;

            CreateNodeActions();

            UpdateOnChanges(typeof(WarehouseOperation), typeof(Nomenclature));
            TabName = "Остатки по складу " +
                      (featuresService.Available(WorkwearFeature.Warehouses) ? Filter.Warehouse?.Name : "");

            Filter.PropertyChanged                     += (sender, e) =>
                                                TabName = "Остатки по складу " +
                                                          (featuresService.Available(WorkwearFeature.Warehouses) ? Filter.Warehouse?.Name : "");
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ReplaceTextInteractiveRunnable"/> class.
        /// </summary>
        public ReplaceTextInteractiveRunnable(IServiceFactory serviceFactory)
        {
            Assume.IsRequired(serviceFactory, nameof(serviceFactory));

            this.serviceFactory     = serviceFactory;
            this.interactiveService = serviceFactory.GetService <IInteractiveService>();
        }
示例#17
0
 public WarehousesBalanceSummaryViewModel(
     IUnitOfWorkFactory unitOfWorkFactory, IInteractiveService interactiveService, INavigationManager navigation, IFileDialogService fileDialogService)
     : base(unitOfWorkFactory, interactiveService, navigation)
 {
     _fileDialogService = fileDialogService;
     TabName            = "Остатки по складам";
 }
        protected EntityJournalViewModelBase(
            IUnitOfWorkFactory unitOfWorkFactory,
            IInteractiveService interactiveService,
            INavigationManager navigationManager,
            IDeleteEntityService deleteEntityService           = null,
            ICurrentPermissionService currentPermissionService = null
            ) : base(unitOfWorkFactory, interactiveService, navigationManager)
        {
            CurrentPermissionService = currentPermissionService;
            DeleteEntityService      = deleteEntityService;

            var dataLoader = new ThreadDataLoader <TNode>(unitOfWorkFactory);

            dataLoader.CurrentPermissionService = currentPermissionService;
            dataLoader.AddQuery <TEntity>(ItemsQuery);
            DataLoader = dataLoader;

            if (currentPermissionService != null && !currentPermissionService.ValidateEntityPermission(typeof(TEntity)).CanRead)
            {
                throw new AbortCreatingPageException($"У вас нет прав для просмотра документов типа: {typeof(TEntity).GetSubjectName()}", "Невозможно открыть журнал");
            }

            CreateNodeActions();

            var names = typeof(TEntity).GetSubjectNames();

            if (!String.IsNullOrEmpty(names?.NominativePlural))
            {
                TabName = names.NominativePlural.StringToTitleCase();
            }

            UpdateOnChanges(typeof(TEntity));
        }
示例#19
0
 public EmployeesReport(IInteractiveService interactiveService)
 {
     this.Build();
     UoW = UnitOfWorkFactory.CreateWithoutRoot();
     Configure();
     _interactiveService = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
 }
示例#20
0
 public EquipmentReport(IInteractiveService interactiveService)
 {
     this.Build();
     UoW    = UnitOfWorkFactory.CreateWithoutRoot();
     filter = new SelectableParametersReportFilter(UoW);
     ConfigureDlg();
     _interactiveService = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
 }
示例#21
0
 public AdditionalLoadingItemsViewModel(IUnitOfWork uow, ITdiTab master, INomenclatureJournalFactory nomenclatureSelectorFactory,
                                        IInteractiveService interactiveService)
 {
     _uow    = uow ?? throw new ArgumentNullException(nameof(uow));
     _master = master ?? throw new ArgumentNullException(nameof(master));
     _nomenclatureSelectorFactory = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));
     _interactiveService          = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
 }
示例#22
0
 public UsersDialog(IInteractiveService interactiveService)
 {
     this.interactiveService = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
     this.Build();
     usersModel = new UsersModel();
     usersModel.UsersUpdated += UsersModel_UsersUpdated;
     mySQLUserRepository      = new MySQLUserRepository(new MySQLProvider(new GtkRunOperationService(), new GtkQuestionDialogsInteractive()), new GtkInteractiveService());
     ConfigureDlg();
 }
 public FreeRentPackagesJournalViewModel(
     IUnitOfWorkFactory unitOfWorkFactory,
     IInteractiveService interactiveService,
     INavigationManager navigationManager,
     ICurrentPermissionService currentPermissionService = null,
     IDeleteEntityService deleteEntityService           = null)
     : base(unitOfWorkFactory, interactiveService, navigationManager, deleteEntityService, currentPermissionService)
 {
 }
示例#24
0
 public CounterpartyReport(IEntityAutocompleteSelectorFactory salesChannelSelectorFactory,
                           IEntityAutocompleteSelectorFactory districtSelectorFactory, IUnitOfWorkFactory unitOfWorkFactory,
                           IInteractiveService interactiveService)
 {
     this.Build();
     this.interactiveService = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
     UoW = unitOfWorkFactory.CreateWithoutRoot();
     ConfigureView(salesChannelSelectorFactory, districtSelectorFactory);
 }
        public DeliveryAnalyticsViewModel(
            IUnitOfWorkFactory unitOfWorkFactory,
            IInteractiveService interactiveService,
            INavigationManager navigation,
            IEntityAutocompleteSelectorFactory districtSelectorFactory)
            : base(interactiveService, navigation)
        {
            _interactiveService     = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
            DistrictSelectorFactory = districtSelectorFactory ?? throw new ArgumentNullException(nameof(districtSelectorFactory));
            if (unitOfWorkFactory is null)
            {
                throw new ArgumentNullException(nameof(unitOfWorkFactory));
            }

            Uow   = unitOfWorkFactory.CreateWithoutRoot();
            Title = "Аналитика объёмов доставки";

            WaveList             = new GenericObservableList <WaveNode>();
            WeekDayName          = new GenericObservableList <WeekDayNodes>();
            GeographicGroupNodes = new GenericObservableList <GeographicGroupNode>();

            WageDistrictNodes = new GenericObservableList <WageDistrictNode>();

            foreach (var wage in Uow.GetAll <WageDistrict>().Select(x => x).ToList())
            {
                var wageNode = new WageDistrictNode(wage);
                wageNode.Selected = true;
                WageDistrictNodes.Add(wageNode);
            }

            foreach (var geographic in Uow.GetAll <GeographicGroup>().Select(x => x).ToList())
            {
                var geographicNode = new GeographicGroupNode(geographic);
                geographicNode.Selected = true;
                GeographicGroupNodes.Add(geographicNode);
            }

            foreach (var wave in Enum.GetValues(typeof(WaveNodes)))
            {
                var waveNode = new WaveNode {
                    WaveNodes = (WaveNodes)wave, Selected = true
                };
                WaveList.Add(waveNode);
            }

            foreach (var week in Enum.GetValues(typeof(WeekDayName)))
            {
                if ((WeekDayName)week == Domain.Sale.WeekDayName.Today)
                {
                    continue;
                }
                var weekNode = new WeekDayNodes {
                    WeekNameNode = (WeekDayName)week, Selected = true
                };
                WeekDayName.Add(weekNode);
            }
        }
 public DefaultUnhandledExceptionHandler(
     IErrorMessageModelFactory errorMessageModelFactory,
     IApplicationInfo applicationInfo,
     IInteractiveService interactiveService = null
     )
 {
     ErrorMessageModelFactory = errorMessageModelFactory ?? throw new ArgumentNullException(nameof(errorMessageModelFactory));
     ApplicationInfo          = applicationInfo ?? throw new ArgumentNullException(nameof(applicationInfo));
     InteractiveService       = interactiveService;
 }
示例#27
0
        public UserDialog(int userId, IInteractiveService interactiveService)
        {
            this.interactiveService = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
            this.Build();

            mySQLUserRepository = new MySQLUserRepository(new MySQLProvider(new GtkRunOperationService(), new GtkQuestionDialogsInteractive()), new GtkInteractiveService());

            User = mySQLUserRepository.GetUser(userId);

            ConfigureDlg();
        }
 public GeneralSalaryInfoReport(
     IEmployeeJournalFactory employeeJournalFactory,
     IInteractiveService interactiveService)
 {
     _interactiveService      = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
     _employeeSelectorFactory = employeeJournalFactory?.CreateEmployeeAutocompleteSelectorFactory()
                                ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
     Build();
     UoW = UnitOfWorkFactory.CreateWithoutRoot();
     Configure();
 }
示例#29
0
 public NormJournalViewModel(IUnitOfWorkFactory unitOfWorkFactory, IInteractiveService interactiveService, INavigationManager navigationManager, ILifetimeScope autofacScope, IDeleteEntityService deleteEntityService = null, ICurrentPermissionService currentPermissionService = null, bool useMultiSelect = false) : base(unitOfWorkFactory, interactiveService, navigationManager, deleteEntityService, currentPermissionService)
 {
     UseSlider     = true;
     AutofacScope  = autofacScope;
     JournalFilter = Filter = AutofacScope.Resolve <NormFilterViewModel>(new TypedParameter(typeof(JournalViewModelBase), this));
     CreatePopupActions();
     if (useMultiSelect)
     {
         UseMultiSelect();
     }
 }
示例#30
0
 public DeliveryTimeReport(IUnitOfWorkFactory unitOfWorkFactory, IInteractiveService interactiveService)
 {
     if (unitOfWorkFactory == null)
     {
         throw new ArgumentNullException(nameof(unitOfWorkFactory));
     }
     this.interactiveService = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
     UoW = unitOfWorkFactory.CreateWithoutRoot();
     Build();
     ConfigureDlg();
 }
 public static SimpleServiceFactory RegisterInteractiveService(this SimpleServiceFactory serviceFactory, IInteractiveService interactiveService)
 {
     serviceFactory.RegisterService(interactiveService);
     return serviceFactory;
 }