public VehicleFlow(IRepository <CarInRecord, long> carInRecordRepository, IUnitOfWorkManager unitOfWorkManager, IRepository <CarOutRecord, long> carOutRecordRepository, IRepository <CarPort, long> carPortrepository, IRepository <CarTypes, long> repositoryCarType, IRepository <CarPort, long> repositoryCarPort, IRepository <FareRule> repositoryFareRule, ICarNumberPermission carNumberPermission, IParkBoxOptions parkBoxOption, LedManager ledManager, IRepository <CarDiscount, long> carDiscountrepository, IRepository <CarErrorRecord, long> carErrorRecordRepository, IEventBus eventBus) { _carInRecordRepository = carInRecordRepository; _unitOfWorkManager = unitOfWorkManager; _carPortrepository = carPortrepository; _carOutRecordRepository = carOutRecordRepository; Logger = NullLogger.Instance; _repositoryCarType = repositoryCarType; _repositoryFareRule = repositoryFareRule; _carNumberPermission = carNumberPermission; _parkBoxOptions = parkBoxOption; _ledManager = ledManager; _repositoryCarPort = repositoryCarPort; _iocManager = IocManager.Instance; _carDiscountrepository = carDiscountrepository; _carErrorRecordRepository = carErrorRecordRepository; _eventBus = eventBus; }
public CoverLayer(DeviceInfoDto deviceInfoDto, IParkBoxOptions parkBoxOptions, ILogger logger, Action openRod, Action inOutAction) { InitializeComponent(); _parkBoxOptions = parkBoxOptions; _logger = logger; deviceInfo = deviceInfoDto; synchronizationContext = SynchronizationContext.Current; if (deviceInfo.EntranceDto.EntranceType == Enum.EntranceType.In) { TimeClock.Foreground = new SolidColorBrush(Colors.Orange); EntranceName.Foreground = new SolidColorBrush(Colors.Orange); } else { TimeClock.Foreground = new SolidColorBrush(Colors.Green); EntranceName.Foreground = new SolidColorBrush(Colors.Green); } if (deviceInfo.EntranceDto.EntranceType == Enum.EntranceType.Out) { this.btn_InOut.Content = "手工出场"; } timer = new Timer(x => { synchronizationContext.Post(z => this.TimeClock.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), null); }, null, 1000, 1000); OpenRod = openRod; InOutAction = inOutAction; }
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; }
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 = "无在场记录,请匹配场内车辆"; }
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; }
public CreatePnel(IParkBoxOptions parkBoxOptions) { _parkBoxOptions = parkBoxOptions; deviceInfoDtos = _parkBoxOptions.DeciceInfos?.GroupBy(x => x.EntranceDto.Id).ToList(); countEntrances = deviceInfoDtos?.Count() ?? 0; Logger = NullLogger.Instance; }
public LoginWindow(LogInManager logInManager, UserManager userManager, IParkBoxOptions parkBoxOptions) { _userManager = userManager; _logInManager = logInManager; _parkBoxOptions = parkBoxOptions; DataContext = this; InitializeComponent(); }
public CoverLayerWinform(DeviceInfoDto deviceInfoDto, IParkBoxOptions parkBoxOptions, ILogger logger, Action openRod, Action inOutAction) { InitializeComponent(); _coverLayer = new CoverLayer(deviceInfoDto, parkBoxOptions, logger, openRod, inOutAction); _coverLayer.Background = System.Windows.Media.Brushes.Transparent; elementHost.Dock = DockStyle.Fill; elementHost.Child = _coverLayer; panel1.Controls.Add(elementHost); pictureBox1.BackgroundImageLayout = ImageLayout.Stretch; pictureBox1.SendToBack(); //elementHost.Refresh(); }
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); }
public UserCard(IParkBoxOptions parkBoxOptions) { InitializeComponent(); SynchronizationContext = DispatcherSynchronizationContext.Current; this.parkBoxOptions = parkBoxOptions; loginTime = DateTime.Now; onlineTime = new Timer(x => { SynchronizationContext.Post(z => { var time = DateTime.Now - loginTime; this.txt_OnlineTime.Text = time.Hours + "小时" + time.Minutes + "分"; }, null); }, null, 1000, 60000); InitUserImge(); SetUserInfo(); this.txt_FeeMoney.Text = "0.00 元"; }
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); }
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 }
public ParkMainControl(IParkBoxOptions parkBoxOptions, IBoxMessage boxMessageable) { if (parkBoxOptions.DeciceInfos.Count == 0) { throw new UserFriendlyException("岗亭未绑定设备"); } parkOptions = parkBoxOptions; GetDeviceByDeviceId = (x) => { return(parkBoxOptions.DeciceInfos.FirstOrDefault(y => y.Port == Convert.ToInt64(x))); }; SDKCallBackAction = (x) => { this.messageQueue.Enqueue(x); }; this.boxMessageable = boxMessageable; InitAllQueue(); StartReleasingMemory(); StartThreads(); }
public ParkEntranceInfo(DeviceInfoDto deviceInfoDto, IParkBoxOptions parkBoxOptions, ILogger logger) { InitializeComponent(); deviceInfo = deviceInfoDto; _parkBoxOptions = parkBoxOptions; _logger = logger; _manualEntryAndExit = IocManager.Instance.Resolve <IManualEntryAndExit>(); synchronizationContext = SynchronizationContext.Current; if (_parkBoxOptions.IsListView) { //CoverLayerWinform coverLayer = new CoverLayerWinform(deviceInfo, parkBoxOptions, logger, async () => await OpenRod(), InOutAction); //coverLayer.Dock = System.Windows.Forms.DockStyle.Fill; //coverLayer.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; Grd_Left.Children.Remove(Cav_CoverLayer); //coverLayer.SetImage(_parkBoxOptions.DefultCarmeraImg); //host.Child = coverLayer; } else { // Grd_Left.Children.Remove(Cav_Winform); if (deviceInfo.EntranceDto.EntranceType == Enum.EntranceType.In) { TimeClock.Foreground = new SolidColorBrush(Colors.Orange); EntranceName.Foreground = new SolidColorBrush(Colors.Orange); } else { TimeClock.Foreground = new SolidColorBrush(Colors.Green); EntranceName.Foreground = new SolidColorBrush(Colors.Green); } if (deviceInfo.EntranceDto.EntranceType == Enum.EntranceType.Out) { this.btn_InOut.Content = "手工出场"; } timer = new System.Threading.Timer(x => { synchronizationContext.Post(z => this.TimeClock.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), null); }, null, 1000, 1000); } }
public LedManager(IParkBoxOptions parkBoxOptions) { this.parkBoxOptions = parkBoxOptions; entranceLedCache = new Dictionary <long, List <ILedable> >(); }
public static void MockDevices(this IParkBoxOptions parkBoxOptions) { List <DeviceInfoDto> deviceInfos = new List <DeviceInfoDto>() { new DeviceInfoDto() { Ip = "1.1.1.1", DeviceType = Enum.DeviceType.Camera, Password = "******", UserName = "******", Port = 00001, EquipmentManufacturers = Enum.EquipmentManufacturers.LanKa, EntranceDto = new Parks.Entrance.EntranceDto() { EntranceName = "入口", EntranceType = Enum.EntranceType.In, Id = 1, ParkLevel = new Level.Dto.ParkLevelDto() { Id = 1, LevelName = "1", LevelNumber = 1, Park = new ParkDto() { Id = 4, Name = "测试", Address = "测试", CarportCount = 100 } } } }, new DeviceInfoDto() { Ip = "1.1.1.2", DeviceType = Enum.DeviceType.Camera, Port = 00002, Password = "******", UserName = "******", EquipmentManufacturers = Enum.EquipmentManufacturers.LanKa, EntranceDto = new Parks.Entrance.EntranceDto() { EntranceName = "出口", EntranceType = Enum.EntranceType.Out, Id = 2, ParkLevel = new Level.Dto.ParkLevelDto() { Id = 1, LevelName = "1", LevelNumber = 1, Park = new ParkDto() { Id = 4, Name = "测试", Address = "测试", CarportCount = 100 } } } }, new DeviceInfoDto() { Ip = "1.1.1.3", DeviceType = Enum.DeviceType.Camera, Port = 00003, Password = "******", UserName = "******", EquipmentManufacturers = Enum.EquipmentManufacturers.LanKa, EntranceDto = new Parks.Entrance.EntranceDto() { EntranceName = "入口", EntranceType = Enum.EntranceType.In, Id = 3, ParkLevel = new Level.Dto.ParkLevelDto() { Id = 1, LevelName = "1", LevelNumber = 1, Park = new ParkDto() { Id = 4, Name = "测试", Address = "测试", CarportCount = 100 } } } }, new DeviceInfoDto() { Ip = "1.1.1.4", DeviceType = Enum.DeviceType.Camera, Port = 00004, Password = "******", UserName = "******", EquipmentManufacturers = Enum.EquipmentManufacturers.LanKa, EntranceDto = new Parks.Entrance.EntranceDto() { EntranceName = "出口", EntranceType = Enum.EntranceType.Out, Id = 4, ParkLevel = new Level.Dto.ParkLevelDto() { Id = 1, LevelName = "1", LevelNumber = 1, Park = new ParkDto() { Id = 4, Name = "测试", Address = "测试", CarportCount = 100 } } } }, new DeviceInfoDto() { Ip = "1.1.1.4", DeviceType = Enum.DeviceType.Camera, Port = 00005, Password = "******", UserName = "******", EquipmentManufacturers = Enum.EquipmentManufacturers.LanKa, EntranceDto = new Parks.Entrance.EntranceDto() { EntranceName = "出口", EntranceType = Enum.EntranceType.Out, Id = 5, ParkLevel = new Level.Dto.ParkLevelDto() { Id = 1, LevelName = "1", LevelNumber = 1, Park = new ParkDto() { Id = 4, Name = "测试", Address = "测试", CarportCount = 100 } } } } }; parkBoxOptions.DeciceInfos = deviceInfos; parkBoxOptions.IsListView = false; parkBoxOptions.ParkName = "测试停车场"; parkBoxOptions.ParkId = 4; parkBoxOptions.IsZeroMoneyOut = true; parkBoxOptions.TempCarTypeId = 4; }