private void OnBindCard()
 {
     try
     {
         var cards = WsdlRepository.GetIdCardInfo(EditUser.AccountId, Role.User);
         if (cards != null && cards.Any(card => card.active == "1"))
         {
             var text = TranslationProvider.Translate(MultistringTags.USER_HAVE_ACTIVE_CARD_IT_WILL_BE_BLOCKED);
             if (!StationRepository.IsIdCardEnabled)
             {
                 text = TranslationProvider.Translate(MultistringTags.USER_HAVE_ACTIVE_BARCODECARD_IT_WILL_BE_BLOCKED);
             }
             QuestionWindowService.ShowMessage(text, null, null, model_YesClick, null);
         }
         else
         {
             model_YesClick(null, null);
         }
     }
     catch (FaultException <HubServiceException> exception)
     {
         if (exception.Detail.code == 169)
         {
             model_YesClick(null, null);
         }
     }
 }
예제 #2
0
        private void BlockCardOperator()
        {
            try
            {
                IdCardInfoItem[] idCards = WsdlRepository.GetIdCardInfo(ChangeTracker.FoundOperator.AccountId, Role.Operator);

                if (idCards != null)
                {
                    var idCard = idCards.Where(x => x.active == "1").FirstOrDefault();

                    if (idCard != null)
                    {
                        WsdlRepository.UpdateIdCard(idCard.number, "0", false, null);

                        ChangeTracker.FoundOperator.ActiveCard = false;
                        OnPropertyChanged("EnabledBlockIdCardOperator");
                        ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_DONE) as string);
                    }
                }
            }
            catch (System.ServiceModel.FaultException <HubServiceException> exception)
            {
                switch (exception.Detail.code)
                {
                case 169:
                    ShowError(TranslationProvider.Translate(MultistringTags.USER_DONT_HAVE_ACTIVE_CARD) as string);
                    return;

                default:     // 113, 114, 172
                    ShowError(exception.Detail.message);
                    return;
                }
            }
        }
예제 #3
0
        private void OnBindCard()
        {
            try
            {
                Blur();
                var cards = WsdlRepository.GetIdCardInfo((int)ChangeTracker.CurrentUser.AccountId, Role.Operator);

                UnBlur();
                if (cards != null && cards.Any(card => card.active == "1"))
                {
                    var text = TranslationProvider.Translate(MultistringTags.USER_HAVE_ACTIVE_CARD_IT_WILL_BE_BLOCKED).ToString();
                    if (!StationRepository.IsIdCardEnabled)
                    {
                        text = TranslationProvider.Translate(MultistringTags.USER_HAVE_ACTIVE_BARCODECARD_IT_WILL_BE_BLOCKED).ToString();
                    }
                    QuestionWindowService.ShowMessage(text, null, null, model_YesClick, null);
                }
                else
                {
                    Mediator.SendMessage <long>(ChangeTracker.CurrentUser.AccountId, MsgTag.BindOperatorCard);
                    OnPropertyChanged("IsCardButtonsActive");
                    OnPropertyChanged("BlockCardButtonsActive");
                }
            }
            catch (FaultException <HubServiceException> error)
            {
                UnBlur();
                if (error.Detail.code == 169)
                {
                    Mediator.SendMessage <long>(ChangeTracker.CurrentUser.AccountId, MsgTag.BindOperatorCard);
                    OnPropertyChanged("IsCardButtonsActive");
                    OnPropertyChanged("BlockCardButtonsActive");
                }
                else
                {
                    ShowError(error.Reason.Translations.Where(x => x.XmlLang.ToLowerInvariant() == SelectedLanguage.ToLowerInvariant()).Select(x => x.Text).FirstOrDefault());
                }
            }
            OnPropertyChanged("IsEnablePinButtonVisible");
            OnPropertyChanged("IsNewPinButtonVisible");

            //Mediator.SendMessage<long>(ChangeTracker.CurrentUser.AccountId, MsgTag.BindOperatorCard);
        }
        private void BlockClick(object sender, EventArgs ev)
        {
            try
            {
                var cards = WsdlRepository.GetIdCardInfo(EditUser.AccountId, Role.User);

                var  result = "";
                bool isDone = true;
                if (cards != null)
                {
                    foreach (var card in cards.Where(x => x.active == "1"))
                    {
                        result = WsdlRepository.UpdateIdCard(card.number, "1", false, null);
                        if (result != null && Boolean.Parse(result))
                        {
                            isDone = Boolean.Parse(result) && isDone;
                        }
                    }
                }
                if (isDone)
                {
                    EditUser.HasCard = 0;
                    QuestionWindowService.ShowMessage(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_DONE).ToString(), null, null, null, null, false);
                }
            }
            catch (FaultException <HubServiceException> exception)
            {
                ShowError(exception.Detail.message);
            }
            catch (Exception e)
            {
                Log.Error(e.Message, e);
            }

            OnPropertyChanged("IsCardButtonsActive");
            OnPropertyChanged("BlockCardButtonsActive");
            OnPropertyChanged("IsEnabledBindCard");
            OnPropertyChanged("ActiveCardText");
            OnPropertyChanged("EditUser");
        }
        private void model_YesClick(object sender, EventArgs e)
        {
            if (EditUser == null)
            {
                return;
            }

            Mediator.SendMessage <long>(EditUser.AccountId, MsgTag.BindUserCard);
            OnPropertyChanged("IsCardButtonsActive");
            OnPropertyChanged("BlockCardButtonsActive");
            var cards = new IdCardInfoItem[0];

            cards = null;
            try
            {
                cards = WsdlRepository.GetIdCardInfo(EditUser.AccountId, Role.User);
            }
            catch (Exception ex)
            {
            }
            if (cards != null && cards.Any(card => card.active == "1") && EditUser != null)
            {
                EditUser.HasCard = 1;
            }
            else if (cards != null && cards.Length > 0 && EditUser != null)
            {
                EditUser.HasCard = 0;
            }
            else if (EditUser != null)
            {
                EditUser.HasCard = 169;
            }
            OnPropertyChanged("IsCardButtonsActive");
            OnPropertyChanged("ActiveCardText");
            OnPropertyChanged("EditUser");
        }
예제 #6
0
        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);
            }
        }