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(); }
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"); }
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); } }
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); }
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(); }); }
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(); }); }
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); }
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); }
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); }
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()); } }
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(); }
private void WriteRemoteError2Log(string message, int i, string type, string msgTerminal) { WsdlRepository.WriteRemoteError2Log(message, 1, type, msgTerminal); }
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; } } }
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(); } })); }
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); }
private string MatchsortingJson(string csv) { var jsonSorting = WsdlRepository.Matchsorting(csv); return(jsonSorting); }