コード例 #1
0
        public FastDeliveryAvailabilityHistoryJournalViewModel(FastDeliveryAvailabilityFilterViewModel filterViewModel,
                                                               IUnitOfWorkFactory unitOfWorkFactory,
                                                               ICommonServices commonServices,
                                                               IEmployeeService employeeService,
                                                               IFileDialogService fileDialogService,
                                                               IFastDeliveryAvailabilityHistoryParameterProvider fastDeliveryAvailabilityHistoryParameterProvider)
            : base(filterViewModel, unitOfWorkFactory, commonServices)
        {
            _employeeService   = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            _fileDialogService = fileDialogService ?? throw new ArgumentNullException(nameof(fileDialogService));
            var availabilityHistoryParameterProvider = fastDeliveryAvailabilityHistoryParameterProvider
                                                       ?? throw new ArgumentNullException(nameof(fastDeliveryAvailabilityHistoryParameterProvider));

            TabName = "Журнал истории проверок экспресс-доставок";

            UpdateOnChanges(
                typeof(FastDeliveryAvailabilityHistory),
                typeof(FastDeliveryAvailabilityHistoryItem),
                typeof(FastDeliveryNomenclatureDistributionHistory),
                typeof(FastDeliveryOrderItemHistory)
                );


            var fastDeliveryAvailabilityHistoryModel = new FastDeliveryAvailabilityHistoryModel(unitOfWorkFactory);

            fastDeliveryAvailabilityHistoryModel.ClearFastDeliveryAvailabilityHistory(availabilityHistoryParameterProvider);

            _timer          = new Timer(_interval);
            _timer.Elapsed += TimerOnElapsed;
            _timer.Start();
        }
コード例 #2
0
        private bool CheckIfFastDeliveryAllowed(IUnitOfWork uow, decimal latitude, decimal longitude,
                                                SiteNomenclatureNode[] siteNomenclatures)
        {
            if (siteNomenclatures == null || siteNomenclatures.Any(x => x.ERPId == null || x.ERPId < 1))
            {
                return(false);
            }

            var nomenclatureNodes = siteNomenclatures
                                    .Select(x =>
            {
                Debug.Assert(x.ERPId != null, "x.ERPId != null");
                return(new NomenclatureAmountNode
                {
                    NomenclatureId = x.ERPId.Value,
                    Amount = x.Amount
                });
            })
                                    .ToList();

            var fastDeliveryAvailabilityHistory = _deliveryRepository.GetRouteListsForFastDelivery(
                uow,
                (double)latitude,
                (double)longitude,
                isGetClosestByRoute: false,
                _deliveryRulesParametersProvider,
                nomenclatureNodes);

            var fastDeliveryAvailabilityHistoryModel = new FastDeliveryAvailabilityHistoryModel(UnitOfWorkFactory.GetDefaultFactory);

            fastDeliveryAvailabilityHistoryModel.SaveFastDeliveryAvailabilityHistory(fastDeliveryAvailabilityHistory);

            var allowedRouteLists = fastDeliveryAvailabilityHistory.Items;

            return(allowedRouteLists != null && allowedRouteLists.Any(x => x.IsValidToFastDelivery));
        }