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(); }
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)); }