private void dispatcherTimerCoin_Tick(object sender, EventArgs e)
        {
            bool result = false;

            dispatcherTimerCoin.Stop();

            result = StationSettings.CheckCoinAcceptor();

            if (result == true)
            {
                IsCoinAcceptorFound = DeviceStatus.STATUS_OK;
                //CoinAcceptorStatus = "Coin Acceptor\r\n Status: OK";
                CoinAcceptorStatus = String.Format(
                    "{0}\r\n {1}",
                    TranslationProvider.Translate(MultistringTags.TERMINAL_VERIFICATION_COIN_ACCEPTOR),
                    TranslationProvider.Translate(MultistringTags.TERMINAL_VERIFICATION_STATUS_OK)
                    );
            }
            else
            {
                IsCoinAcceptorFound = DeviceStatus.STATUS_NOK;
                //CoinAcceptorStatus = "Coin Acceptor\r\n Status: Not Found!";
                CoinAcceptorStatus = String.Format(
                    "{0}\r\n {1}",
                    TranslationProvider.Translate(MultistringTags.TERMINAL_VERIFICATION_COIN_ACCEPTOR),
                    TranslationProvider.Translate(MultistringTags.TERMINAL_VERIFICATION_STATUS_NOT_FOUND)
                    );
            }
        }
        public void AlwaysActiveDisabled()
        {
            var     stationRepository = new StationRepository();
            decimal reserved;
            decimal factor;

            WsdlRepository.Setup(x => x.GetBalance(It.IsAny <uid>(), out reserved, out factor)).Returns(10m);

            Repository.Setup(x => x.GetAllStationAppConfigs()).Returns(new List <StationAppConfigSr>()
            {
                new StationAppConfigSr("CashAcceptorAlwayActive", 0),
                new StationAppConfigSr("AllowAnonymousBetting", 1),
            });

            TicketHandler.Setup(x => x.TicketsInBasket).Returns(new SyncObservableCollection <Ticket>());
            TicketHandler.Object.TicketsInBasket.Add(new Ticket());
            TicketHandler.Object.TicketsInBasket[0].MaxBet = 500;
            ChangeTracker.Object.CurrentUser = new AnonymousUser("1", 1);

            StationSettings StationSettings = new StationSettings();

            StationSettings.PrefFileName = "PrefFile.txt";
            StationSettings.Init();
            StationSettings.GetCashInManagerInstance();


            stationRepository.SetCashInDefaultState(10);
            System.Threading.Thread.Sleep(500);
            Assert.AreEqual(StationSettings.IsCashInEnabled, false);
        }
        public void AnonynousCashpoolNoBets()
        {
            var     stationRepository = new StationRepository();
            decimal reserved;
            decimal factor;

            WsdlRepository.Setup(x => x.GetBalance(It.IsAny <uid>(), out reserved, out factor)).Returns(10m);
            StationSettings StationSettings = new StationSettings();

            IoCContainer.Kernel.Rebind <IStationSettings>().ToConstant(StationSettings).InSingletonScope();

            TicketHandler.Setup(x => x.TicketsInBasket).Returns(new SyncObservableCollection <Ticket>());
            TicketHandler.Object.TicketsInBasket.Add(new Ticket());
            ChangeTracker.Setup(x => x.CurrentUser).Returns(new AnonymousUser("1", 1));
            Repository.Setup(x => x.GetAllStationAppConfigs()).Returns(new List <StationAppConfigSr>()
            {
                new StationAppConfigSr("CashAcceptorAlwayActive", 1),
                new StationAppConfigSr("AllowAnonymousBetting", 1),
            });

            StationSettings.PrefFileName = "PrefFile.txt";
            StationSettings.Init();
            StationSettings.GetCashInManagerInstance();

            stationRepository.SetCashInDefaultState(10);
            System.Threading.Thread.Sleep(500);
            Assert.AreEqual(StationSettings.IsCashInEnabled, true);
        }
예제 #4
0
    private void SetSettingsForAudioStation(int station)
    {
        StationSettings settings = GetStationSettings(station);
        AudioSource     aStation = GetAudioStation(station);

        aStation.pitch  = settings.Pitch;
        aStation.volume = settings.Volume;
        aStation.loop   = settings.Loop;
    }
예제 #5
0
 public void NoPreffileTest()
 {
     try
     {
         StationSettings StationSettings = new StationSettings();
         StationSettings.Init();
     }
     catch (FileNotFoundException)
     {
     }
 }
예제 #6
0
 private void InitCashin()
 {
     if (StationRepository.TurnOffCashInInit)
     {
         return;
     }
     while (!StationSettings.IsCashinOk)
     {
         Thread.Sleep(100);
     }
     StationSettings.SubscribeCashin(AsyncAddMoney);
     StationSettings.SubscribeLimitExceeded(LimitExceeded);
 }
예제 #7
0
        private bool GetCoinValidatorInventory()
        {
            bool result = false;

            try
            {
                List <Nbt.Services.Scf.CashIn.DeviceInfo> list = StationSettings.GetDeviceInventoryList();

                if (list != null)
                {
                    foreach (Nbt.Services.Scf.CashIn.DeviceInfo di in list)
                    {
                        if (di.device_type == Nbt.Services.Scf.CashIn.DeviceType.COIN_ACCEPTOR)
                        {
                            CoinValidatorProducer    = di.device_producer;
                            CoinValidatorModel       = di.device_model;
                            CoinValidatorSN          = di.device_serial_number;
                            CoinValidatorFW          = di.device_firmware_version;
                            IsCoinValidatorConnected = true;

                            return(true);
                        }
                    }
                }
                coin_di.Clone(CoinValidator.GetInventoryData());

                if (coin_di != null)
                {
                    IsCoinValidatorConnected = coin_di.IsInitialized;
                    CoinValidatorProducer    = coin_di.ManufacturerID;
                    CoinValidatorModel       = coin_di.ProductCode;
                    CoinValidatorSN          = coin_di.SerialNumber;
                    CoinValidatorFW          = coin_di.SW_Version;
                    if (IsCoinValidatorConnected)
                    {
                        result = true;
                    }
                }
                else
                {
                    IsCoinValidatorConnected = false;
                }
            }
            catch
            {
            }

            return(result);
        }
예제 #8
0
        private void dispatcherTimerCash_Tick(object sender, EventArgs e)
        {
            bool result = false;

            dispatcherTimerCash.Stop();

            result = StationSettings.CheckBillValidator();
            if (result == true)
            {
                IsCashAcceptorFound = DeviceStatus.STATUS_OK;
                CashAcceptorStatus  = "Cash Acceptor\r\n Status: OK";
            }
            else
            {
                IsCashAcceptorFound = DeviceStatus.STATUS_NOK;
                CashAcceptorStatus  = "Cash Acceptor\r\n Status: Not Found!";
            }
        }
예제 #9
0
        public void PrintBarcodeTest()
        {
            StationSettings settings = new StationSettings();

            Kernel.Rebind <IStationSettings>().ToConstant(settings);
            settings.ReadPrefFileData();
            var PrinterHandler = new PrinterHandler();
            var printer        = PrinterHandler.InitPrinter(true);

            TranslationProvider.Setup(x => x.TranslateForPrinter(It.IsAny <MultistringTag>())).Returns("123");
            var str = "123456789012345";

            for (int i = 15; i < 25; i++)
            {
                str = str + i.ToString();
                PrinterHandler.WriteBarcodeCardNumber(str);
            }
            //Thread.Sleep(1000000);
        }
        public override void Close()
        {
            var minLimit = ChangeTracker.CurrentUser.DailyLimit;

            if (ChangeTracker.CurrentUser.WeeklyLimit < minLimit)
            {
                minLimit = ChangeTracker.CurrentUser.WeeklyLimit;
            }
            if (ChangeTracker.CurrentUser.MonthlyLimit < minLimit)
            {
                minLimit = ChangeTracker.CurrentUser.MonthlyLimit;
            }

            StationRepository.SetCashInDefaultState(minLimit);

            StationSettings.UnSubscribeCashin(DepositCashIn_CashIn);

            base.Close();
        }
        public void AnonymousNoCashpoolHaveBets()
        {
            var stationRepository = new StationRepository();

            IoCContainer.Kernel.Rebind <IChangeTracker>().To <ChangeTracker>().InSingletonScope();
            var             ChangeTracker   = IoCContainer.Kernel.Get <IChangeTracker>();
            StationSettings StationSettings = new StationSettings();

            IoCContainer.Kernel.Rebind <IStationSettings>().ToConstant(StationSettings).InSingletonScope();

            decimal reserved;
            decimal factor;

            WsdlRepository.Setup(x => x.GetBalance(It.IsAny <uid>(), out reserved, out factor)).Returns(10m);

            TicketHandler.Setup(x => x.TicketsInBasket).Returns(new SyncObservableCollection <Ticket>());
            TicketHandler.Object.TicketsInBasket.Add(new Ticket());
            TicketHandler.Object.TicketsInBasket[0].MaxBet = 500;
            TicketHandler.Object.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd()
            {
                OutcomeId = 1, OddId = { Value = 1 }, BetDomain = new TestBetDomain()
                {
                    BetDomainId = 1, Match = new TestMatchLn()
                    {
                        MatchId = 1
                    }
                }, Value = { Value = 1.85M }
            }));
            ChangeTracker.CurrentUser = new AnonymousUser("1", 1);
            Repository.Setup(x => x.GetAllStationAppConfigs()).Returns(new List <StationAppConfigSr>()
            {
                new StationAppConfigSr("CashAcceptorAlwayActive", 1),
                new StationAppConfigSr("AllowAnonymousBetting", 1),
            });
            StationSettings.PrefFileName = "PrefFile.txt";
            StationSettings.Init();
            StationSettings.GetCashInManagerInstance();

            stationRepository.SetCashInDefaultState(10);
            System.Threading.Thread.Sleep(500);
            Assert.AreEqual(StationSettings.IsCashInEnabled, true);
        }
예제 #12
0
        private void CheckCashValidators()
        {
            List <Nbt.Services.Scf.CashIn.DeviceInfo> list = StationSettings.GetShortDeviceInventoryList();

            if (list != null)
            {
                foreach (Nbt.Services.Scf.CashIn.DeviceInfo di in list)
                {
                    if (di.device_type == Nbt.Services.Scf.CashIn.DeviceType.COIN_ACCEPTOR)
                    {
                        coinAcceptorState = true;
                        coinAcceptorInfo  = di.device_model;
                    }
                    else if (di.device_type == Nbt.Services.Scf.CashIn.DeviceType.BILL_VALIDATOR)
                    {
                        billValidatorState = true;
                        billValidatorInfo  = di.device_model;
                    }
                }
            }
        }
예제 #13
0
        public void PrintdublicateTest()
        {
            IoCContainer.Kernel.Rebind <IStationRepository>().To <StationRepository>().InSingletonScope();

            var rep = IoCContainer.Kernel.Get <IStationRepository>();

            //rep.Init();
            rep.UsePrinter = true;

            IoCContainer.Kernel.Unbind <IConfidenceFactor>();
            IoCContainer.Kernel.Bind <IConfidenceFactor>().ToConstant <IConfidenceFactor>(ConfidenceFactor.Object).InSingletonScope();
            ConfidenceFactor.Setup(x => x.CalculateFactor(It.IsAny <Ticket>())).Returns(1000000);

            IoCContainer.Kernel.Unbind <IStationRepository>();
            IoCContainer.Kernel.Unbind <IChangeTracker>();
            var ChangeTracker = new ChangeTracker();

            IoCContainer.Kernel.Bind <IChangeTracker>().ToConstant <IChangeTracker>(ChangeTracker).InSingletonScope();

            IoCContainer.Kernel.Unbind <IDataBinding>();
            var DataBinding = new DataBinding();

            IoCContainer.Kernel.Bind <IDataBinding>().ToConstant <IDataBinding>(DataBinding).InSingletonScope();

            IoCContainer.Kernel.Unbind <ITicketHandler>();
            var TicketHandler = new TicketHandler();

            IoCContainer.Kernel.Bind <ITicketHandler>().ToConstant <ITicketHandler>(TicketHandler).InSingletonScope();

            BusinessPropsHelper.Setup(x => x.GetNextTransactionId()).Returns("123");

            var stationRepository = new StationRepository();

            IoCContainer.Kernel.Bind <IStationRepository>().ToConstant <IStationRepository>(stationRepository).InSingletonScope();
            stationRepository.MaxOdd            = 1000;
            stationRepository.MaxCombination    = 1000;
            stationRepository.MaxStakeSystemBet = 1000;
            stationRepository.MaxStakeCombi     = 1000;
            stationRepository.MaxSystemBet      = 1000;
            stationRepository.MaxWinSystemBet   = 10000;
            stationRepository.MaxWinSingleBet   = 10000;
            stationRepository.IsReady           = true;
            stationRepository.BonusFromOdd      = 1.30m;
            stationRepository.UsePrinter        = true;
            StationSettings.Setup(x => x.UsePrinter).Returns(true);
            long[] tipLock;
            long[] tournamentlock;
            TicketHandler.TicketsInBasket.Add(new Ticket());
            WsdlRepository.Setup(x => x.SaveTicket(It.IsAny <string>(), It.IsAny <uid>(), It.IsAny <TicketWS>(), It.IsAny <bool>(), It.IsAny <string>(), out tipLock, out tournamentlock)).Returns("1");
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd {
                OutcomeId = 1, OddId = { Value = 1 }, OddView = new TestOddVw()
                {
                    Value = 1
                }, BetDomain = new TestBetDomain {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 1, Match = new TestMatchLn {
                        MatchId = 1, Code = { Value = 1 }, MatchView = new TestMatchVw {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 1.14M }
            })
            {
                IsBank = true
            });
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd {
                OutcomeId = 2, OddId = { Value = 2 }, OddView = new TestOddVw()
                {
                    Value = 2
                }, BetDomain = new TestBetDomain {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 2, Match = new TestMatchLn {
                        MatchId = 2, Code = { Value = 2 }, MatchView = new TestMatchVw {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 1.40M }
            }));
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd {
                OutcomeId = 3, OddId = { Value = 3 }, OddView = new TestOddVw()
                {
                    Value = 3
                }, BetDomain = new TestBetDomain {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 3, Match = new TestMatchLn {
                        MatchId = 3, Code = { Value = 3 }, MatchView = new TestMatchVw {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 1.50M }
            }));
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd {
                OutcomeId = 4, OddId = { Value = 4 }, OddView = new TestOddVw()
                {
                    Value = 4
                }, BetDomain = new TestBetDomain {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 4, Match = new TestMatchLn {
                        MatchId = 4, Code = { Value = 4 }, MatchView = new TestMatchVw {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 1.25M }
            }));


            stationRepository.BonusRangeList.Add(new BonusRangeWS {
                tipSize = 1, bonus = 3
            });


            TicketHandler.TicketsInBasket[0].Stake = 10;

            ChangeTracker.CurrentUser = new LoggedInUser(0, "", 100, 10, 10, 10);

            TicketHandler.TicketState = TicketStates.System;
            TicketHandler.TicketsInBasket[0].SystemX = 2;

            TicketHandler.TicketsInBasket[0].Stake = 5;


            TicketHandler.UpdateTicket();


            var      ticketActions = new TicketActions();
            TicketWS ticket        = ticketActions.CreateNewTicketWS(TicketHandler.TicketsInBasket[0]);

            ticketActions.SaveTicket(ref ticket, ChangeTracker.CurrentUser);

            var PrinterHandler = new PrinterHandler();

            stationRepository.UsePrinter = true;
            PrinterHandler.PrintTicket(ticket, false);

            Assert.AreEqual(PrinterHandler.NotPrintedItemsCount, 1);
            PrinterHandler.PrintTicket(ticket, false);
            Assert.AreEqual(PrinterHandler.NotPrintedItemsCount, 2);

            PrinterHandler.DeleteAllPrinterObjects();
            Assert.AreEqual(0, PrinterHandler.NotPrintedItemsCount);
        }
예제 #14
0
        private bool GetCashValidatorInventory()
        {
            bool result = false;

            // after over devices will be added, refactoring is needed!!!

            try
            {
                List <Nbt.Services.Scf.CashIn.DeviceInfo> list = StationSettings.GetDeviceInventoryList();

                if (list != null)
                {
                    foreach (Nbt.Services.Scf.CashIn.DeviceInfo di in list)
                    {
                        if (di.device_type == Nbt.Services.Scf.CashIn.DeviceType.BILL_VALIDATOR)
                        {
                            BillValidatorProducer    = di.device_producer;
                            BillValidatorModel       = di.device_model;
                            BillValidatorSN          = di.device_serial_number;
                            BillValidatorFW          = di.device_firmware_version;
                            IsCashValidatorConnected = DeviceStatus.STATUS_OK;

                            return(true);
                        }
                    }
                }

                cash_di.Clone(CashValidator.GetInventoryData());
                if (!CashValidator.IsDataSetValid())
                {
                    IsCashValidatorConnected = DeviceStatus.STATUS_UNKNOWN;
                }

                if (cash_di != null)
                {
                    BillValidatorProducer = cash_di.ManufacturerID;
                    BillValidatorModel    = cash_di.ProductCode;
                    BillValidatorSN       = cash_di.SerialNumber;
                    BillValidatorFW       = cash_di.SW_Version;
                    if (CashValidator.IsDataSetValid())
                    {
                        if (cash_di.IsInitialized && cash_di.BillOperationMode != 3)
                        {
                            IsCashValidatorConnected = DeviceStatus.STATUS_OK;
                            result = true;
                        }
                        else
                        {
                            IsCashValidatorConnected = DeviceStatus.STATUS_NOK;
                        }
                    }
                }
                else if (CashValidator.IsDataSetValid())
                {
                    IsCashValidatorConnected = DeviceStatus.STATUS_NOK;
                }
            }
            catch
            {
            }

            return(result);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="DepositMoneyViewModel"/> class.
 /// </summary>
 /// <remarks>
 /// </remarks>
 public DepositMoneyViewModel()
 {
     StationSettings.SubscribeCashin(DepositCashIn_CashIn);
     StationRepository.EnableCashIn();
 }
예제 #16
0
        private bool GetCashValidatorInventory()
        {
            bool result = false;
            bool coin_acceptor_detected  = false;
            bool bill_validator_detected = false;


            try
            {
                List <Nbt.Services.Scf.CashIn.DeviceInfo> list = StationSettings.GetDeviceInventoryList();

                if (list != null)
                {
                    foreach (Nbt.Services.Scf.CashIn.DeviceInfo di in list)
                    {
                        if (di.device_type == Nbt.Services.Scf.CashIn.DeviceType.BILL_VALIDATOR)
                        {
                            BillValidatorProducer = di.device_producer;
                            BillValidatorModel    = di.device_model;
                            BillValidatorSN       = di.device_serial_number;
                            BillValidatorFW       = di.device_firmware_version;

                            if (StationSettings.IsCashDatasetValid())
                            {
                                IsCashValidatorConnected = DeviceStatus.STATUS_OK;
                            }
                            else
                            {
                                IsCashValidatorConnected = DeviceStatus.STATUS_UNKNOWN;
                            }

                            bill_validator_detected = true;
                        }
                        else if (di.device_type == Nbt.Services.Scf.CashIn.DeviceType.COIN_ACCEPTOR)
                        {
                            CoinValidatorProducer    = di.device_producer;
                            CoinValidatorModel       = di.device_model;
                            CoinValidatorSN          = di.device_serial_number;
                            CoinValidatorFW          = di.device_firmware_version;
                            IsCoinValidatorConnected = true;

                            coin_acceptor_detected = true;
                        }
                    }
                }
            }
            catch
            {
            }
            if (!bill_validator_detected)
            {
                BillValidatorProducer    = String.Empty;
                BillValidatorModel       = String.Empty;
                BillValidatorSN          = String.Empty;
                BillValidatorFW          = String.Empty;
                IsCashValidatorConnected = DeviceStatus.STATUS_NOK;
            }
            if (!coin_acceptor_detected)
            {
                CoinValidatorProducer    = String.Empty;
                CoinValidatorModel       = String.Empty;
                CoinValidatorSN          = String.Empty;
                CoinValidatorFW          = String.Empty;
                IsCoinValidatorConnected = false;
            }

            return(result);
        }