private string ValidateText(string value, object Min, object Max)
        {
            if (value == null)
            {
                return("");
            }

            if (!this.Mandatory && value.Trim().Length == 0)
            {
                return("");
            }


            if (Min != null && ((string)value).Trim().Length < Convert.ToInt32(Min))
            {
                var name = Name.ToUpperInvariant();
                var tag  = MultistringTag.Assign("TERMINAL_FORM_" + name + "_" + ErrorTextLow, "");
                return(TranslationProvider.Translate(tag) as string);
            }

            if (Max != null && ((string)value).Trim().Length > Convert.ToInt32(Max))
            {
                return(TranslationProvider.Translate(MultistringTag.Assign("TERMINAL_FORM_" + Name.ToUpperInvariant() + "_" + ErrorTextHigh, "")) as string);
            }

            return("");
        }
        private string ValidateDate(string value, object Min, object Max)
        {
            if (value == null)
            {
                return("");
            }

            DateTime minDate;

            DateTime.TryParse(Min.ToString(), new DateTimeFormatInfo()
            {
                DateSeparator = ".", ShortDatePattern = "ddMMyyyy"
            }, DateTimeStyles.AllowWhiteSpaces, out minDate);

            if (minDate == DateTime.MinValue)
            {
                DateTime valueDate;
                DateTime.TryParse(value, new DateTimeFormatInfo()
                {
                    DateSeparator = ".", ShortDatePattern = "ddMMyyyy"
                }, DateTimeStyles.AllowWhiteSpaces, out valueDate);
                DateTime maximumBirthdate = DateTime.Now.AddYears(-Convert.ToInt32(Min));
                DateTime minimumBirthdate = DateTime.Now.AddYears(-Convert.ToInt32(Max));

                if (maximumBirthdate < valueDate)
                {
                    return(TranslationProvider.Translate(MultistringTag.Assign("TERMINAL_FORM_" + Name.ToUpperInvariant() + "_" + ErrorDateLow, "")) as string);
                }

                if (minimumBirthdate > valueDate)
                {
                    return(TranslationProvider.Translate(MultistringTag.Assign("TERMINAL_FORM_" + Name.ToUpperInvariant() + "_" + ErrorDateHigh, "")) as string);
                }
            }
            else
            {
                DateTime valueDate;
                DateTime.TryParse(value, new DateTimeFormatInfo()
                {
                    DateSeparator = ".", ShortDatePattern = "ddMMyyyy"
                }, DateTimeStyles.AllowWhiteSpaces, out valueDate);


                if (Min != null && valueDate < DateTime.Parse((string)Min))
                {
                    return(TranslationProvider.Translate(MultistringTag.Assign("TERMINAL_FORM_" + Name.ToUpperInvariant() + "_" + ErrorDateLow, "")) as string);
                }

                if (Max != null && valueDate > DateTime.Parse((string)Max))
                {
                    return(TranslationProvider.Translate(MultistringTag.Assign("TERMINAL_FORM_" + Name.ToUpperInvariant() + "_" + ErrorDateHigh, "")) as string);
                }
            }

            return("");
        }
        private string ValidateInteger(string value, object Min, object Max)
        {
            if (Min != null && ((string)value) != "" && Convert.ToDecimal(value) < Convert.ToDecimal(Min))
            {
                return(TranslationProvider.Translate(MultistringTag.Assign("TERMINAL_FORM_" + Name.ToUpperInvariant() + "_" + ErrorIntLow, "")) as string);
            }

            if (Max != null && ((string)value) != "" && Convert.ToDecimal(value) > Convert.ToDecimal(Max))
            {
                return(TranslationProvider.Translate(MultistringTag.Assign("TERMINAL_FORM_" + Name.ToUpperInvariant() + "_" + ErrorIntHigh, "")) as string);
            }

            return("");
        }
        private void LanguageChosen(string obj)
        {
            //GetRegistrationForm();

            foreach (var field in RegistrationFields)
            {
                if (field.Name == "password2")
                {
                    field.Label = TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_CONFIRM_PASSWORD) + "*";
                }
                else
                {
                    field.Label = TranslationProvider.Translate(MultistringTag.Assign("TERMINAL_FORM_" + field.Name.ToUpperInvariant(), field.Name.ToUpperInvariant())).ToString().Replace("{0}", "");
                }
            }
        }
Exemple #5
0
        private void LanguageChosen(string obj)
        {
            //Initfields();

            foreach (var registration in FormFields)
            {
                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 += "*";
                }
            }
        }
        private IList <FoundUser> ConvertUsers(valueField[][] result)
        {
            var list = new List <FoundUser>();

            if (result != null)
            {
                foreach (var account in result)
                {
                    var acc = new SportBetting.WPF.Prism.Shared.Models.FoundUser();
                    acc.AccountId = Convert.ToInt32(account.Where(x => x.name.Contains("account_id")).Select(x => x.value).FirstOrDefault());
                    acc.Address   = account.Where(x => x.name.Contains("address")).Select(x => x.value).FirstOrDefault();
                    DateTime date = DateTime.Today;

                    DateTime.TryParse(account.Where(x => x.name.Contains("date_of_birth")).Select(x => x.value).FirstOrDefault(), new DateTimeFormatInfo {
                        DateSeparator = ".", ShortDatePattern = "ddMMyyyy"
                    }, DateTimeStyles.AllowWhiteSpaces, out date);

                    acc.DateOfBirth = date;

                    acc.DocumentNumber = account.Where(x => x.name.Contains("document_number")).Select(x => x.value).FirstOrDefault();

                    string accDocumentNumber = account.Where(x => x.name.Contains("document_type")).Select(x => x.value).FirstOrDefault();
                    if (!String.IsNullOrEmpty(accDocumentNumber))
                    {
                        acc.DocumentType = TranslationProvider.Translate(MultistringTag.Assign(accDocumentNumber, accDocumentNumber)) as string;
                    }
                    else
                    {
                        acc.DocumentType = "";
                    }

                    acc.EMail      = account.Where(x => x.name.Contains("email")).Select(x => x.value).FirstOrDefault();
                    acc.Firstname  = account.Where(x => x.name.Contains("firstname")).Select(x => x.value).FirstOrDefault();
                    acc.Lastname   = account.Where(x => x.name.Contains("lastname")).Select(x => x.value).FirstOrDefault();
                    acc.Username   = account.Where(x => x.name.Contains("username")).Select(x => x.value).FirstOrDefault();
                    acc.Active     = account.Where(x => x.name.Contains("active")).Select(x => x.value).FirstOrDefault() == "true";
                    acc.IsVerified = account.Where(x => x.name.Contains("verified")).Select(x => x.value).FirstOrDefault() == "1";
                    acc.Phone      = account.Where(x => x.name.Contains("phone")).Select(x => x.value).FirstOrDefault();
                    acc.HasCard    = Convert.ToInt32(account.Where(x => x.name.Contains("card_status")).Select(x => x.value).FirstOrDefault());
                    list.Add(acc);
                }
            }
            return(list);
        }
        public override List <string> ValidateFields()
        {
            List <string> validationResults = new List <string>();

            if (!string.IsNullOrEmpty(ErrorText))
            {
                validationResults.Add(ErrorText);
                ErrorText = null;
            }
            if (string.IsNullOrEmpty(Value) && this.Mandatory)
            {
                validationResults.Add(this.Name + " is required");
            }
            if (Rules != null)
            {
                object minValid = null;
                object maxValid = null;

                List <string> validationRules = new List <string>();
                foreach (fieldValidationRule validationRule in Rules)
                {
                    switch (validationRule.name)
                    {
                    case "MIN":
                        minValid = validationRule.value;
                        break;

                    case "MAX":
                        maxValid = validationRule.value;
                        break;

                    case "REG_EXP":

                        string toTest = "";
                        if (this.Type == FieldType.EMail)
                        {
                            if (this.Value != null)
                            {
                                toTest = this.Value.ToLowerInvariant();
                            }
                            else
                            {
                                toTest = null;
                            }
                        }
                        else
                        {
                            toTest = this.Value;
                        }


                        if (!String.IsNullOrEmpty(this.Value) && !Regex.IsMatch(toTest, validationRule.value))
                        {
                            if (this.Type == FieldType.EMail)
                            {
                                validationResults.Add(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_EMAIL_WRONGFORMAT));
                            }
                            else if (String.IsNullOrEmpty(this.Value) && !this.Mandatory)
                            {
                            }
                            else
                            {
                                validationResults.Add(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_INVALIDVALUE));
                            }
                        }
                        break;
                    }
                }
                if (validationRules != null && validationRules.Count > 0 && !string.IsNullOrEmpty(Value))
                {
                    foreach (string validationRule in validationRules)
                    {
                        if (!Regex.IsMatch(this.Value, validationRule))
                        {
                            validationResults.Add(TranslationProvider.Translate(MultistringTag.Assign("TERMINAL_FORM_" + Name.ToUpperInvariant() + "_WRONGREGEXP", "")));
                        }
                    }
                }
                if (minValid != null || maxValid != null)
                {
                    string error = "";
                    switch (this.Type)
                    {
                    case FieldType.Text:
                    case FieldType.Password:
                    case FieldType.Password2:
                        error = ValidateText(this.Value, minValid, maxValid);
                        break;

                    case FieldType.Numeric:
                        error = ValidateText(this.Value, minValid, maxValid);
                        break;

                    case FieldType.Date:

                        error = ValidateDate(this.Value, minValid, maxValid);
                        break;
                    }
                    if (!String.IsNullOrEmpty(error))
                    {
                        if (this.Type == FieldType.Password || this.Type == FieldType.Password2)
                        {
                            validationResults.Add(error);
                        }
                        else
                        {
                            validationResults.Add(error);
                        }
                    }
                }
                if (PasswordConfirmation != null)
                {
                    string error = "";
                    switch (this.Type)
                    {
                    //case FieldType.Password:
                    //    if (PasswordConfirmation != null && (string.IsNullOrEmpty(error) && !string.IsNullOrEmpty(PasswordConfirmation.Value)))
                    //        error = ValidateSecondPassword(this.Value, PasswordConfirmation.Value);
                    //    break;
                    case FieldType.Password2:
                        if (PasswordConfirmation != null)
                        {
                            error = ValidateSecondPassword(this.Value, PasswordConfirmation.Value);
                        }
                        break;
                    }
                    if (!String.IsNullOrEmpty(error))
                    {
                        validationResults.Add(error);
                    }
                }
            }
            if (this.Type == FieldType.EMail && !string.IsNullOrEmpty(Value))
            {
                if (!Regex.IsMatch(this.Value.ToLowerInvariant(), EMAIL_REGEX))
                {
                    validationResults.Add(TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_EMAIL_WRONGFORMAT));
                }
            }

            if (validationResults.Count > 0)
            {
                Error = validationResults[0];
            }
            else
            {
                Error = null;
            }

            if (isValidatedEvent != null)
            {
                isValidatedEvent(this, validationResults.Count == 0);
            }
            return(validationResults);
        }
Exemple #8
0
        private List <global::ViewModels.Registration> InitFields(IEnumerable <formField> fields)
        {
            List <global::ViewModels.Registration> _fields    = new List <global::ViewModels.Registration>();
            List <global::ViewModels.Registration> tempFields = new List <global::ViewModels.Registration>();

            foreach (formField accountingField in fields)
            {
                if (accountingField.type == null)
                {
                    continue;
                }

                global::ViewModels.Registration field = new global::ViewModels.Registration();
                field.isValidatedEvent += field_isValidatedEvent;
                field.ReadOnly          = accountingField.@readonly;
                field.IsEnabled         = false;
                field.EmptyValidation   = field.IsEnabled;
                field.Visible           = !accountingField.hidden;
                field.Name              = accountingField.name;
                field.Value             = accountingField.value;

                field.Label = TranslationProvider.Translate(MultistringTag.Assign("TERMINAL_FORM_" + field.Name.ToUpperInvariant(), field.Name.ToUpperInvariant())).ToString().Replace("{0}", "");

                field.Rules = new List <fieldValidationRule>();
                field.Type  = AccountingToFormFieldsMap[accountingField.type];
                if (accountingField.validation_rules != null)
                {
                    foreach (fieldValidationRule rule in accountingField.validation_rules)
                    {
                        field.Rules.Add(rule);
                    }
                }

                if (accountingField.field_options != null)
                {
                    foreach (fieldOption option in accountingField.field_options)
                    {
                        field.Options.Add(new SelectorValue(option.value, option.id));
                    }
                    if (accountingField.field_options.Length == 0)
                    {
                        field.Options.Add(new SelectorValue(accountingField.value, accountingField.value));
                    }

                    if (field.Options.All(sv => sv.Name != field.Value))
                    {
                        var svTmp = field.Options.FirstOrDefault();
                        if (svTmp != null)
                        {
                            field.Value = svTmp.Name;
                        }
                    }
                }
                else
                {
                    field.Options.Add(new SelectorValue(accountingField.value, accountingField.value));
                    if (field.Options.All(sv => sv.Name != field.Value))
                    {
                        var svTmp = field.Options.FirstOrDefault();
                        if (svTmp != null)
                        {
                            field.Value = svTmp.Name;
                        }
                    }
                }

                if (accountingField.type == "DROPDOWN")
                {
                    if (!String.IsNullOrEmpty(accountingField.value))
                    {
                        field.Value = TranslationProvider.Translate(MultistringTag.Assign(accountingField.value.ToUpperInvariant(), accountingField.value.ToUpperInvariant())).ToString();
                    }
                    else
                    {
                        field.Value = "";
                    }
                }
                if (accountingField.type == "PHONE")
                {
                    field.ValueInt = accountingField.value;
                }

                if (accountingField.type == "CURRENCY")
                {
                    field.Value = StationRepository.Currency;
                }

                if (accountingField.type == "LANGUAGE")
                {
                    var languages = new SyncObservableCollection <Language>();
                    LanguageRepository.GetAllLanguages(languages);
                    foreach (var lang in languages)
                    {
                        field.Options.Add(new SelectorValue(lang.ShortName, lang.ShortName));
                    }
                    field.Value = accountingField.value;
                }
                else
                {
                    _fields.Add(field);
                }
                field.Mandatory = accountingField.mandatory;
                if (field.Mandatory)
                {
                    field.Label += "*";
                }
                if (field.Type == FieldType.Date)
                {
                    DateTime selDate = new DateTime();
                    DateTime.TryParse(field.Value, new DateTimeFormatInfo {
                        DateSeparator = ".", ShortDatePattern = "ddMMyyyy"
                    }, DateTimeStyles.AllowWhiteSpaces, out selDate);
                    field.Value = selDate.ToString("dd.MM.yyyy");
                }
                if (accountingField.name == "tax_number" && !StationRepository.DisplayTaxNumber)
                {
                    field.Visible = false;
                }
                if (accountingField.name != "bet_acceptance_checked" && accountingField.name != "terms_and_cond_version")
                {
                    tempFields.Add(field);
                }
            }

            return(tempFields);
        }
Exemple #9
0
        private void OnLoadPaymentNote(string paymentNoteNumber)
        {
            Log.Debug("BARCODE: LoadPaymentNote(2)");
            Blur();
            PaymentNoteNumber = paymentNoteNumber;
            if (_paymentNoteChecked)
            {
                Log.Debug("Paymentnote number:" + PaymentNoteNumber);
            }
            else
            {
                Log.Debug("Credit number:" + PaymentNoteNumber);
            }
            try
            {
                if (_paymentNoteChecked)
                {
                    amount = 0;

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                    break;
                }
            }
            catch (Exception e)
            {
                Log.Error(e.Message, e);
            }
            UnBlur();
        }
        private List <global::ViewModels.Registration> InitFields(formField[] fields)
        {
            List <global::ViewModels.Registration> _fields = new List <global::ViewModels.Registration>();

            foreach (formField accountingField in fields)
            {
                if (!accountingField.searchable)
                {
                    continue;
                }

                global::ViewModels.Registration field = new global::ViewModels.Registration();
                //field.isValidatedEvent += new isValidatedDelegate(field_isValidatedEvent);
                field.ReadOnly  = false;
                field.IsEnabled = true;

                field.Visible = !accountingField.hidden;
                field.Name    = accountingField.name;
                field.Value   = accountingField.value;

                field.Label = TranslationProvider.Translate(MultistringTag.Assign("TERMINAL_FORM_" + field.Name.ToUpperInvariant(), field.Name.ToUpperInvariant())).ToString().Replace("{0}", "");

                if (accountingField.type == null)
                {
                    continue;
                }
                field.Type = AccountingToFormFieldsMap[accountingField.type];

                if (accountingField.field_options != null)
                {
                    foreach (fieldOption option in accountingField.field_options)
                    {
                        field.Options.Add(new SelectorValue(option.value, option.id));
                    }

                    if (!field.Options.Any(sv => sv.Name == field.Value))
                    {
                        var svTmp = field.Options.FirstOrDefault();
                        if (svTmp != null)
                        {
                            field.Value = svTmp.Value;
                        }
                    }
                }
                if (accountingField.type == "DROPDOWN")
                {
                    string[] ids = accountingField.default_value.Split(';');
                    foreach (var id in ids)
                    {
                        string mltStr = TranslationProvider.Translate(MultistringTag.Assign(id.ToUpperInvariant(), id.ToUpperInvariant())).ToString();
                        field.Options.Add(new SelectorValue(mltStr, id));
                    }
                }
                else
                {
                    //field.Value = accountingField.default_value;
                    field.Value = "";
                }

                if (accountingField.type == "CURRENCY")
                {
                    field.IsEnabled       = false;
                    field.EmptyValidation = field.IsEnabled;
                }

                if (accountingField.type == "PHONE")
                {
                    field.ValueInt = accountingField.value;
                }


                if (accountingField.type == "LANGUAGE")
                {
                    var languages = new SyncObservableCollection <Language>();
                    //LanguageRepository.GetAllLanguages(languages);
                    var lr = new LanguageRepository();
                    lr.GetAllLanguages(languages);
                    foreach (var lang in languages)
                    {
                        field.Options.Add(new SelectorValue(lang.ShortName, lang.ShortName));
                    }
                    field.Value = accountingField.default_value;
                }

                if (field.Type == FieldType.Password)
                {
                    _fields.Add(field);
                    global::ViewModels.Registration secondPasswordField = new global::ViewModels.Registration();
                    field.PasswordConfirmation = secondPasswordField;
                    secondPasswordField.PasswordConfirmation = field;
                    //secondPasswordField.isValidatedEvent += new isValidatedDelegate(field_isValidatedEvent);

                    secondPasswordField.Name      = "password2";
                    secondPasswordField.Label     = TranslationProvider.Translate(MultistringTags.TERMINAL_FORM_CONFIRM_PASSWORD) + "*";
                    secondPasswordField.Type      = FieldType.Password2;
                    secondPasswordField.IsEnabled = true;
                    secondPasswordField.Mandatory = true;
                    secondPasswordField.Value     = "";
                    _fields.Add(secondPasswordField);
                }
                else if (field.Type == FieldType.Date)
                {
                    //if (string.IsNullOrWhiteSpace(field.Value))
                    //{
                    //    field.Value = DateTime.Today.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture);
                    //}
                    //DateTime selDate = new DateTime();
                    //DateTime.TryParse(field.Value, new DateTimeFormatInfo() { DateSeparator = ".", ShortDatePattern = "ddMMyyyy" }, DateTimeStyles.AllowWhiteSpaces, out selDate);
                    //field.Value = selDate.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture);
                    field.Value = " ";
                    _fields.Add(field);
                }
                else
                {
                    _fields.Add(field);
                }

                if (accountingField.name == "tax_number" && !StationRepository.DisplayTaxNumber)
                {
                    //field.Visible = false;
                    _fields.Remove(field);
                }
            }
            return(_fields);
        }
Exemple #11
0
        private List <global::ViewModels.Registration> InitFields(IEnumerable <formField> fields)
        {
            List <global::ViewModels.Registration> _fields = new List <global::ViewModels.Registration>();

            foreach (formField accountingField in fields)
            {
                if (accountingField.type == null)
                {
                    continue;
                }

                var field = new global::ViewModels.Registration();
                field.isValidatedEvent += field_isValidatedEvent;
                field.ReadOnly          = accountingField.@readonly;
                field.IsEnabled         = false;
                field.EmptyValidation   = field.IsEnabled;

                field.Name  = accountingField.name;
                field.Value = accountingField.value;


                field.Multistring = MultistringTag.Assign("TERMINAL_FORM_" + field.Name.ToUpperInvariant(), field.Name.ToUpperInvariant());
                if (!StationRepository.IsIdCardEnabled && field.Multistring.Value == MultistringTags.TERMINAL_FORM_CARD_PIN_ENABLED.Value)
                {
                    field.Multistring = MultistringTags.TERMINAL_FORM_BARCODECARD_PIN_ENABLED;
                }
                field.Label = TranslationProvider.Translate(field.Multistring);

                field.Rules = new List <fieldValidationRule>();
                field.Type  = AccountingToFormFieldsMap[accountingField.type];
                foreach (fieldValidationRule rule in accountingField.validation_rules)
                {
                    field.Rules.Add(rule);
                }

                if (accountingField.type == "DATE")
                {
                    int minAge = 0;
                    try
                    {
                        int.TryParse(StationRepository.HubSettings["min_play_age"], out minAge);
                    }
                    catch
                    {
                    }

                    var rule = new fieldValidationRule()
                    {
                        name = "MIN", value = minAge.ToString()
                    };

                    field.Rules.Add(rule);
                }

                if (accountingField.field_options != null)
                {
                    foreach (fieldOption option in accountingField.field_options)
                    {
                        field.Options.Add(new SelectorValue(option.value, option.id));
                    }
                }
                field.Options.Add(new SelectorValue(accountingField.value, accountingField.value));
                if (field.Options.All(sv => sv.Name != field.Value))
                {
                    var svTmp = field.Options.FirstOrDefault();
                    if (svTmp != null)
                    {
                        field.Value = svTmp.Name;
                    }
                }

                if (accountingField.type == "CURRENCY")
                {
                    field.Value = StationRepository.Currency;
                }

                if (accountingField.type == "DROPDOWN")
                {
                    if (!String.IsNullOrEmpty(accountingField.value))
                    {
                        field.Value = TranslationProvider.Translate(MultistringTag.Assign(accountingField.value.ToUpperInvariant(), accountingField.value.ToUpperInvariant())).ToString();
                    }
                    else
                    {
                        field.Value = "";
                    }
                    //field.ReadOnly = false;
                }

                if (accountingField.type == "PHONE")
                {
                    field.ValueInt = accountingField.value;
                }

                if (accountingField.type == "LANGUAGE")
                {
                    var languages = new SyncObservableCollection <Language>();
                    LanguageRepository.GetAllLanguages(languages);
                    foreach (var lang in languages)
                    {
                        field.Options.Add(new SelectorValue(lang.ShortName, lang.ShortName));
                    }
                    field.Value = accountingField.value;
                }
                else
                {
                    _fields.Add(field);
                }
                field.Mandatory = accountingField.mandatory;
                if (field.Mandatory)
                {
                    field.Label += "*";
                }

                if (field.Type == FieldType.Date)
                {
                    DateTime selDate = new DateTime();
                    DateTime.TryParse(field.Value, new DateTimeFormatInfo()
                    {
                        DateSeparator = ".", ShortDatePattern = "ddMMyyyy"
                    }, DateTimeStyles.AllowWhiteSpaces, out selDate);
                    field.Value = selDate.ToString("dd.MM.yyyy");
                }

                if (field.Name == "card_pin_enabled")
                {
                    if (field.Value == "1")
                    {
                        if (StationRepository.IsIdCardEnabled)
                        {
                            field.Value = TranslationProvider.Translate(MultistringTags.ENABLED_PIN).ToString();
                        }
                        else
                        {
                            field.Value = TranslationProvider.Translate(MultistringTags.BARCODE_ENABLED_PIN).ToString();
                        }
                    }
                    else
                    {
                        if (StationRepository.IsIdCardEnabled)
                        {
                            field.Value = TranslationProvider.Translate(MultistringTags.DISABLED_PIN).ToString();
                        }
                        else
                        {
                            field.Value = TranslationProvider.Translate(MultistringTags.BARCODE_DISABLED_PIN).ToString();
                        }
                    }
                }
                if (accountingField.name == "tax_number" && !StationRepository.DisplayTaxNumber)
                {
                    field.Visible = false;
                }
                if (accountingField.name == "bet_acceptance_checked")
                {
                    field.Visible = false;
                }
                if (accountingField.name == "terms_and_cond_version")
                {
                    field.Visible = false;
                }
            }
            return(_fields);
        }
Exemple #12
0
        private void Initfields()
        {
            var fields = new List <global::ViewModels.Registration>();

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

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



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


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


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

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

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

            bool isEmpty = true;

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

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

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

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

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

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


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

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

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

                registration.isValidatedEvent += field_isValidatedEvent;
                if (registration.Mandatory)
                {
                    registration.Label += "*";
                }
            }
            FormFields = fields;
        }