public void OpenAnonymousSessionFromHeader() { while (!StationRepository.IsReady) { Thread.Sleep(1000); } while (ChangeTracker.CurrentUser == null) { try { SessionWS sessid = WsdlRepository.OpenSession(StationRepository.StationNumber, true, string.Empty, string.Empty, false); if (sessid == null) { Thread.Sleep(1000); continue; } ChangeTracker.CurrentUser = new AnonymousUser(sessid.session_id, sessid.account_id) { Currency = StationRepository.Currency }; ChangeTracker.NewTermsAccepted = true; } catch (Exception ex) { Log.Error("Error while trying to open anonymous session:" + ex.Message, ex); Thread.Sleep(1000); } } }
public SessionWS LoginWithIdCard(string station_id, string cardNumber, string pin, bool isShopSession = false) { SessionWS session = new SessionWS(); if (cardNumber == _idCardNumber && pin == "0000") { switch (_accountIdWithIdCard) { case 1: session.account_id = 1; session.session_id = "1003720140211110037882RSUQ6Y38XL"; session.username = "******"; session.default_language = "EN"; session.roleName = "user"; session.balance = new accountBalance { amount = 1000, reserved = 0 }; break; case 2: session.account_id = 1; session.session_id = "1003720140211110037882RSUQ6Y38XL"; session.username = "******"; session.default_language = "EN"; session.roleName = "user"; session.balance = new accountBalance { amount = 1000, reserved = 0 }; break; default: break; } } return(session); }
public bool ValidateIdCard(string cardNumber, string stationNumber, bool isShop, out SessionWS sessionId) { sessionId = null; return(true); }
public SessionWS OpenSession(string station_id, bool anonymous, string username, string password, bool isShop) { SessionWS session = new SessionWS(); session.cardNumber = "1"; if (username == "test" && password == "mode") { session.account_id = 1; session.roleName = "user"; session.balance = new accountBalance { amount = 1000, reserved = 0 }; session.hasActiveCard = false; session.default_language = "EN"; session.highlight_color = "red"; session.permissions = null; session.role_id = 0; _tempBalance = 1000; session.cardNumber = ""; session.session_id = "1003720140211110037882RSUQ6Y38XL"; return(session); } else if (username == "test2" && password == "mode") { session.account_id = 2; session.roleName = "user"; session.balance = new accountBalance { amount = 1000, reserved = 0 }; session.hasActiveCard = false; session.default_language = "EN"; session.highlight_color = "red"; session.permissions = null; session.role_id = 0; _tempBalance = 1000; session.cardNumber = ""; session.session_id = "1003720140211110037882RSUQ6Y38XL"; return(session); } else if (username == "@oper" && password == "check") { session.account_id = 3; session.roleName = "Operator"; session.hasActiveCard = false; session.default_language = "EN"; session.balance = new accountBalance(); session.highlight_color = "red"; session.permissions = new string[2] { "access_usermanagement", "usermanagement_bind_id_card" }; session.role_id = (int)Role.Operator; session.cardNumber = ""; session.session_id = "1003720140211110037882RSUQ6Y38XL"; return(session); } if (!String.IsNullOrEmpty(username)) { var exception = new FaultException <HubServiceException>(new HubServiceException()); exception.Detail.code = 111; throw exception; } session.account_id = 1; session.roleName = "user"; session.balance = new accountBalance(); session.default_language = "EN"; session.hasActiveCard = false; session.highlight_color = "red"; session.permissions = null; session.role_id = 0; session.cardNumber = ""; session.session_id = "00037201402101641406621IF5UZC044"; return(session); }
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); } }
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(); }); }