/// <summary> /// Initializes a new instance of the <see cref="CardManager" /> class. /// </summary> /// <param name="settingsService">The settings service.</param> /// <param name="cardProvider">The card provider.</param> /// <param name="rulesEngineService">The rules engine service.</param> public CardManager( ISettingsService settingsService, ICardProvider cardProvider, IRulesEngineService rulesEngineService) { this.settingsService = settingsService; this.cardProvider = cardProvider; this.rulesEngineService = rulesEngineService; }
public InMemoryGameRepo( IGameIdentifierProvider gameIdProvider, ICardProvider cardProvider, IDealerProvider dealerProvider ) { _gameIdProvider = gameIdProvider; _cardProvider = cardProvider; _dealerProvider = dealerProvider; }
public BlackJackGame(ICardProvider cardProvider, BlackJackPlayer dealer, int maxPlayers) { Dealer = dealer ?? throw new ArgumentNullException(nameof(dealer)); if (maxPlayers < 1) { throw new ArgumentOutOfRangeException(nameof(maxPlayers)); } this.cardProvider = cardProvider ?? throw new ArgumentNullException(nameof(cardProvider)); MaxPlayerCount = maxPlayers; }
public JoinGameInteractor( IGameRepository gameRepository, IAvitarRepository avitarRepository, IDealerProvider dealerProvider, IGameIdentifierProvider gameIdProviders, IHandIdentifierProvider handIdProvider, ICardProvider cardProvider ) { GameRepository = gameRepository ?? throw new ArgumentNullException(nameof(gameRepository)); GameIdProviders = gameIdProviders ?? throw new ArgumentNullException(nameof(gameIdProviders)); HandIdProvider = handIdProvider ?? throw new ArgumentNullException(nameof(handIdProvider)); AvitarRepository = avitarRepository ?? throw new ArgumentNullException(nameof(avitarRepository)); DealerProvider = dealerProvider ?? throw new ArgumentNullException(nameof(dealerProvider)); CardProvider = cardProvider ?? throw new ArgumentNullException(nameof(cardProvider)); }
/// <summary> /// Initializes a new instance of the <see cref="SubscriptionsFacade" /> class. /// </summary> /// <param name="data">The subscription data service.</param> /// <param name="subscriptionProvider">The subscription provider.</param> /// <param name="cardProvider">The card provider.</param> /// <param name="cardDataService">The card data service.</param> /// <param name="customerProvider">The customer provider.</param> /// <param name="subscriptionPlanDataService">The subscription plan data service.</param> /// <param name="chargeProvider">The charge provider.</param> public SubscriptionsFacade( ISubscriptionDataService data, ISubscriptionProvider subscriptionProvider, ICardProvider cardProvider, ICardDataService cardDataService, ICustomerProvider customerProvider, ISubscriptionPlanDataService subscriptionPlanDataService, IChargeProvider chargeProvider) { _subscriptionDataService = data; _subscriptionProvider = subscriptionProvider; _cardProvider = cardProvider; _customerProvider = customerProvider; _subscriptionPlanDataService = subscriptionPlanDataService; _chargeProvider = chargeProvider; _cardDataService = cardDataService; }
/// <summary> /// 卡片发行 /// </summary> /// <param name="info"></param> /// <param name="releaseMoney"></param> /// <param name="paymentMode"></param> /// <param name="memo"></param> /// <param name="keepParkingStatus">是否保持卡片运行状态</param> /// <returns></returns> public CommandResult CardRelease(CardInfo info, decimal releaseMoney, PaymentMode paymentMode, string memo, bool keepParkingStatus) { string op = OperatorInfo.CurrentOperator.OperatorName; string station = WorkStationInfo.CurrentStation.StationName; IUnitWork unitWork = ProviderFactory.Create <IUnitWork>(_RepoUri); //工作单元 CardReleaseRecord record = new CardReleaseRecord { CardID = info.CardID, OwnerName = info.OwnerName, CardCertificate = info.CardCertificate, CarPlate = info.CarPlate, ReleaseDateTime = DateTime.Now, CardType = info.CardType, ReleaseMoney = releaseMoney, PaymentMode = paymentMode, Balance = info.Balance, ActivationDate = info.ActivationDate, ValidDate = info.ValidDate, HolidayEnabled = info.HolidayEnabled, Deposit = info.Deposit, OperatorID = op, StationID = station, Memo = memo }; ProviderFactory.Create <ICardReleaseRecordProvider>(_RepoUri).Insert(record, unitWork); info.Release(); ICardProvider icp = ProviderFactory.Create <ICardProvider>(_RepoUri); CardInfo origial = icp.GetByID(info.CardID).QueryObject; if (origial == null) { icp.Insert(info, unitWork); } else if (keepParkingStatus) { UpdateCard(info, unitWork); } else { UpdateCardAll(info, unitWork); } return(unitWork.Commit()); }
/// <summary> /// 卡片挂失,除了收取了卡片工本费还收取了卡片在场内的停车费用,并把卡片置为出场 /// </summary> /// <param name="info"></param> /// <param name="reason"></param> /// <param name="lostCardCost"></param> /// <param name="paymode"></param> /// <param name="parkFee"></param> /// <returns></returns> public CommandResult CardLoss(CardInfo info, string reason, decimal lostCardCost, PaymentMode paymode, CardPaymentInfo parkFee) { string op = OperatorInfo.CurrentOperator.OperatorName; string station = WorkStationInfo.CurrentStation.StationName; IUnitWork unitWork = ProviderFactory.Create <IUnitWork>(_RepoUri); CardLostRestoreRecord record = new CardLostRestoreRecord { CardID = info.CardID, OwnerName = info.OwnerName, CardCertificate = info.CardCertificate, CarPlate = info.CarPlate, CardStatus = (byte)info.Status, //保存卡片的原有卡状态 LostDateTime = DateTime.Now, LostOperator = op, LostStation = station, LostMemo = reason, LostCardCost = lostCardCost, PaymentMode = paymode }; ICardLostRestoreRecordProvider lostProvider = ProviderFactory.Create <ICardLostRestoreRecordProvider>(_RepoUri); lostProvider.Insert(record, unitWork); if (parkFee != null) { parkFee.OperatorID = op; parkFee.StationID = station; parkFee.PaymentMode = paymode; parkFee.Memo = "卡片挂失"; ICardPaymentRecordProvider icpp = ProviderFactory.Create <ICardPaymentRecordProvider>(_RepoUri); icpp.Insert(parkFee, unitWork); } //卡片置为挂失并出场 CardInfo original = info.Clone(); info.Status = CardStatus.Loss; info.ParkingStatus = ParkingStatus.Out; ICardProvider icp = ProviderFactory.Create <ICardProvider>(_RepoUri); icp.Update(info, original, unitWork); return(unitWork.Commit()); }
private void btnCancel_Click(object sender, EventArgs e) {//取消优惠的代码逻辑 if (CheckInput()) { IUnitWork unitWork = ProviderFactory.Create <IUnitWork>(AppSettings.CurrentSetting.ParkConnect); //1.删除优惠信息表的此项数据 IPREPreferentialProvider preProvider = ProviderFactory.Create <IPREPreferentialProvider>(AppSettings.CurrentSetting.ParkConnect); preProvider.Delete(_CurrentPreInfo, unitWork); //2.将Card表的优惠时数减去 ICardProvider cardProvider = ProviderFactory.Create <ICardProvider>(AppSettings.CurrentSetting.ParkConnect); CardInfo card = cardProvider.GetByID(_CurrentPreInfo.CardID).QueryObject; CardInfo newVal = card.Clone(); newVal.DiscountHour -= _CurrentPreInfo.PreferentialHour; if (newVal.DiscountHour < 0) { newVal.DiscountHour = 0; } cardProvider.Update(newVal, card, unitWork); //3.保存优惠操作记录 IPREPreferentialLogProvider preLogProvider = ProviderFactory.Create <IPREPreferentialLogProvider>(AppSettings.CurrentSetting.ParkConnect); PREPreferentialLog log = _CurrentPreInfo.CreateLog(); log.OperatorTime = DateTime.Now; log.IsCancel = 1; log.CancelReason = this.txtCancelReason.Text.Trim(); log.WorkstationID = PRESysOptionSetting.Current.PRESysOption.CurrentWorkstationID; log.WorkstationName = PRESysOptionSetting.Current.PRESysOption.CurrentWorkstation; log.OperatorID = PREOperatorInfo.CurrentOperator.OperatorID; preLogProvider.Insert(log, unitWork); CommandResult result = unitWork.Commit(); if (result.Result == ResultCode.Successful) { MessageBox.Show("取消成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); ClearCardInfo(); ClearInput(); btnCancel.Enabled = false; } else { MessageBox.Show(result.Message); } } }
private void btnOK_Click(object sender, EventArgs e) { if (CheckInput()) { PREPreferentialInfo info = GetItemFromInput(); //1.插入优惠信息 IUnitWork unitWork = ProviderFactory.Create <IUnitWork>(AppSettings.CurrentSetting.ParkConnect); IPREPreferentialProvider preProvider = ProviderFactory.Create <IPREPreferentialProvider>(AppSettings.CurrentSetting.ParkConnect); preProvider.Insert(info, unitWork); //2.更新卡片的优惠信息 ICardProvider cardProvider = ProviderFactory.Create <ICardProvider>(AppSettings.CurrentSetting.ParkConnect); CardInfo card = cardProvider.GetByID(info.CardID).QueryObject; if (card == null) { MessageBox.Show("没有此卡片!"); return; } CardInfo newCard = card.Clone(); newCard.DiscountHour += info.PreferentialHour; newCard.PreferentialTime = info.PreferentialTime; cardProvider.Update(newCard, card, unitWork); //3.保存优惠操作记录 IPREPreferentialLogProvider logProvider = ProviderFactory.Create <IPREPreferentialLogProvider>(AppSettings.CurrentSetting.ParkConnect); PREPreferentialLog log = info.CreateLog(); log.OperatorTime = DateTime.Now; logProvider.Insert(log, unitWork); CommandResult result = unitWork.Commit(); if (result.Result == ResultCode.Successful) { MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); ClearInput(); } else { MessageBox.Show(result.Message); } } }
//保存卡片信息,如果存在则直接覆盖 public InterfaceReturnCode SaveCard(string cardID, short cardNum, byte carType, byte status, short index, int lastEntrance, string activationDate, DateTime validDate, decimal balance, decimal deposit, int discountHour, int options) { DateTime activation; if (!DateTime.TryParse(activationDate, out activation)) { return(InterfaceReturnCode.ParameterError); } //卡片状态 = 1 Enabled 已发行, = 3 Disabled 禁用 byte cardStatus = (byte)(status == 0 ? 3 : 1); ICardProvider provider = ProviderFactory.Create <ICardProvider>(AppConifg.Current.ParkingConnection); CardInfo info = null; QueryResult <CardInfo> find = provider.GetByID(cardID); if (find.Result == ResultCode.Successful || find.Result == ResultCode.NoRecord) { if (find.QueryObject != null) { info = find.QueryObject.Clone(); } } else { return(CreateInterfaceReturnCode(find.Result)); } if (info == null) { info = new CardInfo(); //以下为卡片默认设置 info.CardType = Ralid.Park.BusinessModel.Enum.CardType.MonthRentCard;//卡片类型定位月卡 info.CanRepeatOut = false; info.CanRepeatIn = false; info.HolidayEnabled = true; info.WithCount = true; info.OnlineHandleWhenOfflineMode = false; info.CanEnterWhenFull = true; info.EnableWhenExpired = true; info.ValidDate = new DateTime(2099, 12, 31); } info.CardID = cardID; info.CardNum = cardNum; info.AccessID = 0;//表示所有权限 info.CarType = carType; info.Index = index; info.ParkingStatus = ParkingStatus.Out; info.LastDateTime = DateTime.Now; info.LastEntrance = lastEntrance; info.Status = (Ralid.Park.BusinessModel.Enum.CardStatus)cardStatus; info.ActivationDate = activation; CommandResult result = null; if (find.QueryObject == null) { result = provider.Insert(info); } else { result = provider.Update(info, find.QueryObject); } return(CreateInterfaceReturnCode(result.Result)); }
public CardHub(ICardProvider cardProvider) { this.cardProvider = cardProvider; }
public SoftLinkWrapper(ICardProvider provider, Token token, Func <string> cardName) { _provider = provider; _token = token; _cardName = cardName; }
public CardLinker(ICardProvider provider, ICardNameResolver cardNameResolver) { _provider = provider; _cardNameResolver = cardNameResolver; }
/// <summary> /// 保存车单 /// </summary> /// <param name="sheetID"></param> /// <param name="employeeNum"></param> /// <param name="employeeName"></param> /// <param name="telPhone"></param> /// <param name="department"></param> /// <param name="carPlate"></param> /// <param name="status"></param> /// <param name="activationDate"></param> /// <param name="accessID"></param> /// <returns></returns> private InterfaceReturnCode _SaveSheet(string sheetID, string employeeNum, string employeeName, string telPhone, string department, string carPlate, byte status, string activationDate, string places, bool enableLimitation, double limitation) { DateTime activation; if (string.IsNullOrEmpty(employeeNum) || !DateTime.TryParse(activationDate, out activation)) { return(InterfaceReturnCode.ParameterError); } //卡片状态 = 1 Enabled 已发行, = 3 Disabled 禁用, byte cardStatus = (byte)(status == 0 ? 3 : 1); //先查询停车地点的权限组 int accessID = GetAccessID(places); if (accessID == -1) { accessID = 0; } ICardProvider provider = ProviderFactory.Create <ICardProvider>(AppConifg.Current.ParkingConnection); CardInfo info = null; QueryResult <CardInfo> find = provider.GetByID(employeeNum); if (find.Result == ResultCode.Successful || find.Result == ResultCode.NoRecord) { if (find.QueryObject != null) { info = find.QueryObject.Clone(); } } else { return(CreateInterfaceReturnCode(find.Result)); } if (info == null) { info = new CardInfo(); //以下为卡片默认设置 info.CardType = Ralid.Park.BusinessModel.Enum.CardType.MonthRentCard; info.CanRepeatOut = false; info.CanRepeatIn = false; info.HolidayEnabled = true; info.WithCount = true; info.OnlineHandleWhenOfflineMode = false; info.CanEnterWhenFull = true; info.EnableWhenExpired = true; info.ValidDate = new DateTime(2099, 12, 31); } info.CardID = employeeNum; info.OwnerName = employeeName; info.Telphone = telPhone; info.CardCertificate = department; info.CarPlate = carPlate; info.Status = (Ralid.Park.BusinessModel.Enum.CardStatus)cardStatus; info.ActivationDate = activation; info.EnableLimitation = enableLimitation; info.LimitationRemain = (decimal)limitation; info.AccessID = (byte)accessID; info.SheetID = sheetID; CommandResult result = null; if (find.QueryObject == null) { result = provider.Insert(info); } else { result = provider.Update(info, find.QueryObject); } return(CreateInterfaceReturnCode(result.Result)); }
/// <summary> /// 获取车牌号码所在停车场 /// </summary> /// <param name="carPlate"></param> /// <returns></returns> public QueryResult <ParkInfo> GetParkInfoCarPlate(string carPlate) { QueryResult <ParkInfo> result = new QueryResult <ParkInfo>(ResultCode.Fail, null); //先根据车牌查找卡片 ICardProvider cardProvider = ProviderFactory.Create <ICardProvider>(this._repoUri); CardSearchCondition cardCondition = new CardSearchCondition(); cardCondition.CarPlateOrLast = carPlate; QueryResultList <CardInfo> cardResult = cardProvider.GetItems(cardCondition); if (cardResult.Result == ResultCode.Successful) { CardInfo card = null; if (cardResult.QueryObjects != null && cardResult.QueryObjects.Count > 0) { //查找第一个符合条件的已入场卡片 card = cardResult.QueryObjects.FirstOrDefault(c => c.IsInPark); } if (card == null) { result = new QueryResult <ParkInfo>(ResultCode.NoRecord, null); } else { //根据卡号和入场时间查找入场事件 ICardEventProvider eventProvider = ProviderFactory.Create <ICardEventProvider>(this._repoUri); CardEventSearchCondition eventCondition = new CardEventSearchCondition(); eventCondition.RecordDateTimeRange = new DateTimeRange(card.LastDateTime, card.LastDateTime); eventCondition.CardID = card.CardID; eventCondition.OnlyEnterEvent = true; QueryResultList <CardEventRecord> eventResult = eventProvider.GetItems(eventCondition); if (eventResult.Result == ResultCode.Successful) { CardEventRecord eventRecord = null; if (eventResult.QueryObjects != null && eventResult.QueryObjects.Count > 0) { //查找到多条记录时,取第一条记录 eventRecord = eventResult.QueryObjects[0]; } if (eventRecord == null) { result = new QueryResult <ParkInfo>(ResultCode.NoRecord, null); } else { ParkInfo park = provider.GetByID(eventRecord.ParkID).QueryObject; if (park == null) { result = new QueryResult <ParkInfo>(ResultCode.NoRecord, null); } else { result = new QueryResult <ParkInfo>(ResultCode.Successful, park); } } } } } return(result); }
public BlackJackGameTests() { cardProvider = new CardProviderMock(); HandIdentifierProvider = new GuidBasedHandIdentifierProviderMock(); }
public void noCardInitialize(ICardProvider cardProvider, ContentPage parentPage) { this.cardProvider = cardProvider; this.parentPage = parentPage; }
public void CreateProvider() { IAlarmProvider p1 = ProviderFactory.Create <IAlarmProvider>(connStr); Assert.IsTrue(p1 != null); ICardChargeRecordProvider p2 = ProviderFactory.Create <ICardChargeRecordProvider>(connStr); Assert.IsTrue(p2 != null); ICardDeferRecordProvider p3 = ProviderFactory.Create <ICardDeferRecordProvider>(connStr); Assert.IsTrue(p3 != null); ICardDisableEnableRecordProvider p4 = ProviderFactory.Create <ICardDisableEnableRecordProvider>(connStr); Assert.IsTrue(p4 != null); ICardEventProvider p5 = ProviderFactory.Create <ICardEventProvider>(connStr); Assert.IsTrue(p5 != null); ICardLostRestoreRecordProvider p6 = ProviderFactory.Create <ICardLostRestoreRecordProvider>(connStr); Assert.IsTrue(p6 != null); ICardProvider p9 = ProviderFactory.Create <ICardProvider>(connStr); Assert.IsTrue(p9 != null); ICardRecycleRecordProvider p10 = ProviderFactory.Create <ICardRecycleRecordProvider>(connStr); Assert.IsTrue(p10 != null); ICardReleaseRecordProvider p11 = ProviderFactory.Create <ICardReleaseRecordProvider>(connStr); Assert.IsTrue(p11 != null); IEntranceProvider p12 = ProviderFactory.Create <IEntranceProvider>(connStr); Assert.IsTrue(p12 != null); IOperatorLogProvider p13 = ProviderFactory.Create <IOperatorLogProvider>(connStr); Assert.IsTrue(p13 != null); IOperatorProvider p14 = ProviderFactory.Create <IOperatorProvider>(connStr); Assert.IsTrue(p14 != null); IParkProvider p16 = ProviderFactory.Create <IParkProvider>(connStr); Assert.IsTrue(p16 != null); IRoleProvider p17 = ProviderFactory.Create <IRoleProvider>(connStr); Assert.IsTrue(p17 != null); ISnapShotProvider p18 = ProviderFactory.Create <ISnapShotProvider>(connStr); Assert.IsTrue(p18 != null); ISysParameterProvider p19 = ProviderFactory.Create <ISysParameterProvider>(connStr); Assert.IsTrue(p19 != null); IVideoSourceProvider p21 = ProviderFactory.Create <IVideoSourceProvider>(connStr); Assert.IsTrue(p21 != null); IWaitingCommandProvider p24 = ProviderFactory.Create <IWaitingCommandProvider>(connStr); Assert.IsTrue(p24 != null); IWorkstationProvider p25 = ProviderFactory.Create <IWorkstationProvider>(connStr); Assert.IsTrue(p25 != null); }