示例#1
0
        public BoxMessage(IParkBoxOptions parkBoxOptions,
                          IVehicleFlow vehicleFlow,
                          ICarNumberPermission carNumberPermission,
                          LedManager ledManager,
                          IRepository <CarTypes, long> repositoryCarType,
                          IRepository <FareRule> repositoryFareRule,
                          IRepository <RangeTime> repositoryRangeTime,
                          IRepository <BlackList, int> repositoryBlackList,
                          IRepository <CarPort, long> repositoryCarPort,
                          IUnitOfWorkManager unitOfWork
                          )
        {
            this.parkBoxOptions  = parkBoxOptions;
            _vehicleFlow         = vehicleFlow;
            _carNumberPermission = carNumberPermission;
            _ledManager          = ledManager;

            _repositoryCarType   = repositoryCarType;
            _repositoryFareRule  = repositoryFareRule;
            _repositoryRangeTime = repositoryRangeTime;
            _repositoryBlackList = repositoryBlackList;
            _repositoryCarPort   = repositoryCarPort;
            Logger      = NullLogger.Instance;
            _unitOfWork = unitOfWork;
        }
示例#2
0
        public ChargerWindow(LedManager ledManager, string carNumber, FareRule fareRule, InOutTypeEnum inOutType,
                             IRepository <CarTypes, long> repositoryCarTypes,
                             IParkBoxOptions parkBoxOptions,
                             IRepository <CarPort, long> repositoryCarPort,
                             IVehicleFlow vehicleFlow,
                             IDeviceable deviceable,
                             IRepository <FareRule> repositoryFareRule,
                             IRepository <RangeTime> repositoryRangeTime,
                             ManualResetEvent manualResetEvent) : this(ledManager, fareRule, repositoryCarTypes, parkBoxOptions, repositoryCarPort, vehicleFlow, deviceable, repositoryFareRule, repositoryRangeTime, manualResetEvent)
        {
            var inTime = DateTime.Now;
            var list   = _vehicleFlow.LevenshteinDistance(parkBoxOptions.ParkId, carNumber);

            chargerViewModel.InTime    = chargerViewModel.OutTime = inTime;
            chargerViewModel.CarNumber = carNumber;
            CarOutModel = new CarOutModel()
            {
                CarInRecord = new CarInRecord()
                {
                    CarNumber = carNumber, InTime = inTime, ParkId = deviceable.EntranceDto.ParkLevel.Park.Id
                }, OutTime = inTime, ParkId = deviceable.EntranceDto.ParkLevel.Park.Id
            };
            AddMenu(list);
            txt_CarType.Text = "无在场记录,请匹配场内车辆";
        }
示例#3
0
 private ChargerWindow(LedManager ledManager, FareRule fareRule,
                       IRepository <CarTypes, long> repositoryCarTypes,
                       IParkBoxOptions parkBoxOptions,
                       IRepository <CarPort, long> repositoryCarPort,
                       IVehicleFlow vehicleFlow,
                       IDeviceable device,
                       IRepository <FareRule> repositoryFareRule,
                       IRepository <RangeTime> repositoryRangeTime,
                       ManualResetEvent manualResetEvent)
 {
     InitializeComponent();
     _ledManager             = ledManager;
     OutOfferType            = OutOfferTypeEnum.NormalPass;
     FareRule                = fareRule;
     _repositoryCarTypes     = repositoryCarTypes;
     _parkBoxOptions         = parkBoxOptions;
     _repositoryCarPort      = repositoryCarPort;
     _vehicleFlow            = vehicleFlow;
     _repositoryFareRule     = repositoryFareRule;
     _repositoryRangeTime    = repositoryRangeTime;
     delayAction             = new DelayAction();
     chargerViewModel        = new ChargerViewModel();
     this.DataContext        = chargerViewModel;
     chargerViewModel.Remark = "正常缴费";
     _manualResetEvent       = manualResetEvent;
 }
示例#4
0
 public ChargerWindow(LedManager ledManager, CarOutModel carOutModel, FareRule fareRule, decimal receivable,
                      IRepository <CarTypes, long> repositoryCarTypes,
                      IParkBoxOptions parkBoxOptions,
                      IRepository <CarPort, long> repositoryCarPort,
                      IVehicleFlow vehicleFlow,
                      IDeviceable deviceable,
                      IRepository <FareRule> repositoryFareRule,
                      IRepository <RangeTime> repositoryRangeTime,
                      ManualResetEvent manualResetEvent) : this(ledManager, fareRule, repositoryCarTypes, parkBoxOptions, repositoryCarPort, vehicleFlow, deviceable, repositoryFareRule, repositoryRangeTime, manualResetEvent)
 {
     CarOutModel = carOutModel;
     SetUIModel(carOutModel, receivable);
 }
示例#5
0
        private async Task <ChargerWindow> GetChargerWindow(LedManager ledManager, CarOutModel carOutModel, FareRule fareRule, decimal receivable,
                                                            IRepository <CarTypes, long> repositoryCarTypes,
                                                            IParkBoxOptions parkBoxOptions,
                                                            IRepository <CarPort, long> repositoryCarPort,
                                                            IVehicleFlow vehicleFlow,
                                                            IDeviceable deviceable,
                                                            IRepository <FareRule> repositoryFareRule,
                                                            IRepository <RangeTime> repositoryRangeTime,
                                                            ManualResetEvent manualResetEvent)
        {
            ChargerWindow chargerWindow = null;
            await Application.Current.Dispatcher.BeginInvoke((Action)(() =>
            {
                chargerWindow = new ChargerWindow(ledManager, carOutModel, fareRule, receivable, repositoryCarTypes, parkBoxOptions, repositoryCarPort, vehicleFlow, deviceable, repositoryFareRule, repositoryRangeTime, manualResetEvent);
            }));

            return(chargerWindow);
        }
示例#6
0
        public MainWindow(IParkBoxOptions parkBoxOptions, ICreatePnel createPnel,
                          IVehicleFlow vehicleFlow,
                          ICarNumberPermission carNumberPermission,
                          LedManager ledManager,
                          IRepository <CarTypes, long> repositoryCarType,
                          IRepository <FareRule> repositoryFareRule,
                          IRepository <RangeTime> repositoryRangeTime,
                          IRepository <BlackList, int> repositoryBlackList,
                          IRepository <CarPort, long> repositoryCarPort,
                          ParkMainControl parkMainControl)
        {
            InitializeComponent();
            DataContext          = this;
            this.parkBoxOptions  = parkBoxOptions;
            _createPnel          = createPnel;
            _vehicleFlow         = vehicleFlow;
            _carNumberPermission = carNumberPermission;
            _ledManager          = ledManager;
            var userCard = IocManager.Instance.Resolve <UserCard>();

            UserCard.Background = new SolidColorBrush(Colors.White);
            UserCard.Child      = userCard;

            _repositoryCarType   = repositoryCarType;
            _repositoryFareRule  = repositoryFareRule;
            _repositoryRangeTime = repositoryRangeTime;
            _repositoryBlackList = repositoryBlackList;
            _repositoryCarPort   = repositoryCarPort;
            _parkMainControl     = parkMainControl;

            IocManager.Instance.IocContainer.Register(
                Component.For <IManualEntryAndExit>().UsingFactoryMethod(() => this));
            //IocManager.Instance.IocContainer.Register(Component.For<TaskScheduler>().Instance(TaskScheduler.FromCurrentSynchronizationContext()).LifestyleSingleton());
            IocManager.Instance.IocContainer.Register(Component.For <SynchronizationContext>().Instance(base.SynchronizationContext).LifestyleSingleton());


            Title         = parkBoxOptions.ParkName;
            parkEntrances = _createPnel.CreatePnels(this.ContentCamera);
            parkBoxOptions.SetInfosDic = parkEntrances;
#if Release
            this.TopMost = true;
#endif
        }