private void OnRegisterExecute()
        {
            if (!ValidateMyField())
            {
                return;
            }

            pin = "";
            try
            {
                operatorId = WsdlRepository.RegisterOperator(StationRepository.GetUid(ChangeTracker.CurrentUser), FirstName.Value, LastName.Value, Username.Value, Password.Value, Language.Value, Convert.ToInt32(OperatorType.Value), Email.Value);
                if (operatorId > 0)
                {
                    IsEnabledBindCard = true;
                    IsEnabledRegister = false;
                    ShowMessage(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_DONE).ToString());
                }
                else
                {
                    ShowError(TranslationProvider.Translate(MultistringTags.SERVER_ERROR).ToString());
                }
            }
            catch (FaultException <HubServiceException> ex)
            {
                switch (ex.Detail.code)
                {
                case 101:
                    Username.ErrorText = TranslationProvider.Translate(MultistringTags.USERNAME_ALREADY_REGISTERED).ToString();
                    return;

                default:
                    ShowError(ex.Detail.message);
                    return;
                }
            }
        }
        private void onLoadData()
        {
            decimal tempBalance;

            globalCollection = new ObservableCollection <OperatorShiftCheckpoint>(WsdlRepository.GetOperatorShiftCheckpoints(StationRepository.LocationID, Int16.Parse(StationRepository.GetUid(ChangeTracker.CurrentUser).account_id), out tempBalance, false));

            ObservableCollection <OperatorShiftCheckpoint> tempCollection = new ObservableCollection <OperatorShiftCheckpoint>();

            if ((currentPosition + pageSize) < globalCollection.Count)
            {
                for (int i = currentPosition; i < pageSize; i++)
                {
                    tempCollection.Add(globalCollection[i]);
                }
            }
            else
            {
                for (int i = currentPosition; i < globalCollection.Count; i++)
                {
                    tempCollection.Add(globalCollection[i]);
                }
            }

            //calculate balance
            //CalculateBalance();

            _Checkpoints           = new ObservableCollection <OperatorShiftCheckpoint>(tempCollection);
            EnabledPrintCheckpoint = _Checkpoints.Count > 0 && SelectedCheckpoint != null && SelectedCheckpoint.id != -1000;
            OnPropertyChanged("Checkpoints");
            OnPropertyChanged("EnabledPrintCheckpoint");

            //Balance = tempBalance;
            //OnPropertyChanged("Balance");

            CurrentShiftReport();
        }
Exemple #3
0
        public AccountingBaseViewModel()
        {
            ShowCommand = new Command(ShowOverview);
            //CloseCommand = new Command(CloseWindow);
            CreateCheckpointCommand = new Command(OnCheckPoint);
            ShowCreditCommand       = new Command(OnCredit);
            ShowCheckPointsCommand  = new Command(OnShowCheckPoints);
            CheckPointsCommand      = new Command(OnCheckPoints);
            BackCommand             = new Command(OnBackCommand);

            EnabledCheckPoint      = ChangeTracker.CurrentUser.CloseBalance;
            EnabledShowCheckPoints = ChangeTracker.CurrentUser.ViewStationBalance;
            EnabledCredit          = ChangeTracker.CurrentUser.Credit;
            if (ChangeTracker.CurrentUser != null)
            {
                decimal billsAmount;
                decimal coinsamount;
                int     billscount;
                int     coinscount;
                var     amount = WsdlRepository.GetStationCashInfo(StationRepository.StationNumber, out billsAmount, out billscount, out coinsamount, out coinscount);

                IsEnabledCloseBalance = amount > 0 && ChangeTracker.CurrentUser.EmptyBox;
            }
        }
        private void onLoadData(bool b)
        {
            uid accountUid = new uid();

            //accountUid.account_id = 466.ToString(CultureInfo.InvariantCulture);

            accountUid = StationRepository.GetUid(ChangeTracker.CurrentUser);

            settlementHistoryCollection = new ObservableCollection <SettlementHistory>(WsdlRepository.GetSettlementHistory(accountUid));

            _Checkpoints = new ObservableCollection <SettlementHistory>(settlementHistoryCollection);
            OnPropertyChanged("Checkpoints");

            _listOfCheckpoints.Clear();
            foreach (var checkpoint in _Checkpoints)
            {
                var cPoint = new HistoryCheckpoint(checkpoint.startDate, checkpoint.endDate, (int)checkpoint.id, checkpoint.settlement_saldo);
                _listOfCheckpoints.Add(cPoint);
            }
            OnPropertyChanged("ListOfCheckpoints");
            OnPropertyChanged("SelectedCheckpoint");
        }
Exemple #5
0
        private void PleaseWaitOnSave()
        {
            string result = "";

            try
            {
                valueForm form = Values();
                result = WsdlRepository.UpdateProfile((int)ChangeTracker.CurrentUser.AccountId, StationRepository.GetUid(new LoggedInUser(EditUserId.AccountId, null, 0, 0, 0, 0)), form);
            }
            catch (FaultException <HubServiceException> ex)
            {
                switch (ex.Detail.code)
                {
                case 101:
                    foreach (global::ViewModels.Registration registrationField in ChangeUserProfileFields)
                    {
                        if (registrationField.Name == "username")
                        {
                            registrationField.ErrorText = TranslationProvider.Translate(MultistringTags.USERNAME_ALREADY_REGISTERED).ToString();
                            break;
                        }
                    }
                    break;

                case 102:
                    foreach (global::ViewModels.Registration registrationField in ChangeUserProfileFields)
                    {
                        if (registrationField.Name == "email")
                        {
                            registrationField.ErrorText = TranslationProvider.Translate(MultistringTags.MAIL_ALREADY_REGISTERED).ToString();
                            break;
                        }
                    }
                    break;

                case 103:
                    if (ex.Message.Contains("date_of_birth"))
                    {
                        foreach (global::ViewModels.Registration registrationField in ChangeUserProfileFields.Where(registrationField => registrationField.Name == "date_of_birth"))
                        {
                            registrationField.ErrorText = TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_INVALIDVALUE).ToString();
                            break;
                        }
                    }
                    if (ex.Message.Contains("firstname"))
                    {
                        foreach (global::ViewModels.Registration registrationField in ChangeUserProfileFields.Where(registrationField => registrationField.Name == "firstname"))
                        {
                            registrationField.ErrorText = TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_INVALIDVALUE).ToString();
                            break;
                        }
                    }
                    if (ex.Message.Contains("lastname"))
                    {
                        foreach (global::ViewModels.Registration registrationField in ChangeUserProfileFields.Where(registrationField => registrationField.Name == "lastname"))
                        {
                            registrationField.ErrorText = TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_INVALIDVALUE).ToString();
                            break;
                        }
                    }
                    if (ex.Message.Contains("password"))
                    {
                        foreach (global::ViewModels.Registration registrationField in ChangeUserProfileFields.Where(registrationField => registrationField.Name == "password"))
                        {
                            registrationField.ErrorText = TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_INVALIDVALUE).ToString();
                            break;
                        }
                    }
                    if (ex.Message.Contains("email"))
                    {
                        foreach (global::ViewModels.Registration registrationField in ChangeUserProfileFields.Where(registrationField => registrationField.Name == "email"))
                        {
                            registrationField.ErrorText = TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_EMAIL_WRONGFORMAT).ToString();
                            break;
                        }
                    }
                    if (ex.Message.Contains("address"))
                    {
                        foreach (global::ViewModels.Registration registrationField in ChangeUserProfileFields.Where(registrationField => registrationField.Name == "address"))
                        {
                            registrationField.ErrorText = TranslationProvider.Translate(MultistringTags.TERMINAL_INVALID_ADRESS).ToString();
                            break;
                        }
                    }
                    if (ex.Message.Contains("document_number"))
                    {
                        foreach (global::ViewModels.Registration registrationField in ChangeUserProfileFields.Where(registrationField => registrationField.Name == "document_number"))
                        {
                            registrationField.ErrorText = TranslationProvider.Translate(MultistringTags.TERMINAL_INVALID_DOCUMENT_NUMBER).ToString();
                            break;
                        }
                    }
                    if (ex.Message.Contains("phone"))
                    {
                        foreach (global::ViewModels.Registration registrationField in ChangeUserProfileFields.Where(registrationField => registrationField.Name == "phone"))
                        {
                            registrationField.ErrorText = TranslationProvider.Translate(MultistringTags.TERMINAL_INVALID_PHONE_NUMBER).ToString();
                            break;
                        }
                    }
                    break;

                case 104:
                    foreach (global::ViewModels.Registration registrationField in ChangeUserProfileFields)
                    {
                        if (registrationField.Name == "username")
                        {
                            registrationField.ErrorText = ex.Reason.Translations.Where(x => x.XmlLang.ToLowerInvariant() == SelectedLanguage.ToLowerInvariant()).Select(x => x.Text).FirstOrDefault();
                            break;
                        }
                    }
                    break;

                default:
                    ShowError(ex.Detail.message);
                    break;
                }
            }
            if (result == "true")
            {
                IsEnabledForEditing = false;
                Mediator.SendMessage(MsgTag.HideKeyboard, MsgTag.HideKeyboard);

                List <global::ViewModels.Registration> temp = new List <global::ViewModels.Registration>(ChangeUserProfileFields);
                foreach (var field in temp)
                {
                    field.IsEnabled       = false;
                    field.IsFocused       = false;
                    field.EmptyValidation = field.IsEnabled;
                }

                ChangeUserProfileFields = new List <global::ViewModels.Registration>(temp);
            }
        }
Exemple #6
0
        private void modelCreditNote_YesClickPleaseWait(object sender, EventArgs e, bool immediatelyPaid = false)
        {
            try
            {
                bool result = WsdlRepository.PayCreditNote(StationRepository.GetUid(ChangeTracker.CurrentUser), PaymentNoteNumber.Substring(0, PaymentNoteNumber.Length - 4), PaymentNoteNumber.Substring(PaymentNoteNumber.Length - 4), ChangeTracker.CurrentUser.AccountId.ToString(), StationRepository.StationNumber);
                if (!result)
                {
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.CANT_WITHDRAW_MONEY_FROM_PAID_CREDIT_NOTE) as string);
                }
                else
                {
                    if (immediatelyPaid)
                    {
                        ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.REGISTER_PAYMENT_DONE, PaymentNoteNumber), null, false, 3);
                    }
                    else
                    {
                        PrinterHandler.PrintPaymentRecept(PaymentNoteNumber.Substring(0, PaymentNoteNumber.Length - 4),
                                                          PaymentNoteNumber.Substring(PaymentNoteNumber.Length - 4),
                                                          amount, true);
                        ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.PAYMENT_DONE) as string);
                    }
                }
                PaymentNoteNumber = "";
            }
            catch (FaultException <HubServiceException> error)
            {
                switch (error.Detail.code)
                {
                case 150:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.NOT_ENOUGHT_MONEY_TO_WITHDRAW).ToString());
                    break;

                case 179:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_NOTE_INVALIDLOCATION).ToString());
                    break;

                case 1791:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_NOTE_INVALIDFRANCHISOR).ToString());
                    break;

                case 404:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_PAID_CREDITNOTE).ToString());
                    break;

                case 170:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.PAYMENTNOTE_NOTFOUND).ToString());
                    break;

                case 171:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.PAYMENT_NOTE_EXPIRED).ToString());
                    break;

                case 174:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.PAYMENT_NOTE_PAID).ToString());
                    break;

                case 401:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.CREDIT_NOTE_ALREADY_EXISTS).ToString());
                    break;

                case 402:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_CREDIT_NOTE_NOT_ACTIVE).ToString());
                    break;

                case 403:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_CREDIT_NOTE_INVALID_AMOUNT).ToString());
                    break;

                case 405:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.CREDIT_NOTE_EXPIRED).ToString());
                    break;

                default:
                    ErrorWindowService.ShowError(error.Detail.message);

                    break;
                }
            }
        }
        public void MultyTicketWsAndPrintTest()
        {
            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>();
            IoCContainer.Kernel.Bind <IChangeTracker>().To <ChangeTracker>().InSingletonScope();
            var ChangeTracker = IoCContainer.Kernel.Get <IChangeTracker>();

            IoCContainer.Kernel.Unbind <ITicketHandler>();
            IoCContainer.Kernel.Bind <ITicketHandler>().To <TicketHandler>().InSingletonScope();
            var TicketHandler = IoCContainer.Kernel.Get <ITicketHandler>();

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

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

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

            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.IsReady           = true;
            stationRepository.BonusFromOdd      = 3.0m;
            long[] tipLock;
            long[] tournamentlock;
            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.Add(new Ticket());

            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 = 2.80M }
            }));
            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 = 2.10M }
            }));
            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 = 3.30M }
            }));
            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 = 2.70M }
            }));
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd {
                OutcomeId = 5, OddId = { Value = 5 }, OddView = new TestOddVw()
                {
                    Value = 5
                }, BetDomain = new TestBetDomain {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 5, Match = new TestMatchLn {
                        MatchId = 5, Code = { Value = 5 }, MatchView = new TestMatchVw {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 3.10M }
            }));


            TicketHandler.TicketsInBasket[0].Stake = 10;
            stationRepository.BonusRangeList.Add(new BonusRangeWS {
                tipSize = 1, bonus = 5
            });
            stationRepository.BonusRangeList.Add(new BonusRangeWS {
                tipSize = 2, bonus = 10
            });

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

            TicketHandler.TicketState = TicketStates.Multy;

            TicketHandler.TicketsInBasket[0].Stake = 10;


            TicketHandler.UpdateTicket();

            Assert.AreEqual(10m, TicketHandler.Stake);
            Assert.AreEqual(1786.52628000000m, TicketHandler.CurrentTicketPossibleWin);
            Assert.AreEqual(10m, TicketHandler.BonusPercentage);
            Assert.AreEqual(162.41148000000m, TicketHandler.BonusValue);

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

            ticketActions.SaveTicket(ref ticket, ChangeTracker.CurrentUser);
            Assert.AreEqual(5, ticket.bets[0].bankTips.Length);
            Assert.AreEqual(10m, ticket.stake);
            Assert.AreEqual(1.1m, ticket.superBonus);
            stationRepository.UsePrinter = true;
            Repository.Expect(x => x.GetOddBySvrId(It.IsAny <long>())).Returns(new OddVw(new OddLn {
                NameTag = { Value = "test" }
            }));
            TranslationProvider.Object.PrintingLanguage = "EN";
            TranslationProvider.Setup(x => x.Translate(It.IsAny <MultistringTag>())).Returns("{0}");
            PrinterHandler printerHandler = new PrinterHandler();
            var            xml            = printerHandler.CreateTicketXmlForPrinting(ticket, false, null);
            var            stringxml      = xml.ToString();

            if (CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator == ".")
            {
                Assert.IsTrue(stringxml.Contains("162.4"));
            }
            if (CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator == ",")
            {
                Assert.IsTrue(stringxml.Contains("162,4"));
            }
        }
        public void CreateTicketWsTest()
        {
            IoCContainer.Kernel.Unbind <IConfidenceFactor>();
            IoCContainer.Kernel.Bind <IConfidenceFactor>().ToConstant <IConfidenceFactor>(ConfidenceFactor.Object).InSingletonScope();
            ConfidenceFactor.Expect(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;
            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;

            TicketWS newticket = new TicketWS();

            TicketActions.Setup(x => x.CreateNewTicketWS(It.IsAny <Ticket>())).Returns(newticket);

            TicketHandler.UpdateTicket();

            Assert.AreEqual(2, TicketHandler.TicketsInBasket[0].SystemX);
            Assert.AreEqual(3, TicketHandler.TicketsInBasket[0].SystemY);
            Assert.AreEqual(5m, TicketHandler.Stake);
            Assert.AreEqual(11.203824999999999999999999999m, TicketHandler.CurrentTicketPossibleWin);


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

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


            Assert.AreEqual(1.03m, ticket.superBonus);
            Assert.AreEqual(5m, ticket.stake);
            Assert.AreEqual(2.17m, ticket.bets[0].maxOdd);
            Assert.AreEqual(11.203824999999999999999999999m, TicketHandler.CurrentTicketPossibleWin);
            Assert.AreEqual(11.203824999999999999999999999m, ticket.bets[0].maxWin);
            Assert.AreEqual(3m, TicketHandler.BonusPercentage);
            if (CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator == ".")
            {
                Assert.AreEqual("0.32", SportBetting.WPF.Prism.OldCode.PrinterHandler.Decimal2String(TicketHandler.BonusValue, 2));
            }
            if (CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator == ",")
            {
                Assert.AreEqual("0,32", SportBetting.WPF.Prism.OldCode.PrinterHandler.Decimal2String(TicketHandler.BonusValue, 2));
            }
        }
        private void DoLogin()
        {
            Validate(true);
            try
            {
                int sucess = PleaseWaitLogin();

                if (sucess == 1)
                {
                    HideWindow();
                    if (ChangeTracker.CurrentUser is OperatorUser)
                    {
                        WaitOverlayProvider.ShowWaitOverlay();

                        ChangeTracker.SelectedLive          = false;
                        ChangeTracker.SelectedResults       = false;
                        ChangeTracker.SelectedTicket        = false;
                        ChangeTracker.SelectedSports        = false;
                        ChangeTracker.SelectedVirtualSports = false;
                        MyRegionManager.NavigateUsingViewModel <UserManagementViewModel>(RegionNames.ContentRegion);
                    }
                    else if (ChangeTracker.CurrentUser is LoggedInUser)
                    {
                        WaitOverlayProvider.DisposeAll();

                        //check terms and conditions
                        profileForm form = WsdlRepository.LoadProfile(StationRepository.GetUid(ChangeTracker.CurrentUser));
                        if (form != null)
                        {
                            foreach (formField accountingField in form.fields)
                            {
                                if (accountingField.name == "terms_and_cond_version")
                                {
                                    string value = "";
                                    if (accountingField.value == null)
                                    {
                                        value = "1.0";
                                    }
                                    else
                                    {
                                        value = accountingField.value;
                                    }

                                    if (value != ChangeTracker.TermsAndConditionsVersion)
                                    {
                                        ChangeTracker.NewTermsAccepted = false;
                                        Mediator.SendMessage <bool>(false, MsgTag.AcceptNewTermsVersion);
                                    }
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        WaitOverlayProvider.DisposeAll();
                    }
                }
                else if (sucess == 0)
                {
                    ShowError(TranslationProvider.Translate(MultistringTags.SERVER_ERROR) as string);
                }
                else if (sucess == 2) //passwordreminder
                {
                    QuestionWindowService.ShowMessage(TranslationProvider.Translate(MultistringTags.TERMINAL_PASSWORD_NOT_CHANGED).ToString(), null, null, DoChangePassword, CancelPasswordChange);
                }
                else if (sucess == 3) // forced reminder
                {
                    QuestionWindowService.ShowMessage(TranslationProvider.Translate(MultistringTags.TERMINAL_PASSWORD_NOT_CHANGED).ToString(), null, null, DoChangePasswordForced, CancelForcedPassChange);
                }
            }
            catch (FaultException <HubServiceException> exception)
            {
                WaitOverlayProvider.DisposeAll();
                switch (exception.Detail.code)
                {
                case 111:
                    OnPropertyChanged("PasswordMasked");
                    DoRaisePropertyChanged(new Tuple <string, string>("UserName", TranslationProvider.Translate(MultistringTags.SHOP_FORM_CHECK_USERNAME).ToString()));
                    UsernameLoginError = false;
                    break;

                case 112:
                    DoRaisePropertyChanged(new Tuple <string, string>("PasswordMasked", TranslationProvider.Translate(MultistringTags.INVALID_PASSWORD).ToString()));
                    PasswordLoginError = false;
                    break;

                case 113:
                    ShowError(TranslationProvider.Translate(MultistringTags.LOGIN_FRANCHISOR_INCORRECT).ToString());
                    PasswordLoginError = false;
                    break;

                case 114:
                    DoRaisePropertyChanged(new Tuple <string, string>("UserName", TranslationProvider.Translate(MultistringTags.USER_IS_NOT_VERIFIED).ToString()));
                    PasswordLoginError = false;
                    break;

                case 115:
                    ShowError(TranslationProvider.Translate(MultistringTags.CANNOT_LOGIN_TO_THIS_STATION).ToString());
                    PasswordLoginError = false;
                    break;

                case 116:
                    ShowError(TranslationProvider.Translate(MultistringTags.LOGIN_RESTRICTED).ToString());
                    PasswordLoginError = false;
                    break;

                case 117:
                    ShowError(TranslationProvider.Translate(MultistringTags.USER_INACTIVE).ToString());
                    PasswordLoginError = false;
                    break;

                case 118:
                    ShowError(TranslationProvider.Translate(MultistringTags.INVALIDLOCATION).ToString());
                    PasswordLoginError = false;
                    break;

                case 172:
                    PasswordLoginError = false;

                    string sTime     = "";
                    string sUsername = "";
                    if (exception.Detail.parameters != null)
                    {
                        //if (exception.Detail.parameters[2].name == "blockedUntil")
                        //{
                        //    sTime = exception.Detail.parameters[2].value;
                        //    long milliSeconds = Int64.Parse(sTime);
                        //    DateTime UTCBaseTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                        //    DateTime dt = UTCBaseTime.Add(new TimeSpan(milliSeconds * TimeSpan.TicksPerMillisecond)).ToLocalTime();
                        //    dt = LocalDateTime.Get(dt);
                        //    sTime = dt.ToString("dd.MM.yyyy HH:mm");
                        //    sUsername = exception.Detail.parameters[1].value;
                        //}
                        //else
                        //{
                        //    sTime = exception.Detail.parameters[1].value;
                        //    sUsername = exception.Detail.parameters[1].value;
                        //}

                        for (int i = 0; i < exception.Detail.parameters.Length; i++)
                        {
                            if (exception.Detail.parameters[i].name == "blockedUntil")
                            {
                                sTime = exception.Detail.parameters[i].value;
                                long     milliSeconds = Int64.Parse(sTime);
                                DateTime UTCBaseTime  = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                                DateTime dt           = UTCBaseTime.Add(new TimeSpan(milliSeconds * TimeSpan.TicksPerMillisecond)).ToLocalTime();
                                sTime = dt.ToString("dd.MM.yyyy HH:mm");
                            }

                            if (exception.Detail.parameters[i].name == "username")
                            {
                                sUsername = exception.Detail.parameters[i].value;
                            }
                        }
                    }
                    ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_USERNAME_BLOCKED, sUsername, sTime));

                    break;

                case 124:
                    ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_ADMIN_LOGIN_PROHIBITED).ToString());
                    PasswordLoginError = false;
                    break;

                default:     // 113, 114
                    ShowError(exception.Detail.message);
                    break;
                }
            }
        }
        private void OnShowTicket(TicketView ticketView)
        {
            try
            {
                CurrentTicket = WsdlRepository.LoadTicket(ticketView.Number, ticketView.CheckSum, StationRepository.StationNumber, SelectedLanguage, SelectedLanguage, true);
                var a = new TicketDetailsViewModel();
                a.OnNavigationCompleted();
                BalanceOperations = a.BalanceOperations;

                if (CurrentTicket != null)
                {
                    OnPropertyChanged("PendingApprovalVisibility");
                    ShowSuperBonus       = CurrentTicket.superBonus > 1;
                    SuperBonusValue      = CurrentTicket.superBonusValue;
                    ShowManipulationFee  = CurrentTicket.manipulationFee > 0;
                    ManipulationFee      = CurrentTicket.manipulationFee;
                    ManipulationFeeValue = CurrentTicket.manipulationFeeValue;
                    Stake = CurrentTicket != null ? CurrentTicket.stake : 0;

                    Station           = CurrentTicket.ticketNbr.Substring(0, 4);
                    TicketNumber      = CurrentTicket.ticketNbr;
                    Date              = CurrentTicket.acceptedTime;
                    ShowStakePerRow   = "";
                    SuperBonusPercent = (CurrentTicket.superBonus - 1) * 100;
                    if (CurrentTicket.bets != null)
                    {
                        long prevBankGroupID = -1;
                        int  bankCount       = 0;
                        int  multiWayCount   = 0;
                        foreach (TipWS tip in CurrentTicket.bets[0].tips2BetMulti)
                        {
                            if (tip.bankGroupID != prevBankGroupID && !tip.bank)
                            {
                                multiWayCount++;
                                prevBankGroupID = tip.bankGroupID;
                            }
                            if (tip.bank)
                            {
                                bankCount++;
                            }
                        }
                        StakePerRow = CurrentTicket.stake / CurrentTicket.bets[0].rows;
                        switch (CurrentTicket.bets[0].betType)
                        {
                        case Bet.BET_TYPE_COMBI:
                            BetType = TranslationProvider.Translate(MultistringTags.Multiple);
                            break;

                        case Bet.BET_TYPE_COMBIPATH:
                            BetType         = TranslationProvider.Translate(MultistringTags.Multiple_and_Ways);
                            ShowStakePerRow = "1";
                            break;

                        case Bet.BET_TYPE_SINGLE:
                            BetType = TranslationProvider.Translate(MultistringTags.SINGLES);
                            break;

                        case Bet.BET_TYPE_SYSTEM:
                            BetType = TranslationProvider.Translate(MultistringTags.Full_Cover) + " " + CurrentTicket.bets[0].systemX + "/" + CurrentTicket.bets[0].systemY;
                            if (bankCount > 0)
                            {
                                BetType += "+" + bankCount + "B";
                            }
                            ShowStakePerRow = "1";
                            break;

                        case Bet.BET_TYPE_SYSTEMPATH:
                            string sTmp =
                                TranslationProvider.Translate(MultistringTags.TERMINAL_PRINT_SYSTEM) + " " +
                                CurrentTicket.bets[0].systemX + "/" + CurrentTicket.bets[0].systemY;
                            if (bankCount > 0)
                            {
                                sTmp += "+" + bankCount + "B";
                            }
                            if (multiWayCount > 0)
                            {
                                sTmp += "+" + multiWayCount + "W";
                            }
                            BetType         = sTmp;
                            ShowStakePerRow = "1";
                            break;
                        }
                        PossibleWinning = CurrentTicket.bets[0].maxWin;
                    }
                    Paid = CurrentTicket.paid
                               ? TranslationProvider.Translate(MultistringTags.terminal_yes)
                               : TranslationProvider.Translate(MultistringTags.terminal_no);
                    //PaidAt = CurrentTicket.Paid ? CurrentTicket.PaidTime.ToShortDateString() : "-";
                    PaidAt        = CurrentTicket.paid ? String.Format("{0:dd.MM.yyyy HH:mm}", CurrentTicket.paidTime) : "-";
                    PaymentAmount = CurrentTicket.wonAmount;

                    //if (CurrentTicket.bets != null)
                    //    BalanceOperations = LoadOdds(new ObservableCollection<BetWS>(CurrentTicket.bets));
                    //string[] tabColor = GetTabColor();
                    //TabForecolor = tabColor[0];
                    //TabBgcolor = tabColor[1];
                    OnPropertyChanged("ShowTranferToAccountButton");
                    OnPropertyChanged("ShowCreditNoteButton");
                    OnPropertyChanged("TransferMoneyString");
                }
            }
            catch (System.ServiceModel.FaultException <HubServiceException> exception)
            {
                ShowError(exception.Detail.message);
            }
            //CurrentTicket = WsdlRepository.LoadTicket(ticketView.Number, ticketView.CheckSum, StationRepository.StationNumber, SelectedLanguage, SelectedLanguage, true);

            //    MyRegionManager.NavigateUsingViewModel<TicketDetailsViewModel>(RegionNames.UserProfileContentRegion);
        }
Exemple #11
0
        public void OpenUserTicketsTest()
        {
            AuthorizationService = MockRepository.GenerateStub <IAuthorizationService>();
            StationRepository    = MockRepository.GenerateStub <IStationRepository>();
            LanguageRepository   = MockRepository.GenerateStub <ILanguageRepository>();
            LineProvider         = MockRepository.GenerateStub <ILineProvider>();
            BusinessPropsHelper  = MockRepository.GenerateStub <IBusinessPropsHelper>();
            DataBinding          = MockRepository.GenerateStub <IDataBinding>();
            ConfidenceFactor     = MockRepository.GenerateStub <IConfidenceFactor>();


            IoCContainer.Kernel.Bind <IDataBinding>().ToConstant <IDataBinding>(DataBinding).InSingletonScope();
            IoCContainer.Kernel.Bind <IAuthorizationService>().ToConstant <IAuthorizationService>(AuthorizationService).InSingletonScope();
            IoCContainer.Kernel.Bind <IStationRepository>().ToConstant <IStationRepository>(StationRepository).InSingletonScope();
            IoCContainer.Kernel.Bind <ILanguageRepository>().ToConstant <ILanguageRepository>(LanguageRepository).InSingletonScope();
            IoCContainer.Kernel.Bind <ILineProvider>().ToConstant <ILineProvider>(LineProvider).InSingletonScope();
            IoCContainer.Kernel.Bind <IBusinessPropsHelper>().ToConstant <IBusinessPropsHelper>(BusinessPropsHelper).InSingletonScope();
            IoCContainer.Kernel.Bind <IConfidenceFactor>().ToConstant <IConfidenceFactor>(ConfidenceFactor).InSingletonScope();

            ConfidenceFactor.Expect(x => x.CalculateFactor(new Ticket())).Return(1000000).IgnoreArguments();

            StationRepository.TurnOffCashInInit = true;
            StationRepository.Expect(x => x.AllowAnonymousBetting).Return(true);
            StationRepository.Expect(x => x.IsReady).Return(true);
            StationRepository.Expect(x => x.StationNumber).Return("0024");
            StationRepository.Expect(x => x.HubSettings).Return(new Dictionary <string, string>());
            StationRepository.Currency = "EUR";

            ChangeTracker                           = IoCContainer.Kernel.Get <IChangeTracker>();
            ChangeTracker.CurrentUser               = new AnonymousUser("1", 1);
            ChangeTracker.CurrentUser.Cashpool      = 100000;
            ChangeTracker.CurrentUser.AvailableCash = 100000;


            Dispatcher.Invoke(() =>
            {
                Window = MyRegionManager.FindWindowByViewModel <MainViewModel>();
                Window.Show();
            });

            Thread.Sleep(1000);

            ChangeTracker.CurrentUser = new LoggedInUser(1, "111", 1000)
            {
                Username = "******"
            };

            var header = MyRegionManager.CurrentViewModelInRegion(RegionNames.HeaderRegion) as HeaderViewModel;

            header.OpenAuthorizationCommand.Execute("");

            Thread.Sleep(1000);

            var userProfileMenuViewModel = MyRegionManager.CurrentViewModelInRegion(RegionNames.UserProfileMenuRegion) as UserProfileMenuViewModel;

            var ticket = new UserTicket()
            {
                checkSum = "1234", createdAt = DateTime.Now, ticketNumber = "1241252352346"
            };
            string total;

            WsdlRepository.Expect(x => x.GetUserTickets("1", (ticketCategory)1, new AccountTicketSorting()
            {
                field = AccountTicketSortingFields.DateCreated, value = AccountTicketSortingValues.Desc
            }, 0, 20, out total)).Return(new UserTicket[] { ticket }).OutRef("1000").IgnoreArguments();

            userProfileMenuViewModel.ShowTicketsCommand.Execute("");

            Thread.Sleep(1000);



            Assert.AreEqual(1, ChangeTracker.Tickets.Count);


            var userTicketsViewModel = MyRegionManager.CurrentViewModelInRegion(RegionNames.UserProfileContentRegion) as UserTicketsViewModel;

            Assert.AreEqual(1, userTicketsViewModel.TicketsStartPage);

            Dispatcher.Invoke(() =>
            {
                userTicketsViewModel.SelectedType = userTicketsViewModel.TicketType[3];
            });
            Dispatcher.Invoke(() =>
            {
                userTicketsViewModel.NextPage.Execute("");
            });



            Assert.AreEqual(2, userTicketsViewModel.TicketsStartPage);
            Assert.AreEqual(1, userTicketsViewModel.Tickets.Count);

            if (1000 % userTicketsViewModel.Pagesize > 0)
            {
                Assert.AreEqual(1000 / userTicketsViewModel.Pagesize + 1, userTicketsViewModel.AllPages);
            }

            if (1000 % userTicketsViewModel.Pagesize == 0)
            {
                Assert.AreEqual(1000 / userTicketsViewModel.Pagesize, userTicketsViewModel.AllPages);
            }

            Assert.AreEqual(2, userTicketsViewModel.TicketsStartPage);
            Assert.AreEqual(3, userTicketsViewModel.SelectedType.Id);

            userTicketsViewModel.ShowTicketCommand.Execute(userTicketsViewModel.Tickets[0]);

            var nextModel = MyRegionManager.CurrentViewModelType(RegionNames.UserProfileContentRegion);

            Assert.AreEqual(typeof(TicketDetailsViewModel), nextModel);

            UserProfileViewModel userprofileWindow = null;

            Dispatcher.Invoke(() =>
                              { userprofileWindow = ChangeTracker.UserProfileWindow.DataContext as UserProfileViewModel; });

            WsdlRepository.BackToRecord();

            WsdlRepository.Expect(x => x.GetUserTickets("1", (ticketCategory)1, new AccountTicketSorting()
            {
                field = AccountTicketSortingFields.DateCreated, value = AccountTicketSortingValues.Desc
            }, 0, 20, out total)).Return(new UserTicket[] { ticket, ticket, ticket, ticket }).OutRef("1000").IgnoreArguments();

            WsdlRepository.Replay();
            Dispatcher.Invoke(() =>
                              { userprofileWindow.BackCommand.Execute(""); });

            var prevModel = MyRegionManager.CurrentViewModelInRegion(RegionNames.UserProfileContentRegion);

            Thread.Sleep(1000);

            Assert.AreEqual(4, ((UserTicketsViewModel)prevModel).Tickets.Count);
            Assert.IsTrue(((UserTicketsViewModel)prevModel).AllPages > 0);
            Assert.AreEqual(2, userTicketsViewModel.TicketsStartPage);
            Assert.AreEqual(3, userTicketsViewModel.SelectedType.Id);


            userProfileMenuViewModel.LogoutCommand.Execute("");


            Thread.Sleep(1000);
            WsdlRepository.BackToRecord();
            Dispatcher.Invoke(() =>
            {
                Window.Close();
            });
        }
Exemple #12
0
        public void OpenShopPaymentsViewModelNavigateBackTest()
        {
            DataBinding          = MockRepository.GenerateStub <IDataBinding>();
            AuthorizationService = MockRepository.GenerateStub <IAuthorizationService>();
            StationRepository    = MockRepository.GenerateStub <IStationRepository>();
            LanguageRepository   = MockRepository.GenerateStub <ILanguageRepository>();
            LineProvider         = MockRepository.GenerateStub <ILineProvider>();
            BusinessPropsHelper  = MockRepository.GenerateStub <IBusinessPropsHelper>();
            IoCContainer.Kernel.Bind <IDataBinding>().ToConstant <IDataBinding>(DataBinding).InSingletonScope();
            IoCContainer.Kernel.Bind <IAuthorizationService>().ToConstant <IAuthorizationService>(AuthorizationService).InSingletonScope();
            IoCContainer.Kernel.Bind <IStationRepository>().ToConstant <IStationRepository>(StationRepository).InSingletonScope();
            IoCContainer.Kernel.Bind <ILanguageRepository>().ToConstant <ILanguageRepository>(LanguageRepository).InSingletonScope();
            IoCContainer.Kernel.Bind <ILineProvider>().ToConstant <ILineProvider>(LineProvider).InSingletonScope();
            IoCContainer.Kernel.Bind <IBusinessPropsHelper>().ToConstant <IBusinessPropsHelper>(BusinessPropsHelper).InSingletonScope();



            StationRepository.TurnOffCashInInit = true;
            StationRepository.Expect(x => x.IsReady).Return(true);
            StationRepository.Expect(x => x.StationNumber).Return("0024");
            StationRepository.Expect(x => x.SyncInterval).Return(20000);
            StationRepository.Expect(x => x.HubSettings).Return(new Dictionary <string, string>());



            Dispatcher.Invoke(() =>
            {
                Window = MyRegionManager.FindWindowByViewModel <MainViewModel>();
                Window.Show();
            });

            ChangeTracker.CurrentUser = new OperatorUser("111")
            {
                Permissions = new string[] { "read_shop_payments", "write_shop_payments" }
            };

            var userManagementViewModel = MyRegionManager.NavigateUsingViewModel <UserManagementViewModel>(RegionNames.ContentRegion);

            decimal paymentBalance       = 0;
            decimal locationCashPosition = 0;
            decimal totalLocationBalance = 0;

            PaymentFlowData[] list = new PaymentFlowData[3] {
                new PaymentFlowData(), new PaymentFlowData(), new PaymentFlowData(),
            };
            long total = 0;

            WsdlRepository.Expect(x => x.GetStationPaymentFlowData("0024", 0, 20, out paymentBalance, out locationCashPosition, out totalLocationBalance, out list, out total)).Return(10).OutRef(locationCashPosition, totalLocationBalance, paymentBalance, list, total).IgnoreArguments();

            Dispatcher.Invoke(() =>
            {
                userManagementViewModel.ShopPaymentsCommand.Execute(null);
            });
            Thread.Sleep(1000);
            var shopPayments = MyRegionManager.CurrentViewModelInRegion(RegionNames.UsermanagementContentRegion) as ShopPaymentsViewModel;

            while (shopPayments.Payments.Count < 3)
            {
                shopPayments = MyRegionManager.CurrentViewModelInRegion(RegionNames.UsermanagementContentRegion) as ShopPaymentsViewModel;
                Thread.Sleep(100);
            }
            for (int i = 0; i < 5; i++)
            {
                shopPayments = MyRegionManager.CurrentViewModelInRegion(RegionNames.UsermanagementContentRegion) as ShopPaymentsViewModel;

                while (!shopPayments.IsReady)
                {
                    Thread.Sleep(1);
                }

                Dispatcher.Invoke(() =>
                {
                    shopPayments.onAddPaymentClicked.Execute("");
                });

                var addcreditModel = MyRegionManager.CurrentViewModelInRegion(RegionNames.UsermanagementContentRegion) as AddCreditPaymentViewModel;
                while (!addcreditModel.IsReady)
                {
                    Thread.Sleep(1);
                }
                Dispatcher.Invoke(() =>
                                  { addcreditModel.CloseCommand.Execute(""); });
            }


            shopPayments = MyRegionManager.CurrentViewModelInRegion(RegionNames.UsermanagementContentRegion) as ShopPaymentsViewModel;
            while (shopPayments.Payments.Count < 3)
            {
                shopPayments = MyRegionManager.CurrentViewModelInRegion(RegionNames.UsermanagementContentRegion) as ShopPaymentsViewModel;
                Thread.Sleep(100);
            }



            Dispatcher.Invoke(() =>
            {
                Window.Close();
            });
        }
Exemple #13
0
        private ObservableCollection <CashOperation> GetCashOperations(long startId, long endId = long.MaxValue)
        {
            var     cashOperations    = new ObservableCollection <CashOperation>();
            decimal cashinValue       = 0;
            decimal cashoutValue      = 0;
            string  additionalCommand = "";

            if (startId == 0 && endId == 0)
            {
                CashInOperationsNum  = cashinValue;
                CashOutOperationsNum = cashoutValue;
                OnPropertyChanged("CashInOperationsNum");
                OnPropertyChanged("CashOutOperationsNum");
                return(cashOperations);
            }

            try
            {
                if (PayIn && !PayOut)
                {
                    additionalCommand = "and MoneyIn=1";
                }
                else if (!PayIn && PayOut)
                {
                    additionalCommand = "and MoneyIn=0";
                }

                List <IDbDataParameter> lParams = new List <IDbDataParameter>()
                {
                    SqlObjectFactory.CreateParameter("lastCashoutStartId", startId, string.Empty),
                    SqlObjectFactory.CreateParameter("lastCashoutEndId", endId, string.Empty)
                };

                //List<StationCashSr> lStationCash = StationCashSr.GetStationCashListByQuery("SELECT * FROM StationCash where stationcashid >= @lastCashoutStartId and stationcashid <= @lastCashoutEndId " + additionalCommand + " order by DateModified desc", lParams);
                CashOperationtData[] lStationCash = WsdlRepository.GetStationCashHistory(StationRepository.StationNumber, StartDate, EndDate);  //WsdlRepository.GetStationCashHistory(StationRepository.StationNumber, StartDate, EndDate);

                foreach (CashOperationtData stationCashBo in lStationCash)
                {
                    decimal multiplier;
                    string  type = stationCashBo.operation_type;
                    string  translation;
                    if (type == "CASH_IN")
                    {
                        multiplier   = 1;
                        cashinValue += stationCashBo.amount;
                        translation  = TranslationProvider.Translate(MultistringTags.STATION_CASH_IN).ToString();
                    }
                    else if (type == "EMPTY_BOX")
                    {
                        multiplier    = -1;
                        cashoutValue += stationCashBo.amount;
                        translation   = TranslationProvider.Translate(MultistringTags.STATION_CASH_OUT).ToString();
                    }
                    else
                    {
                        translation = "";
                        multiplier  = 1;
                    }

                    //if (type == "CASH_IN")
                    //{
                    //    cashinValue += stationCashBo.amount;
                    //}
                    //else if (type == "EMPTY_BOX")
                    //{
                    //    cashoutValue += stationCashBo.amount;
                    //}
                    cashOperations.Add(new CashOperation(0, stationCashBo.amount * multiplier, stationCashBo.created_at, translation,
                                                         String.IsNullOrEmpty(stationCashBo.operator_name) ? StationRepository.StationTyp : stationCashBo.operator_name));
                }
            }
            catch (Exception)
            {
            }
            CashInOperationsNum  = cashinValue;
            CashOutOperationsNum = cashoutValue;
            OnPropertyChanged("CashInOperationsNum");
            OnPropertyChanged("CashOutOperationsNum");
            return(cashOperations);
        }
Exemple #14
0
        private void Initfields()
        {
            var fields = new List <global::ViewModels.Registration>();

            global::ViewModels.Registration fieldUsername = new global::ViewModels.Registration();
            fieldUsername.Mandatory = true;
            fieldUsername.Name      = "username";
            fieldUsername.Type      = FieldType.Text;
            fieldUsername.Rules     = new List <fieldValidationRule> {
                new fieldValidationRule {
                    name = "MAX", value = "255"
                }, new fieldValidationRule {
                    name = "MIN", value = "3"
                }
            };
            fields.Add(fieldUsername);
            Username           = fieldUsername;
            Username.IsFocused = true;

            global::ViewModels.Registration fieldPassword = new global::ViewModels.Registration();
            fieldPassword.Mandatory = true;
            fieldPassword.Name      = "password";
            fieldPassword.Type      = FieldType.Password;
            fieldPassword.Rules     = new List <fieldValidationRule> {
                new fieldValidationRule {
                    name = "MAX", value = "35"
                }, new fieldValidationRule {
                    name = "MIN", value = "3"
                }
            };
            fields.Add(fieldPassword);
            Password = fieldPassword;



            global::ViewModels.Registration fieldConfirmPassword = new global::ViewModels.Registration();
            fieldConfirmPassword.Mandatory = true;
            fieldConfirmPassword.Name      = "confirm_password";
            fieldConfirmPassword.Type      = FieldType.Password2;
            fieldConfirmPassword.Rules     = new List <fieldValidationRule> {
                new fieldValidationRule {
                    name = "MAX", value = "35"
                }, new fieldValidationRule {
                    name = "MIN", value = "3"
                }, new fieldValidationRule()
            };
            fieldConfirmPassword.PasswordConfirmation = fieldPassword;
            fieldPassword.PasswordConfirmation        = fieldConfirmPassword;
            fields.Add(fieldConfirmPassword);
            ConfirmPassword = fieldConfirmPassword;


            global::ViewModels.Registration fieldFirstName = new global::ViewModels.Registration();
            fieldFirstName.Name      = "first_name";
            fieldFirstName.Mandatory = true;
            fieldFirstName.Type      = FieldType.Text;
            fieldFirstName.Rules     = new List <fieldValidationRule> {
                new fieldValidationRule {
                    name = "MAX", value = "35"
                }, new fieldValidationRule {
                    name = "MIN", value = "3"
                }
            };
            fields.Add(fieldFirstName);
            FirstName = fieldFirstName;


            global::ViewModels.Registration fieldLastName = new global::ViewModels.Registration();
            fieldLastName.Name      = "last_name";
            fieldLastName.Mandatory = true;
            fieldLastName.Type      = FieldType.Text;
            fieldLastName.Rules     = new List <fieldValidationRule> {
                new fieldValidationRule {
                    name = "MAX", value = "35"
                }, new fieldValidationRule {
                    name = "MIN", value = "3"
                }
            };
            fields.Add(fieldLastName);
            LastName = fieldLastName;

            global::ViewModels.Registration fieldEmail = new global::ViewModels.Registration();
            fieldEmail.Name = "email";
            fieldEmail.Type = FieldType.EMail;
            fields.Add(fieldEmail);
            Email = fieldEmail;

            global::ViewModels.Registration fieldOperatorType = new global::ViewModels.Registration();
            OperatorType                = fieldOperatorType;
            fieldOperatorType.Name      = "operator_type";
            fieldOperatorType.Mandatory = true;
            fieldOperatorType.Type      = FieldType.Selector;

            bool isEmpty = true;

            if (ChangeTracker.CurrentUser != null && ChangeTracker.CurrentUser.CreateOperator)
            {
                var opList = WsdlRepository.GetAllRoles(ChangeTracker.CurrentUser.AccountId.ToString());

                if (opList == null || opList.Count() <= 0)
                {
                    fieldOperatorType.Visible   = false;
                    fieldOperatorType.IsEnabled = false;
                }

                foreach (UserRole userRole in opList)
                {
                    if (userRole.login_to_terminal == 1)
                    {
                        isEmpty = false;
                        fieldOperatorType.Options.Add(new SelectorValue(userRole.name, userRole.id.ToString()));
                    }
                }
            }

            //if (ChangeTracker.CurrentUser != null && ChangeTracker.CurrentUser.CreateOperator)
            //    fieldOperatorType.Options.Add(new SelectorValue(TranslationProvider.Translate(MultistringTags.Location_owner).ToString(), "3"));
            //if (ChangeTracker.CurrentUser != null && ChangeTracker.CurrentUser.CreateOperator)
            //    fieldOperatorType.Options.Add(new SelectorValue(TranslationProvider.Translate(MultistringTags.OPERATOR).ToString(), "4"));

            if (!isEmpty)
            {
                fields.Add(fieldOperatorType);
            }
            else
            {
                IsWarningVisible = Visibility.Visible;
                AreFieldsVisible = Visibility.Collapsed;
                Mediator.SendMessage(MsgTag.HideKeyboard, MsgTag.HideKeyboard);
            }

            fieldOperatorType.Rules = new List <fieldValidationRule>();
            fieldOperatorType.Rules.Add(new fieldValidationRule()
            {
                name = "MIN", value = "1"
            });
            fieldOperatorType.Value           = fieldOperatorType.Options.Select(x => x.Value).FirstOrDefault();
            fieldOperatorType.EmptyValidation = false;


            global::ViewModels.Registration fieldLanguage = new global::ViewModels.Registration();
            Language = fieldLanguage;
            fieldLanguage.Mandatory = true;
            fieldLanguage.Name      = "language";
            fieldLanguage.Type      = FieldType.DropDown;
            fieldLanguage.Options   = new ObservableCollection <SelectorValue>();
            var languages = new SyncObservableCollection <Language>();

            LanguageRepository.GetAllLanguages(languages);
            foreach (var language in languages)
            {
                fieldLanguage.Options.Add(new SelectorValue(language.ShortName, language.ShortName));
            }
            fieldLanguage.Value           = fieldLanguage.Options.Select(x => x.Value).FirstOrDefault();
            fieldLanguage.EmptyValidation = false;
            fields.Add(fieldLanguage);

            foreach (var registration in fields)
            {
                registration.IsEnabled = true;
                registration.Value     = string.Empty;
                var tag = MultistringTag.Assign("TERMINAL_FORM_" + registration.Name.ToUpperInvariant(), registration.Name.ToUpperInvariant());
                registration.Label = TranslationProvider.Translate(tag) as string;

                registration.isValidatedEvent += field_isValidatedEvent;
                if (registration.Mandatory)
                {
                    registration.Label += "*";
                }
            }
            FormFields = fields;
        }
        private void CreateCheckpoint()
        {
            OperatorShiftCheckpoint checkpoint = new OperatorShiftCheckpoint();

            DateTime stDate;
            DateTime enDate;
            int      ebTN;
            int      pTN;
            decimal  ebTA;
            decimal  pTA;
            decimal  tempBalance;
            string   operatorName;

            if (CheckForEmptyBox())
            {
                ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_PLEASE_EMPTY_BOX).ToString(), null, false);
                return;
            }

            try
            {
                OperatorShiftData data = WsdlRepository.CreateOperatorShiftCheckpoint(StationRepository.LocationID, Int16.Parse(StationRepository.GetUid(ChangeTracker.CurrentUser).account_id));
                stDate       = data.startDate;
                enDate       = data.endDate;
                ebTA         = data.emptyBoxTotalAmount;
                pTA          = data.payoutTotalAmount;
                ebTN         = data.emptyBoxTotalNumber;
                pTN          = data.payoutTotalNumber;
                tempBalance  = data.balance;
                operatorName = data.operatorName;
            }
            catch (Exception ex)
            {
                if (ex is System.ServiceModel.FaultException <HubServiceException> )
                {
                    System.ServiceModel.FaultException <HubServiceException> exep = (System.ServiceModel.FaultException <HubServiceException>)ex;
                    ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_NO_EMPTY_BOXES).ToString(), null, false);
                }

                return;
            }

            checkpoint.startDate           = stDate;
            checkpoint.endDate             = enDate;
            checkpoint.emptyBoxTotalAmount = ebTA;
            checkpoint.emptyBoxTotalNumber = ebTN;
            checkpoint.payoutTotalAmount   = pTA;
            checkpoint.payoutTotalNumber   = pTN;
            checkpoint.operatorName        = operatorName;
            checkpoint.operatorId          = (int)ChangeTracker.CurrentUser.AccountId;

            ObservableCollection <OperatorShiftCheckpoint> tempCollection = new ObservableCollection <OperatorShiftCheckpoint>();

            globalCollection.Insert(0, checkpoint);

            if ((currentPosition + pageSize) < globalCollection.Count)
            {
                for (int i = currentPosition; i < pageSize; i++)
                {
                    tempCollection.Add(globalCollection[i]);
                }
            }
            else
            {
                for (int i = currentPosition; i < globalCollection.Count; i++)
                {
                    tempCollection.Add(globalCollection[i]);
                }
            }

            SelectedCheckpoint = tempCollection[0];

            //recalculate balance
            //CalculateBalance();

            _Checkpoints           = new ObservableCollection <OperatorShiftCheckpoint>(tempCollection);
            EnabledPrintCheckpoint = _Checkpoints.Count > 0 && SelectedCheckpoint != null && SelectedCheckpoint.id != -1000;
            OnPropertyChanged("Checkpoints");
            OnPropertyChanged("EnabledPrintCheckpoint");

            Balance = tempBalance;
            OnPropertyChanged("Balance");

            CurrentShiftReport();

            //printout
            bool isPrinted = PrinterHandler.PrintOperatorShiftReport(checkpoint, tempBalance);

            if (!isPrinted)
            {
                ShowPrinterErrorMessage();
            }

            ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_SHIFT_REPORT_CREATED).ToString() + "\n\n" + SelectedCheckpoint.startDate.ToString() + " - " + SelectedCheckpoint.endDate.ToString(), null, false, 15);
        }
        public int DoLogin(string UserName, string Password)
        {
            decimal reserved = 0;
            decimal factor;
            decimal cashpool = 0;

            if (ChangeTracker.CurrentUser is AnonymousUser)
            {
                cashpool = WsdlRepository.GetBalance(StationRepository.GetUid(ChangeTracker.CurrentUser), out reserved, out factor) - reserved;
            }

            ClearEverythingAfterUser();

            SessionWS sessionId = WsdlRepository.OpenSession(StationRepository.StationNumber, false, UserName, Password, false);
            string    username  = sessionId.username;

            var lang = sessionId.default_language;

            string[] permissions = sessionId.permissions;
            string   role = sessionId.roleName, roleColor = sessionId.highlight_color;
            int      id = sessionId.account_id;

            if (TranslationProvider.CurrentLanguage != lang && lang != null)
            {
                TranslationProvider.CurrentLanguage = lang;
                Mediator.SendMessage(lang, MsgTag.LanguageChosenHeader);
                Mediator.SendMessage(lang, MsgTag.LanguageChosen);
            }

            if (sessionId.session_id == InvalidSessionID || sessionId.session_id == null)
            {
                var previousUser = ChangeTracker.CurrentUser;
                ClearEverythingAfterUser();
                OpenAnonymousSession(false, previousUser);
                return(0);
            }
            else if (permissions != null)
            {
                var user = new OperatorUser(sessionId.session_id)
                {
                    Username = UserName
                };
                user.Username    = user.Username.Trim(new Char[] { ' ', '@', '.' });
                user.AccountId   = id;
                user.RoleID      = GetRoleId(sessionId.role_id);
                user.Role        = role;
                user.RoleColor   = roleColor;
                user.Permissions = permissions;

                IdCardInfoItem[] cards = null;
                try
                {
                    cards = WsdlRepository.GetIdCardInfo(sessionId.account_id, Role.Operator);
                }
                catch (Exception)
                { }

                if (cards != null && cards.SingleOrDefault(c => c.active == "1") != null)
                {
                    user.CardNumber    = cards.Single(c => c.active == "1").number;
                    user.HasActiveCard = true;
                }
                else
                {
                    user.CardNumber    = null;
                    user.HasActiveCard = false;
                }

                user.PinEnabled           = sessionId.card_pin_enabled == 1;
                ChangeTracker.CurrentUser = user;
                return(1);
            }
            else
            {
                if (StationRepository.Active == 0)
                {
                    Mediator.SendMessage(new Tuple <string, string, bool, int>(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_STATION_LOCKED_BY_ADMIN).ToString(), "", false, 3), MsgTag.Error);
                    var previousUser = ChangeTracker.CurrentUser;
                    ClearEverythingAfterUser();
                    OpenAnonymousSession(false, previousUser);
                    return(1);
                }
                foreach (var ticket in TicketHandler.TicketsInBasket.ToSyncList().Where(x => x.TipItems.ToSyncList().Any(c => c.IsChecked)))
                {
                    TicketHandler.OnChangeStake("clear", ticket, ChangeTracker.CurrentUser.Cashpool);
                }
                var user = new LoggedInUser(id, sessionId.session_id, sessionId.balance.amount - sessionId.balance.reserved, sessionId.accountSystemSettings.user_deposit_limit_daily, sessionId.accountSystemSettings.user_deposit_limit_weekly, sessionId.accountSystemSettings.user_deposit_limit_monthly)
                {
                    Username = UserName
                };
                user.Permissions = permissions;
                if (!String.IsNullOrEmpty(sessionId.session_id))
                {
                    user.CardNumber = sessionId.cardNumber;
                }
                ChangeTracker.CurrentUser          = user;
                ChangeTracker.CurrentUser.Currency = StationRepository.Currency;
                // user.RoleID = roleId;
                user.Role      = role;
                user.RoleColor = roleColor;
                if (cashpool > 0)
                {
                    Mediator.SendMessage <decimal>(cashpool, MsgTag.AskAboutCashPool);
                }
                GetUserPinSettingFromProfile();
                var minLimit = ChangeTracker.CurrentUser.DailyLimit;
                if (ChangeTracker.CurrentUser.WeeklyLimit < minLimit)
                {
                    minLimit = ChangeTracker.CurrentUser.WeeklyLimit;
                }
                if (ChangeTracker.CurrentUser.MonthlyLimit < minLimit)
                {
                    minLimit = ChangeTracker.CurrentUser.MonthlyLimit;
                }
                var notificationText = TranslationProvider.Translate(MultistringTags.USER_LIMIT, minLimit, StationRepository.Currency);
                Mediator.SendMessage(notificationText, MsgTag.ShowNotification);
                Mediator.SendMessage(true, MsgTag.RefreshTicketDetails);

                if (sessionId.force_change_password)
                {
                    return(3);
                }
                else if (sessionId.password_reminder)
                {
                    return(2);
                }

                return(1);
            }
        }
        private ObservableCollection <CashOperation> GetCashOperations(long startId, long endId = long.MaxValue)
        {
            var     cashOperations = new ObservableCollection <CashOperation>();
            decimal cashinValue    = 0;
            decimal cashoutValue   = 0;

            if (startId == 0 && endId == 0)
            {
                CashInOperationsNum  = cashinValue;
                CashOutOperationsNum = cashoutValue;
                OnPropertyChanged("CashInOperationsNum");
                OnPropertyChanged("CashOutOperationsNum");
                return(cashOperations);
            }

            try
            {
                CashOperationtData[] lStationCash;

                if (ChangeTracker.FromCheckPointsAccounting && EndDate == DateTimeUtils.DATETIME1700)
                {
                    lStationCash = WsdlRepository.GetStationCashHistory(StationRepository.StationNumber, StartDate, ChangeTracker.CalendarEndDateAccounting.AddSeconds(1));
                }
                else
                {
                    lStationCash = WsdlRepository.GetStationCashHistory(StationRepository.StationNumber, StartDate, EndDate.AddSeconds(1));
                }

                foreach (CashOperationtData stationCashBo in lStationCash)
                {
                    decimal multiplier;
                    string  type = stationCashBo.operation_type;
                    string  translation;
                    if (type == "CASH_IN")
                    {
                        multiplier   = 1;
                        cashinValue += stationCashBo.amount;
                        translation  = TranslationProvider.Translate(MultistringTags.STATION_CASH_IN).ToString();
                    }
                    else if (type == "EMPTY_BOX")
                    {
                        multiplier    = -1;
                        cashoutValue += stationCashBo.amount;
                        translation   = TranslationProvider.Translate(MultistringTags.STATION_CASH_OUT).ToString();
                    }
                    else
                    {
                        translation = "";
                        multiplier  = 1;
                    }

                    cashOperations.Add(new CashOperation(0, stationCashBo.amount * multiplier, stationCashBo.created_at, translation,
                                                         !string.Equals(stationCashBo.operator_name, ChangeTracker.CurrentUser.Username) ? StationRepository.StationTyp : stationCashBo.operator_name));
                }
            }
            catch (Exception)
            {
            }
            CashInOperationsNum  = cashinValue;
            CashOutOperationsNum = cashoutValue;
            OnPropertyChanged("CashInOperationsNum");
            OnPropertyChanged("CashOutOperationsNum");
            return(cashOperations);
        }
Exemple #18
0
        private void YesOnClickCont()
        {
            if (Amount == "" || Amount == null)
            {
                return;
            }

            decimal amount = 0;
            bool    result = decimal.TryParse(Amount, System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo, out amount);

            if (!result)
            {
                ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_NONDECIMAL_VALUE_ERROR_BODY).ToString(), null, false, 5);
                return;
            }

            string          type    = ChangeTracker.PaymentFlowOperationType;
            PaymentFlowData request = new PaymentFlowData();

            if (type == "credit")
            {
                request.type = "CREDIT";
            }
            else
            {
                request.type = "PAYMENT";
            }

            //decimal tempAmount = 0;
            //Decimal.TryParse(Amount, NumberStyles.AllowDecimalPoint, NumberFormatInfo.InvariantInfo, out tempAmount);

            request.amount        = amount;
            request.comment       = Comment;
            request.stationNumber = StationRepository.StationNumber;

            if (ChangeTracker.CurrentUser is OperatorUser)
            {
                request.operatorName = ((OperatorUser)ChangeTracker.CurrentUser).Username;
            }
            else
            {
                request.operatorName = "";
            }

            try
            {
                WsdlRepository.AddPaymentFlow(request);

                bool isPrinted = PrinterHandler.PrintShopPaymentReciept(ChangeTracker.PaymentFlowOperationType, amount, ChangeTracker.CurrentUser.AccountId, ChangeTracker.CurrentUser.Username);
                if (!isPrinted)
                {
                    ShowPrinterErrorMessage();
                }
            }
            catch (Exception ex)
            {
                ShowError(ex.Message);
            }

            MyRegionManager.NavigatBack(RegionNames.UsermanagementContentRegion);
        }
Exemple #19
0
        private void PleaseWaitLoadTicket(bool redirect)
        {
            if (ChangeTracker.LoadedTicketcheckSum.Length < BarCodeConverter.TicketCodeLen || ChangeTracker.LoadedTicket.Length < BarCodeConverter.TicketNumLen)
            {
                return;
            }
            DetailsEnabled = false;
            try
            {
                if (ChangeTracker.LoadedTicketType == BarCodeConverter.BarcodeType.CREDIT_NOTE)
                {
                    Mediator.SendMessage(new Tuple <string, string>(TicketNumber, TicketCode), MsgTag.AddMoneyFromCreditNote);
                    return;
                }
                CurrentTicket = WsdlRepository.LoadTicket(ChangeTracker.LoadedTicket, ChangeTracker.LoadedTicketcheckSum, StationRepository.StationNumber, SelectedLanguage, SelectedLanguage, true);
                if (CurrentTicket != null)
                {
                    long   id     = 1;
                    string result = "1";
                    try
                    {
                        result = WsdlRepository.GetAccountByTicket(ChangeTracker.LoadedTicket);
                    }
                    catch (Exception)
                    {
                        result = "1";
                    }
                    long.TryParse(result, out id);
                    if ((ChangeTracker.CurrentUser != null && (id == ChangeTracker.CurrentUser.AccountId || id == 1)) || !StationRepository.AuthorizedTicketScanning)
                    {
                        ChangeTracker.LoadedTicketType = BarCodeConverter.BarcodeType.TICKET;
                    }
                    else
                    {
                        ShowError(TranslationProvider.Translate(MultistringTags.THIS_TICKET_DOES_NOT_BELONG_TO_YOU).ToString());
                        return;
                    }
                }



                if (ChangeTracker.LoadedTicketType == BarCodeConverter.BarcodeType.STORED_TICKET)
                {
                    Mediator.SendMessage("", MsgTag.OpenStoredTicket);
                    return;
                }

                if (CurrentTicket == null && ChangeTracker.LoadedTicketType == BarCodeConverter.BarcodeType.TICKET)
                {
                    ShowError(TranslationProvider.Translate(MultistringTags.SHOP_FORM_TICKET_NOT_FOUND).ToString());
                }
                else
                {
                    DetailsEnabled = true;
                    if (redirect)
                    {
                        MyRegionManager.NavigateUsingViewModel <TicketDetailsViewModel>(RegionNames.ContentRegion);
                    }
                }
            }
            catch (FaultException <HubServiceException> ex)
            {
                if (ex.Detail.code == 220)
                {
                    ShowError(TranslationProvider.Translate(MultistringTags.SHOP_FORM_TICKET_NOT_FOUND).ToString());
                }
                else if (ex.Detail.code == 1791)
                {
                    ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_TICKET_INVALIDFRANCHISOR).ToString());
                }
                else if (ex.Detail.code == 1001)
                {
                    ShowError(TranslationProvider.Translate(MultistringTags.ANONYMOUS_BETTING_IS_DISABLED).ToString());
                }
                else
                {
                    ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_TICKET_INVALIDLOCATION).ToString());
                }
            }
            catch (Exception)
            {
                ShowError(TranslationProvider.Translate(MultistringTags.SERVER_ERROR).ToString());
            }
        }
        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);
        }
        private void SearchExecute()
        {
            FoundOperators = new ObservableCollection <FoundOperator>();
            var request = new OperatorCriterias();

            if (!string.IsNullOrEmpty(Username.Trim()))
            {
                request.username = Username.Trim();
            }
            else
            {
                request.username = "";
            }
            if (!string.IsNullOrEmpty(Firstname.Trim()))
            {
                request.name = Firstname.Trim();
            }
            else
            {
                request.name = "";
            }
            if (!string.IsNullOrEmpty(Lastname.Trim()))
            {
                request.surname = Lastname.Trim();
            }
            else
            {
                request.surname = "";
            }
            if (!string.IsNullOrEmpty(EMail.Trim()))
            {
                request.email = EMail.Trim();
            }
            else
            {
                request.email = "";
            }

            try
            {
                var result = WsdlRepository.SearchForOperators(request, StationRepository.GetUid(ChangeTracker.CurrentUser));
                FoundOperators = new ObservableCollection <FoundOperator>(ConvertUsers(result));
            }
            catch (System.ServiceModel.FaultException <HubServiceException> exception)
            {
                switch (exception.Detail.code)
                {
                case 178:
                    ShowError(TranslationProvider.Translate(MultistringTags.OPERATOR_NOT_FOUND).ToString());
                    return;

                default:     // 113, 114, 172
                    ShowError(exception.Detail.message);
                    return;
                }
            }
            if (FoundOperators.Count < 1)
            {
                ShowError(TranslationProvider.Translate(MultistringTags.OPERATOR_NOT_FOUND).ToString());
            }
        }
Exemple #22
0
        private void OnLoadPaymentNote(string paymentNoteNumber)
        {
            Log.Debug("BARCODE: LoadPaymentNote(2)");
            Blur();
            PaymentNoteNumber = paymentNoteNumber;
            if (_paymentNoteChecked)
            {
                Log.Debug("Paymentnote number:" + PaymentNoteNumber);
            }
            else
            {
                Log.Debug("Credit number:" + PaymentNoteNumber);
            }
            try
            {
                if (_paymentNoteChecked)
                {
                    amount = 0;

                    if (StationRepository.IsImmediateWithdrawEnabled)
                    {
                        OnRegisterPaymentNote();
                    }
                    else
                    {
                        var userData = WsdlRepository.LoadPaymentNote(PaymentNoteNumber, StationRepository.GetUid(ChangeTracker.CurrentUser), out amount);
                        //var username = userData.fields.Where(x => x.name == "username").Select(x => x.value).FirstOrDefault();
                        var firstname      = "";
                        var lastname       = "";
                        var documentType   = "";
                        var documentNumber = "";


                        foreach (var formField in userData.fields)
                        {
                            if (formField.name == "firstname")
                            {
                                firstname = formField.value ?? "";
                            }
                            if (formField.name == "lastname")
                            {
                                lastname = formField.value ?? "";
                            }
                            if (formField.name == "document_type")
                            {
                                documentType = formField.value ?? "";
                            }
                            if (formField.name == "document_number")
                            {
                                documentNumber = formField.value ?? "";
                            }
                        }
                        var amountEuros = (int)amount;
                        int amountCents = (int)((amount - amountEuros) * 100);

                        var text = TranslationProvider.Translate(MultistringTags.PAY_PAYMENTNOTE, amount, StationRepository.Currency, firstname, lastname) + "\r\n";
                        text += TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_DOCUMENT_TYPE, TranslationProvider.Translate(MultistringTag.Assign(documentType, documentType)).ToString()) + "\r\n";
                        text += TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_DOCUMENT_NUMBER, documentNumber) + "\r\n";

                        var yesButtonText = TranslationProvider.Translate(MultistringTags.PAYMENT_DONE).ToString();
                        var noButtonText  = TranslationProvider.Translate(MultistringTags.SHOP_FORM_CANCEL).ToString();

                        QuestionWindowService.ShowMessage(text, yesButtonText, noButtonText, model_YesClick, model_NoClick);
                    }
                }
                else
                {
                    if (!StationRepository.AllowAnonymousBetting)
                    {
                        UnBlur();
                        ShowError(TranslationProvider.Translate(MultistringTags.ANONYMOUS_BETTING_IS_DISABLED_CREDITNOTE) as string);
                        return;
                    }
                    if (StationRepository.IsCreditNoteImmediatelyPaid)
                    {
                        OnRegisterCreditNote();
                    }
                    else
                    {
                        var creditNote =
                            WsdlRepository.LoadCreditNote(PaymentNoteNumber.Substring(0, PaymentNoteNumber.Length - 4),
                                                          PaymentNoteNumber.Substring(PaymentNoteNumber.Length - 4),
                                                          StationRepository.StationNumber);

                        amount      = creditNote.amount;
                        _expiryDate = creditNote.expireDate;
                        var    amountEuros = (int)creditNote.amount;
                        int    amountCents = (int)((creditNote.amount - amountEuros) * 100);
                        string text        = null;

                        var yesButtonText = TranslationProvider.Translate(MultistringTags.PAYMENT_DONE).ToString();
                        var noButtonText  = TranslationProvider.Translate(MultistringTags.SHOP_FORM_CANCEL).ToString();

                        if (_expiryDate < DateTime.Now && StationRepository.PayoutExpiredPaymentCreditNotes)
                        {
                            text =
                                string.Format(
                                    TranslationProvider.Translate(MultistringTags.PAY_EXPIRED_CREDITNOTE).ToString(),
                                    creditNote.amount, StationRepository.Currency);

                            QuestionWindowService.ShowMessage(text, null, null, modelCreditNote_YesClick, null,
                                                              warning: true);
                        }
                        else if (_expiryDate < DateTime.Now && !StationRepository.PayoutExpiredPaymentCreditNotes)
                        {
                            ErrorWindowService.ShowError(
                                TranslationProvider.Translate(MultistringTags.EXPIRED_CREDITNOTE).ToString());
                        }
                        else
                        {
                            text =
                                TranslationProvider.Translate(MultistringTags.PAY_CREDITNOTE,
                                                              creditNote.amount, StationRepository.Currency) + "\r\n";
                            QuestionWindowService.ShowMessage(text, yesButtonText, noButtonText,
                                                              modelCreditNote_YesClick, model_NoClick);
                        }
                    }
                }
            }
            catch (FaultException <HubServiceException> error)
            {
                switch (error.Detail.code)
                {
                case 170:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.PAYMENTNOTE_NOTFOUND).ToString());
                    break;

                case 171:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.PAYMENT_NOTE_EXPIRED).ToString());
                    break;

                case 174:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.PAYMENT_NOTE_PAID).ToString());
                    break;

                case 179:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_NOTE_INVALIDLOCATION).ToString());
                    break;

                case 1791:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_NOTE_INVALIDFRANCHISOR).ToString());
                    break;

                case 401:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.CREDIT_NOTE_ALREADY_EXISTS).ToString());
                    break;

                case 402:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_CREDIT_NOTE_NOT_ACTIVE).ToString());
                    break;

                case 403:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_CREDIT_NOTE_INVALID_AMOUNT).ToString());
                    break;

                case 404:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_PAID_CREDITNOTE).ToString());
                    break;

                case 405:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.CREDIT_NOTE_EXPIRED).ToString());
                    break;

                default:
                    ErrorWindowService.ShowError(error.Detail.message);

                    break;
                }
            }
            catch (Exception e)
            {
                Log.Error(e.Message, e);
            }
            UnBlur();
        }
Exemple #23
0
 private void WriteRemoteError2Log(string message, int i, string type, string msgTerminal)
 {
     WsdlRepository.WriteRemoteError2Log(message, 1, type, msgTerminal);
 }
Exemple #24
0
        void PleaseWaitmodel_YesClick(object sender, EventArgs e)
        {
            try
            {
                decimal amount = 0;
                bool    withFrombalance;
                WsdlRepository.WithdrawByPaymentNote(PaymentNoteNumber, StationRepository.GetUid(ChangeTracker.CurrentUser), out amount, out withFrombalance);
                PrinterHandler.PrintPaymentRecept(PaymentNoteNumber, "", amount, false);
                ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.PAYMENT_DONE) as string);
                PaymentNoteNumber = "";
            }
            catch (FaultException <HubServiceException> error)
            {
                switch (error.Detail.code)
                {
                case 150:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.NOT_ENOUGHT_MONEY_TO_WITHDRAW).ToString());
                    break;

                case 179:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.PAYMENT_NOTE_INVALIDLOCATION).ToString());
                    break;

                case 1791:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_NOTE_INVALIDFRANCHISOR).ToString());
                    break;

                case 170:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.PAYMENTNOTE_NOTFOUND).ToString());
                    break;

                case 171:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.PAYMENT_NOTE_EXPIRED).ToString());
                    break;

                case 174:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.PAYMENT_NOTE_PAID).ToString());
                    break;

                case 401:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.CREDIT_NOTE_ALREADY_EXISTS).ToString());
                    break;

                case 402:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_CREDIT_NOTE_NOT_ACTIVE).ToString());
                    break;

                case 403:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_CREDIT_NOTE_INVALID_AMOUNT).ToString());
                    break;

                case 404:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_PAID_CREDITNOTE).ToString());
                    break;

                case 405:
                    ErrorWindowService.ShowError(TranslationProvider.Translate(MultistringTags.CREDIT_NOTE_EXPIRED).ToString());
                    break;

                default:
                    ErrorWindowService.ShowError(error.Detail.message);

                    break;
                }
            }
        }
Exemple #25
0
        private void ProduceSettlement(object sender, EventArgs e)
        {
            if (SelectedOperator == null)
            {
                return;
            }

            //produce settlement and reload page
            PrinterHandler.InitPrinter(true);
            if (StationRepository.PrinterStatus == 0)
            {
                ShowPrinterErrorMessage();
                return;
            }

            int      operatorID   = SelectedOperator.id; //should be selected operator ID
            string   opName       = "";
            string   opLName      = "";
            string   frName       = "";
            string   locName      = "";
            string   locOwnerName = "";
            DateTime stDate;
            DateTime enDate;

            CheckpointSlip[]       cpArray;
            TotalSettlementSection totSection = new TotalSettlementSection();

            ProduceOperatorSettlementResponse opSett = new ProduceOperatorSettlementResponse();

            try
            {
                WsdlRepository.ProduceOperatorSettlement(ref operatorID, (int)ChangeTracker.CurrentUser.AccountId, out opName, out opLName, out frName, out locName, out locOwnerName, out stDate, out enDate, out cpArray, out totSection);
                opSett.checkpoints               = cpArray;
                opSett.currentDate               = DateTime.Now;
                opSett.franchisorName            = frName;
                opSett.locationName              = locName;
                opSett.operatorFirstName         = opName;
                opSett.operatorLastName          = opLName;
                opSett.settlementPeriodEndDate   = enDate;
                opSett.settlementPeriodStartDate = stDate;
                opSett.total             = totSection;
                opSett.operatorId        = operatorID;
                opSett.LocationOwnerName = locOwnerName;
            }
            catch (System.ServiceModel.FaultException <HubServiceException> ex)
            {
                System.ServiceModel.FaultException <HubServiceException> exep = (System.ServiceModel.FaultException <HubServiceException>)ex;
                ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_SETTLEMENT_NO_SHIFTS).ToString(), onLoadData, false);
                return;
            }
            WaitOverlayProvider.ShowWaitOverlay();

            //print
            if (opSett.checkpoints != null)
            {
                bool isPrinted = PrinterHandler.PrintOperatorSettlementResponce(opSett);
                if (!isPrinted)
                {
                    ShowPrinterErrorMessage();
                }

                isPrinted = PrinterHandler.PrintOperatorSettlementResponce(opSett);
                if (!isPrinted)
                {
                    ShowPrinterErrorMessage();
                }
            }
            onLoadData(null, null);
        }
        void messageWindow_YesClick(object sender, EventArgs e)
        {
            var amount = WithdrawBut ? (Cashpool - Amount) : Amount;

            PrinterHandler.InitPrinter(true);
            if (StationRepository.PrinterStatus == 0)
            {
                //Mediator.SendMessage<double>(0, MsgTag.PrinterNotReady);
                ShowPrinterErrorMessage();
                return;
            }

            bool   Valid        = true;
            string errormessage = "";
            string code         = "";

            try
            {
                DateTime expiration     = DateTime.Now;
                bool     money_withdraw = false;
                var      uid            = StationRepository.GetUid(ChangeTracker.CurrentUser);
                if (!(ChangeTracker.CurrentUser is LoggedInUser))
                {
                    uid = StationRepository.GetUid(new LoggedInUser(EditUserId.AccountId, "", 0, 0, 0, 0));
                }
                string number;
                bool   withdrawFrombalance;
                var    amountRef = amount;
                code = WsdlRepository.RegisterPaymentNote(uid, ref amountRef, out expiration, out money_withdraw, out number, out withdrawFrombalance);
                if (string.IsNullOrEmpty(code))
                {
                    Valid        = false;
                    errormessage = TranslationProvider.Translate(MultistringTags.TERMINAL_CONNECTION_LOST_LOGGEDIN).ToString();
                }
            }

            catch (FaultException <HubServiceException> ex)
            {
                Valid        = false;
                errormessage = ex.Detail.message;
            }
            if (Valid)
            {
                PrinterHandler.PrintPaymentNote(amount, code, DateTime.Now);
            }
            else
            {
                ShowError(errormessage);
            }
            ChangeTracker.CurrentUser.Withdrawmoney(-amount);
            Amount = 0;
            OnPropertyChanged("CashpoolDescription");

            Dispatcher.Invoke((Action)(() =>
            {
                var window = (Window)GetActiveWindow();
                if (window != null)
                {
                    window.Focus();
                }
            }));
        }
Exemple #27
0
        public void ShowErrorTest()
        {
            var ErrorWindowService    = new ErrorWindowService();
            var QuestionWindowService = new QuestionWindowService();
            var EnterPinWindowService = new EnterPinWindowService();

            AuthorizationService = new AuthorizationService();


            StationRepository   = MockRepository.GenerateStub <IStationRepository>();
            LanguageRepository  = MockRepository.GenerateStub <ILanguageRepository>();
            LineProvider        = MockRepository.GenerateStub <ILineProvider>();
            BusinessPropsHelper = MockRepository.GenerateStub <IBusinessPropsHelper>();
            DataBinding         = MockRepository.GenerateStub <IDataBinding>();


            IoCContainer.Kernel.Bind <IDataBinding>().ToConstant <IDataBinding>(DataBinding).InSingletonScope();
            IoCContainer.Kernel.Bind <IAuthorizationService>().ToConstant <IAuthorizationService>(AuthorizationService).InSingletonScope();
            IoCContainer.Kernel.Bind <IStationRepository>().ToConstant <IStationRepository>(StationRepository).InSingletonScope();
            IoCContainer.Kernel.Bind <ILanguageRepository>().ToConstant <ILanguageRepository>(LanguageRepository).InSingletonScope();
            IoCContainer.Kernel.Bind <ILineProvider>().ToConstant <ILineProvider>(LineProvider).InSingletonScope();
            IoCContainer.Kernel.Bind <IBusinessPropsHelper>().ToConstant <IBusinessPropsHelper>(BusinessPropsHelper).InSingletonScope();
            IoCContainer.Kernel.Bind <IErrorWindowService>().ToConstant <IErrorWindowService>(ErrorWindowService).InSingletonScope();
            IoCContainer.Kernel.Bind <IQuestionWindowService>().ToConstant <IQuestionWindowService>(QuestionWindowService).InSingletonScope();
            IoCContainer.Kernel.Bind <IEnterPinWindowService>().ToConstant <IEnterPinWindowService>(EnterPinWindowService).InSingletonScope();


            DataBinding.Expect(x => x.TipListInfo).Return(new TipListInfo());



            SessionWS sessionId = new SessionWS();

            sessionId.balance  = new accountBalance();
            sessionId.username = "******";
            SessionWS sessionIdNull = null;


            WsdlRepository.BackToRecord();
            WsdlRepository.Expect(x => x.OpenSession("", true, "", "", false)).Return(new SessionWS()).IgnoreArguments();
            WsdlRepository.Expect(x => x.ValidateIdCard("1234", "0024", false, out sessionId)).Return(true).OutRef(sessionIdNull);
            WsdlRepository.Expect(x => x.LoginWithIdCard("0024", "1234", "1234")).Return(sessionId);
            WsdlRepository.Replay();

            StationRepository.TurnOffCashInInit = true;
            StationRepository.Expect(x => x.AllowAnonymousBetting).Return(true);
            StationRepository.Expect(x => x.IsReady).Return(true);
            StationRepository.Expect(x => x.Active).Return(1);
            StationRepository.Expect(x => x.StationNumber).Return("0024");
            StationRepository.Expect(x => x.HubSettings).Return(new Dictionary <string, string>());
            StationRepository.Currency = "EUR";

            ChangeTracker                           = IoCContainer.Kernel.Get <IChangeTracker>();
            ChangeTracker.CurrentUser               = new AnonymousUser("1", 1);
            ChangeTracker.CurrentUser.Cashpool      = 100000;
            ChangeTracker.CurrentUser.AvailableCash = 100000;



            BaseClass.Dispatcher.Invoke(() =>
            {
                BaseClass.Window = MyRegionManager.FindWindowByViewModel <MainViewModel>();
                BaseClass.Window.Show();
            });



            Thread.Sleep(1000);

            var mainModel = MyRegionManager.CurrentViewModelInRegion(RegionNames.ContentRegion);

            Task.Run(() =>
            {
                MessageMediator.SendMessage("1234", MsgTag.CardInserted);
            });

            while (EnterPinWindowService.Model == null)
            {
                Thread.Sleep(10);
            }

            Thread.Sleep(1000);

            EnterPinWindowService.Model.Pin       = "1234";
            EnterPinWindowService.Model.PinMasked = "1234";
            EnterPinWindowService.Model.ProceedCommand.Execute("");

            Task.Run(() =>
                     { mainModel.ShowMessage("msg1"); });
            Thread.Sleep(1000);

            QuestionWindowService.Model.YesCommand.Execute("");

            Task.Run(() =>
                     { mainModel.ShowError("error1"); });
            Thread.Sleep(1000);


            ErrorWindowService.Model.OKCommand.Execute("");


            Task.Run(() =>
                     { mainModel.ShowMessage("msg2"); });
            Thread.Sleep(1000);
            QuestionWindowService.Model.YesCommand.Execute("");

            Task.Run(() =>
                     { mainModel.ShowError("error2"); });
            Thread.Sleep(1000);
            ErrorWindowService.Model.OKCommand.Execute("");


            Task.Run(() =>
                     { QuestionWindowService.ShowMessage("mgs3", null, null, null, null, false, 1); });
            Thread.Sleep(3000);

            BaseClass.Dispatcher.Invoke(() =>
            {
                BaseClass.Window.Close();
            });
        }
        private void OnAcceptCommand()
        {
            if (_sVerificationCode == "")
            {
                return;
            }

            Log.DebugFormat("Sending verification code {0}", _sVerificationCode);

            // Create a collection object and populate it using the PFX file

            bool   bResult        = true;
            string sStationNumber = null;

#if STAGINGUITEST
            sStationNumber = _sVerificationCode.Substring(0, 4);
#else
            if (System.Diagnostics.Debugger.IsAttached && string.IsNullOrEmpty(ConfigurationManager.AppSettings["CertificateUrl"]))
            {
                sStationNumber = _sVerificationCode.Substring(0, 4);
            }
            else if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings["CertificateUrl"]))
            {
                string url = ConfigurationManager.AppSettings["CertificateUrl"];

                HttpWebRequest httpWReq = (HttpWebRequest)WebRequest.Create(url);
                ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };

                ASCIIEncoding encoding = new ASCIIEncoding();
                string        postData = "c=" + _sVerificationCode;
                byte[]        data     = encoding.GetBytes(postData);

                httpWReq.Method        = "POST";
                httpWReq.ContentType   = "application/x-www-form-urlencoded";
                httpWReq.ContentLength = data.Length;

                using (Stream stream = httpWReq.GetRequestStream())
                {
                    stream.Write(data, 0, data.Length);
                }

                HttpWebResponse  response   = (HttpWebResponse)httpWReq.GetResponse();
                System.IO.Stream dataStream = response.GetResponseStream();

                System.IO.BinaryReader streamReader = new System.IO.BinaryReader(dataStream);

                IList <byte[]> array = new List <byte[]>();
                do
                {
                    byte[] tmpfile = streamReader.ReadBytes(1024);
                    array.Add(tmpfile);
                } while (array.Last().Length == 1024);

                byte[] file = new byte[array.Sum(x => x.Length)];

                int i = 0;
                foreach (var bytese in array)
                {
                    foreach (var b in bytese)
                    {
                        file[i++] = b;
                    }
                }


                dataStream.Close();
                streamReader.Close();
                string certFilename = DateTime.Now.ToFileTime() + "cert.p12";

                FileStream   fs = new FileStream(certFilename, FileMode.CreateNew);
                BinaryWriter bw = new BinaryWriter(fs);

                for (int j = 0; j < file.Length; j++)
                {
                    bw.Write(file[j]);
                }

                streamReader.Close();
                response.Close();
                fs.Flush();
                fs.Close();

                try
                {
                    X509Certificate2 cert = new X509Certificate2(file, _sVerificationCode);
                    var serviceRuntimeUserCertificateStore = new X509Store(StoreName.My);
                    serviceRuntimeUserCertificateStore.Open(OpenFlags.ReadWrite);
                    foreach (var certificate in serviceRuntimeUserCertificateStore.Certificates)
                    {
                        if (certificate.Subject.Contains("Sportradar AG"))
                        {
                            serviceRuntimeUserCertificateStore.Remove(certificate);
                            break;
                        }
                    }

                    var process   = new Process();
                    var startInfo = new ProcessStartInfo();
                    startInfo.WindowStyle = ProcessWindowStyle.Hidden;
                    startInfo.FileName    = "certutil.exe";
                    startInfo.Arguments   = " -f -user -p " + _sVerificationCode + " -importpfx " + certFilename;
                    process.StartInfo     = startInfo;
                    process.Start();

                    serviceRuntimeUserCertificateStore.Close();
                    sStationNumber = cert.Subject.Substring(cert.Subject.IndexOf("CN=") + 3, cert.Subject.IndexOf(", ", cert.Subject.IndexOf("CN=")) - cert.Subject.IndexOf("CN=") - 3);
                    sStationNumber = sStationNumber.Replace("terminal", "");
                }
                catch (Exception e)
                {
                    Log.Error(e.Message, e);
                    ShowError(TranslationProvider.Translate(MultistringTags.CERTIFICATE_ERROR).ToString());
                    return;
                }
            }
            else
            {
                try
                {
                    sStationNumber = WsdlRepository.GetStationByVerificationNumber(_sVerificationCode);
                }
                catch (Exception ex)
                {
                    Log.Error("", ex);
                    ShowError(ex.Message);
                    return;
                }
            }
#endif
            try
            {
                if (bResult)
                {
                    Log.InfoFormat("Saving station number {0} to database", sStationNumber);
                    StationRepository.SetStationAppConfigValue("StationNumber", sStationNumber);
                }
            }
            catch (Exception Ex)
            {
                Log.Error("", Ex);
                ShowError("Can't connect to database " + Ex.Message);
                return;
            }

            _sVerificationCode = "";
            Log.Debug("Closing verification window");

            /* ChangeTracker.VerifivationCancelled = false;
             * ChangeTracker.VerificationRestart = true;*/
            Log.Debug("Exiting verification window");
            Mediator.SendMessage <long>(0, MsgTag.RestartApplication);
        }
Exemple #29
0
        private string MatchsortingJson(string csv)
        {
            var jsonSorting = WsdlRepository.Matchsorting(csv);

            return(jsonSorting);
        }