private void PrintCreditNoteFromTicketPleaseWait()
        {
            string error    = "";
            var    number   = BusinessPropsHelper.GenerateNextCreditNoteNumber();
            var    checkSum = new PasswordGenerator().Generate(4, 4, true);


            var result = TransactionQueueHelper.TryDepositByTicketMoneyOnHub(BusinessPropsHelper.GetNextTransactionId(), StationRepository.GetUid(ChangeTracker.CurrentUser), CurrentTicket.ticketNbr, CurrentTicket.checkSum, number, checkSum, ref error);

            if (!result)
            {
                ShowError(error);
            }
            else
            {
                var sucess = PrinterHandler.PrintCreditNote(CurrentTicket.wonAmount, number, checkSum, false, DateTime.MinValue, DateTime.MinValue);

                if (!sucess)
                {
                    GetMoneyFromCreditNote(new CreditNoteWS()
                    {
                        amount = CurrentTicket.wonAmount, number = number, code = checkSum
                    });
                    ShowError(TranslationProvider.Translate(MultistringTags.UNABLE_TO_PRINT_CREDITNOTE) + "\r\n" + TranslationProvider.Translate(MultistringTags.SHOP_FORM_CREDITNOTE) + ": " + number + " " + checkSum);
                }
            }
            Log.Error(error, new Exception(error));

            CurrentTicket = WsdlRepository.LoadTicket(CurrentTicket.ticketNbr, CurrentTicket.checkSum, StationRepository.StationNumber, SelectedLanguage, SelectedLanguage, true);
            ReloadTicket(CurrentTicket);
        }
Ejemplo n.º 2
0
        public void CreditNoteLoggedInUserCashpoolDisabledTest()
        {
            decimal amount = 0;
            decimal factor;

            StationRepository.Setup(x => x.AllowAnonymousBetting).Returns(true);
            StationRepository.Setup(x => x.GetUid(It.IsAny <User>())).Returns(new uid());
            BusinessPropsHelper.Setup(x => x.GetNextTransactionId()).Returns("123");
            TicketHandler.Setup(x => x.TicketsInBasket).Returns(new SyncObservableCollection <Ticket>());
            TicketHandler.Object.TicketsInBasket.Add(new Ticket());
            WsdlRepository.Setup(x => x.DepositByCreditNote(It.IsAny <string>(), It.IsAny <uid>(), It.IsAny <string>(), It.IsAny <string>())).Returns(true);
            WsdlRepository.Setup(x => x.GetBalance(It.IsAny <uid>(), out amount, out factor)).Returns(1010);
            ChangeTracker.Setup(x => x.CurrentUser).Returns(new LoggedInUser(1, "1", 1000, 10, 10, 10));
            string error = "";

            TransactionQueueHelper.Setup(x => x.TryDepositByCreditNoteMoneyOnHub(It.IsAny <string>(), It.IsAny <uid>(), It.IsAny <string>(), It.IsAny <string>(), ref error)).Returns(true);
            var model = new BaseViewModel();

            model.GetMoneyFromCreditNote(new CreditNoteWS()
            {
                amount = 10
            });


            WsdlRepository.Verify(x => x.GetBalance(It.IsAny <uid>(), out amount, out factor));;

            Assert.AreEqual(ChangeTracker.Object.CurrentUser.Cashpool, 1010);
            Assert.AreEqual(TicketHandler.Object.TicketsInBasket[0].Stake, 0);
        }
Ejemplo n.º 3
0
        public void AddMoney(object sender, CashInEventArgs e)
        {
            ChangeTracker.CurrentUser.DailyLimit   -= e.MoneyIn;
            ChangeTracker.CurrentUser.MonthlyLimit -= e.MoneyIn;
            ChangeTracker.CurrentUser.WeeklyLimit  -= e.MoneyIn;
            Exception error   = null;
            var       balance = TransactionQueueHelper.TryDepositMoneyOnHub(BusinessPropsHelper.GetNextTransactionId(), StationRepository.GetUid(ChangeTracker.CurrentUser), e.MoneyIn, true, ref error, e.IsCoin ? CashAcceptorType.CoinAcceptor : CashAcceptorType.BillValidator);

            AddMoneyToTerminal(e.MoneyIn, error == null ? "" : error.ToString(), balance);
        }
        public void LoadFromTransactionQueueAndSaveIncorectTicketsTest()
        {
            ConfigurationManager.AppSettings["CreateDatabase"] = "1";
            StationSettingsUtils.m_sStartupPath = Path.GetDirectoryName(Assembly.GetAssembly(typeof(DatabaseTests)).Location);
            DatabaseManager.EnsureDatabase(false);
            DatabaseCache.EnsureDatabaseCache();
            SportRadar.DAL.NewLineObjects.LineSr.EnsureFromCache();

            var uid = new uid()
            {
                account_id = "1", session_id = "1", station_id = "123"
            };
            var ticket = new TicketWS();



            long[] tiplock        = new long[1];
            long[] tournamentLock = new long[1];
            WsdlRepository.Setup(x => x.SaveTicket("0123", uid, ticket, false, "1234", out tiplock, out tournamentLock)).Throws(new Exception("test"));

            StationRepository.Setup(x => x.StationNumber).Returns("1234");

            MessageMediator.Setup(x => x.SendMessage(It.IsAny <object>(), It.IsAny <string>())).Returns(true);
            var TransactionQueueHelper = new TransactionQueueHelper();

            TransactionQueueHelper.TrySaveTicketOnHub("0123", uid, ticket, "1234", false);


            int count = TransactionQueueHelper.GetCountTransactionQueue();

            Assert.IsTrue(count > 0);


            WsdlRepository.Setup(x => x.SaveTicket(It.IsAny <string>(), It.IsAny <uid>(), It.IsAny <TicketWS>(), It.IsAny <bool>(), It.IsAny <string>(), out tiplock, out tournamentLock)).Throws(new FaultException <HubServiceException>(new HubServiceException()));



            TransactionQueueHelper.TryToSaveTransactionObjectsOnHub();


            int count2 = TransactionQueueHelper.GetCountTransactionQueue();

            Assert.AreEqual(0, count2);
        }
        private decimal RegisterAndGetCashInfo(out DateTime startdate, out DateTime enddate, out Dictionary <decimal, int> cashinNotes)
        {
            var amount = TransactionQueueHelper.TryRegisterMoneyOnHub(StationRepository.GetUid(ChangeTracker.CurrentUser), BusinessPropsHelper.GetNextTransactionId(), false, "STATION_CASH_OUT", (int)ChangeTracker.CurrentUser.AccountId, true, out startdate, out enddate);

            if (enddate - startdate < new TimeSpan(0, 0, 5))
            {
                startdate = DateTime.MinValue;
            }
            cashinNotes = GetNotesValuesAndCount(startdate, enddate);
            amount      = 0;
            foreach (var cashinNote in cashinNotes)
            {
                amount += cashinNote.Key * cashinNote.Value;
            }
            foreach (var cashinNote in cashinNotes)
            {
                Log.Debug("cashin notes:" + cashinNote.Key + " amount: " + cashinNote.Value);
            }
            return(amount);
        }
Ejemplo n.º 6
0
        void _timer_Elapsed(object sender, EventArgs eventArgs)
        {
            if (DateTime.Now.Hour == 0 && DateTime.Now.Minute == 0 && DateTime.Now - lastRefresh > new TimeSpan(23, 59, 0))
            {
                lastRefresh = DateTime.Now;
                Mediator.SendMessage(true, MsgTag.Refresh);
                Mediator.SendMessage(true, MsgTag.RefreshLiveMonitor);
            }
            try
            {
                LanguageRepository.GetAllLanguages(Languages);

                if (CurrentLanguage == null)
                {
                    CurrentLanguage = Languages.FirstOrDefault(x => x.ShortName == StationRepository.DefaultDisplayLanguage.ToUpperInvariant());
                    if (CurrentLanguage != null)
                    {
                        AsyncSelectLanguage(CurrentLanguage.ShortName);
                    }
                }

                if (!Languages.Contains(CurrentLanguage) && CurrentLanguage != Languages.FirstOrDefault())
                {
                    CurrentLanguage = Languages.FirstOrDefault();
                    if (CurrentLanguage != null)
                    {
                        AsyncSelectLanguage(CurrentLanguage.ShortName);
                    }
                }

                TransactionQueueCounter = TransactionQueueHelper.GetCountTransactionQueue();
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
            }



            Datetime = DateTime.Now;
        }
        public void askWindow_YesClick(object sender, EventArgs e)
        {
            PrinterHandler.InitPrinter(true);
            if (StationRepository.PrinterStatus == 0)
            {
                ShowPrinterErrorMessage();
                return;
            }

            long cashoutId = GetLastCashoutId() + 1;
            Dictionary <Decimal, int> CashinNotes = GetNotesValuesAndCount(cashoutId);

            TransactionQueueHelper.TryRegisterMoneyOnHub(StationRepository.GetUid(ChangeTracker.CurrentUser), BusinessPropsHelper.GetNextTransactionId(), ref _cashinCurrentAmount, false, "STATION_CASH_OUT", (int)ChangeTracker.CurrentUser.AccountId, true);
            foreach (var cashinNote in CashinNotes)
            {
                Log.Debug("cashin notes:" + cashinNote.Key + " amount: " + cashinNote.Value);
            }
            PrinterHandler.PrintCashBalance(CashinNotes, ChangeTracker.LastCashoutDate, DateTime.Now, _cashinCurrentAmount, 0, _cashinCurrentAmount, false, false, ChangeTracker.CurrentUser.Username, GetNumberOfCheckpoints() + 1);
            UpdateCashSummary();
            Mediator.SendMessage("", MsgTag.RefreshCashOperations);
        }
        public void NoConnectionTest()
        {
            ConfigurationManager.AppSettings["CreateDatabase"] = "1";
            StationSettingsUtils.m_sStartupPath = Path.GetDirectoryName(Assembly.GetAssembly(typeof(DatabaseTests)).Location);
            DatabaseManager.EnsureDatabase(false);
            DatabaseCache.EnsureDatabaseCache();
            SportRadar.DAL.NewLineObjects.LineSr.EnsureFromCache();
            TestWsdlRepository repository = new TestWsdlRepository();

            IoCContainer.Kernel.Rebind <IWsdlRepository>().ToConstant(repository).InSingletonScope();
            repository.ConnectionProblem = true;
            var TransactionQueueHelper = new TransactionQueueHelper();

            IoCContainer.Kernel.Rebind <ITransactionQueueHelper>().ToConstant(TransactionQueueHelper).InSingletonScope();
            var uid = new uid()
            {
                account_id = "1", session_id = "1", station_id = "123"
            };
            var ticket = new TicketWS();

            TransactionQueueHelper.TrySaveTicketOnHub("0123", uid, ticket, "1234", false);

            StationRepository.Setup(x => x.StationNumber).Returns("1234");

            MessageMediator.Setup(x => x.SendMessage(It.IsAny <object>(), "Error")).Returns(true);
            MainViewModel footerViewModel = new MainViewModel();
            int           count           = TransactionQueueHelper.GetCountTransactionQueue();

            Assert.IsTrue(count > 0);
            repository.ConnectionProblem = false;
            footerViewModel.TryToSaveTransactionObjectsOnHub();


            //TransactionQueueHelper.TryToSaveTransactionObjectsOnHub();

            count = TransactionQueueHelper.GetCountTransactionQueue();
            Assert.AreEqual(0, count);
            //MessageMediator.Verify(x => x.SendMessage(It.IsAny<object>(), "Error"));;
        }
        public void TicketSavePassedTest()
        {
            StationSettingsUtils.m_sStartupPath = Path.GetDirectoryName(Assembly.GetAssembly(typeof(DatabaseTests)).Location);
            DatabaseManager.EnsureDatabase(false);
            DatabaseCache.EnsureDatabaseCache();
            SportRadar.DAL.NewLineObjects.LineSr.EnsureFromCache();

            var uid = new uid()
            {
                account_id = "1", session_id = "1", station_id = "123"
            };
            var ticket = new TicketWS();


            var TransactionQueueHelper = new TransactionQueueHelper();
            int countBeforeSaving      = TransactionQueueHelper.GetCountTransactionQueue();

            long[] tiplock        = new long[1];
            long[] tournamentLock = new long[1];
            WsdlRepository.Setup(x => x.SaveTicket("0123", uid, ticket, false, "1234", out tiplock, out tournamentLock)).Throws(new System.ServiceModel.FaultException <HubServiceException>(new HubServiceException()));

            StationRepository.Setup(x => x.StationNumber).Returns("1234");

            MessageMediator.Setup(x => x.SendMessage(It.IsAny <object>(), It.IsAny <string>())).Returns(true);

            try
            {
                TransactionQueueHelper.TrySaveTicketOnHub("0123", uid, ticket, "1234", false);
            }
            catch (Exception ex)
            {
                Assert.IsTrue(ex.GetType() == typeof(FaultException <HubServiceException>));
            }


            int count = TransactionQueueHelper.GetCountTransactionQueue();

            Assert.AreEqual(countBeforeSaving, count);
        }
        public void PleaseWaitCloseBalance()
        {
            PrinterHandler.InitPrinter(true);
            if (StationRepository.PrinterStatus == 0)
            {
                ShowPrinterErrorMessage();
                return;
            }

            long cashoutId = GetLastCashoutId() + 1;
            Dictionary <Decimal, int> CashinNotes = GetNotesValuesAndCount(cashoutId);
            decimal cashoutCurrentAmount          = 0;

            TransactionQueueHelper.TryRegisterMoneyOnHub(StationRepository.GetUid(ChangeTracker.CurrentUser), BusinessPropsHelper.GetNextTransactionId(), ref _cashinCurrentAmount, false, "STATION_CASH_OUT", (int)ChangeTracker.CurrentUser.AccountId, true);
            foreach (var cashinNote in CashinNotes)
            {
                Log.Debug("cashin notes:" + cashinNote.Key + " amount: " + cashinNote.Value);
            }
            PrinterHandler.PrintCashBalance(CashinNotes, StartDate, DateTime.Now, _cashinCurrentAmount, 0, _cashinCurrentAmount, false, false, ChangeTracker.CurrentUser.Username, GetNumberOfCheckpoints() + 1);
            BusinessPropsHelper.GetAccountingAmount(out _cashinCurrentAmount, out cashoutCurrentAmount);
            IsEnabledCloseBalance = _cashinCurrentAmount - cashoutCurrentAmount > 0;
        }