Пример #1
0
 /// <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;
 }
Пример #2
0
 public InMemoryGameRepo(
     IGameIdentifierProvider gameIdProvider,
     ICardProvider cardProvider,
     IDealerProvider dealerProvider
     )
 {
     _gameIdProvider = gameIdProvider;
     _cardProvider   = cardProvider;
     _dealerProvider = dealerProvider;
 }
Пример #3
0
 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;
 }
Пример #4
0
 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));
 }
Пример #5
0
 /// <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>
 /// 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;
 }
Пример #7
0
        /// <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());
        }
Пример #8
0
        /// <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());
        }
Пример #9
0
 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);
         }
     }
 }
Пример #10
0
        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);
                }
            }
        }
Пример #11
0
        //保存卡片信息,如果存在则直接覆盖
        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));
        }
Пример #12
0
 public CardHub(ICardProvider cardProvider)
 {
     this.cardProvider = cardProvider;
 }
Пример #13
0
 public SoftLinkWrapper(ICardProvider provider, Token token, Func <string> cardName)
 {
     _provider = provider;
     _token    = token;
     _cardName = cardName;
 }
Пример #14
0
 public CardLinker(ICardProvider provider, ICardNameResolver cardNameResolver)
 {
     _provider         = provider;
     _cardNameResolver = cardNameResolver;
 }
Пример #15
0
        /// <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));
        }
Пример #16
0
        /// <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);
        }
Пример #17
0
 public BlackJackGameTests()
 {
     cardProvider           = new CardProviderMock();
     HandIdentifierProvider = new GuidBasedHandIdentifierProviderMock();
 }
Пример #18
0
 public void noCardInitialize(ICardProvider cardProvider, ContentPage parentPage)
 {
     this.cardProvider = cardProvider;
     this.parentPage   = parentPage;
 }
Пример #19
0
        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);
        }