Example #1
0
 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);
            }
        }
Example #6
0
        public void ShowErrorTest()
        {
            var ErrorWindowService    = new ErrorWindowService();
            var QuestionWindowService = new QuestionWindowService();
            var EnterPinWindowService = new EnterPinWindowService();

            AuthorizationService = new AuthorizationService();


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


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


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



            SessionWS sessionId = new SessionWS();

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


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

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

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



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



            Thread.Sleep(1000);

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

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

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

            Thread.Sleep(1000);

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

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

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

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


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


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

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


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

            BaseClass.Dispatcher.Invoke(() =>
            {
                BaseClass.Window.Close();
            });
        }